The Rise of Machines: Real World Applications of AI
Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.
Εισαγωγή
Δεδομένης της τάσης του OpenBSD για ασφάλεια, είναι λογικό μόνο να τροφοδοτείτε τον ιστότοπό σας στο WordPress με αυτόν, ειδικά επειδή το WordPress και η PHP τείνουν να είναι κινούμενοι στόχοι για παιδιά με σενάρια. Δεδομένου ότι το httpd του OpenBSD έχει σχεδιαστεί κυρίως για να εξυπηρετεί στατικές σελίδες, οι λειτουργίες POST δεσμεύονται για τις διαδικασίες fastcgi και slowcgi. Αυτό καθιστά πιο δύσκολο για έναν απατεώνα ηθοποιό να παραβεί τη διαδικασία του διακομιστή ιστού και να αποκτήσει πρόσβαση στον διακομιστή σας. Οι λειτουργίες POST διοχετεύονται στη διαδικασία fastcgi και χρησιμοποιούν έναν εξωτερικό διερμηνέα. Αυτό το άρθρο θα συζητήσει όχι μόνο τη ρύθμιση του ιστότοπού σας στο WordPress, αλλά ορισμένες βασικές τεχνικές συντήρησης και τον τρόπο δημιουργίας αντιγράφων ασφαλείας και επαναφοράς του ιστότοπού σας και της βάσης δεδομένων του. Όπου βλέπετε example.com
ως τομέας, αντικαταστήστε τον με τον τομέα σας.
Αρχική Διαμόρφωση
Εάν δεν το έχετε κάνει ήδη, θα χρειαστεί να δημιουργήσετε ένα /etc/doas.conf
αρχείο. Η εντολή doas είναι η εύκολη αντικατάσταση του sudo του OpenBSD. Για ευκολία, έχω προσθέσει την επιλογή nopass, ώστε να μην χρειάζεται να πληκτρολογείτε ξανά τον κωδικό πρόσβασής σας όταν χρησιμοποιείτε το doas. Εάν προτιμάτε να μην το έχετε, απλώς παραλείψτε το nopass.
su - echo "permit nopass keepenv :wheel" > /etc/doas.conf
Ανάλογα με τον τρόπο με τον οποίο το OpenBSD συσκευάστηκε για ανάπτυξη, μερικές φορές ο διαχειριστής πακέτων ενδέχεται να μην έχει διαμορφώσει ένα αποθετήριο. Για να διαμορφώσουμε το επίσημο αποθετήριο του OpenBSD, πρέπει να δημιουργήσουμε το /etc/installurl
αρχείο.
doas su echo "https://cdn.openbsd.org/pub/OpenBSD" > /etc/installurl exit
Τώρα πρέπει να προσθέσουμε PHP και μερικές επιπλέον ενότητες που θα χρειαστεί το WordPress για να χειριστεί πράγματα όπως εικόνες και κρυπτογράφηση. Όταν σας ζητηθεί, επιλέξτε να εγκαταστήσετε το νεότερο πακέτο της PHP. Ένα πράγμα που πρέπει να κάνετε είναι να αντιγράψετε τα αρχεία ini της ενότητας από τον κατάλογο δείγματος στον κύριο. Αυτό πρέπει να γίνει για να ενεργοποιηθούν οι πρόσθετες μονάδες PHP.
doas pkg_add -r mariadb-client mariadb-server php php-curl php-mysqli php-zip pecl73-mcrypt pecl73-imagick wget doas cp /etc/php-7.3.sample/* /etc/php-7.3/.
Αποκτήστε πιστοποιητικά Let's Encrypt
Στον σημερινό κόσμο, οι ιστότοποι πρέπει να εξυπηρετούνται μέσω SSL, διαφορετικά θα υποβαθμίζονται από τις μηχανές αναζήτησης. Ευτυχώς, το OpenBSD έχει μια εξαιρετική εφαρμογή που ονομάζεται acme-client. Το acme-client θα δημιουργήσει αυτόματα ένα νέο ιδιωτικό κλειδί και θα ζητήσει ένα νέο πλήρως έγκυρο πιστοποιητικό. Το acme-client εξαρτάται από την ύπαρξη ενός διακομιστή web, επομένως θα χρειαστεί να δημιουργήσουμε έναν γρήγορο προεπιλεγμένο ορισμό διακομιστή.
Με τον αγαπημένο σας επεξεργαστή, δημιουργήστε /etc/httpd.conf
. Θα προσθέσουμε τους άλλους ορισμούς διακομιστή στο αρχείο αργότερα. Προς το παρόν αυτό θα είναι αρκετό ώστε η acme-client να λειτουργεί σωστά.
prefork 5 types { include "/usr/share/misc/mime.types" } server "default" { listen on egress port 80 root "/htdocs" directory index "index.html" location "/.well-known/acme-challenge/*" { request strip 2 root "/acme" } }
Χρησιμοποιώντας επίσης τον αγαπημένο σας επεξεργαστή, δημιουργήστε /etc/acme-client.conf
.
authority letsencrypt { api url "https://acme-v02.api.letsencrypt.org/directory" account key "/etc/acme/letsencrypt-privkey.pem" } authority letsencrypt-staging { api url "https://acme-staging-v02.api.letsencrypt.org/directory" account key "/etc/acme/letsencrypt-staging-privkey.pem" } domain example.com { alternative names { www.example.com } domain key "/etc/ssl/private/example.com.key" domain full chain certificate "/etc/ssl/example.com.crt" sign with letsencrypt }
Τώρα πρέπει να ενεργοποιήσουμε και να ξεκινήσουμε το httpd. Μόλις το κάνουμε αυτό, τότε μπορούμε να τρέξουμε το acme-client και να περιμένουμε να λάβει το νέο, νέο πιστοποιητικό μας. Αφού το κάνουμε αυτό, θα προσθέσουμε μια εργασία cron για να ζητάμε αυτόματα μια νέα κάθε 7 ημέρες, ώστε να μην ανησυχούμε για τη λήξη.
doas rcctl enable httpd doas rcctl start httpd doas acme-client -v example.com
Τώρα δημιουργούμε την εργασία cron. Προσθέστε αυτή τη γραμμή κάτω από την τελευταία καταχώρηση. Σε αυτήν την περίπτωση, λέμε στο acme-client να ζητήσει το νέο πιστοποιητικό στη 1:00 π.μ. κάθε Σάββατο.
doas crontab -e 0 1 * * 6 acme-client -F example.com && rcctl reload httpd
Διαμόρφωση HTTPD για WordPress
Τώρα είναι ώρα να ρυθμίσετε το httpd για το WordPress. Αντί να τοποθετήσουμε τον ορισμό του ιστότοπού μας απευθείας στο /etc/httpd.conf
, θα τον τοποθετήσουμε σε ένα ξεχωριστό αρχείο που ονομάζεται /etc/httpd.conf.example.com
και θα το συμπεριλάβουμε στο κύριο αρχείο διαμόρφωσης. Είναι γενικά καλή πρακτική να διαχωρίζετε τα δύο, διατηρώντας τους ορισμούς σε ολόκληρο τον ιστότοπο στο κύριο αρχείο διαμόρφωσης και τις ρυθμίσεις για συγκεκριμένο τομέα σε διαφορετικό.
Προσθέστε την ακόλουθη γραμμή στο κάτω μέρος του /etc/httpd.conf
αρχείου σας :
include "/etc/httpd.conf.example.com"
Τώρα χρησιμοποιώντας τον αγαπημένο σας επεξεργαστή, δημιουργήστε το δικό σας /etc/httpd.conf.example.com
. Για ευκολία, θα δημιουργήσουμε ξεχωριστά αρχεία καταγραφής για τον τομέα σας. Αυτό διευκολύνει όταν προσπαθείτε να αντιμετωπίσετε πιθανά προβλήματα με τον ιστότοπό σας.
server "example.com" { listen on egress port 80 alias "www.example.com" # Automatically redirect to SSL block return 302 "https://$SERVER_NAME$REQUEST_URI" log { access "access-example.com" error "error-example.com" } } server "example.com" { listen on egress tls port 443 alias "www.example.com" root "/htdocs/wordpress" directory index "index.php" log { access "access-example.com" error "error-example.com" } tcp { nodelay, backlog 10 } tls { certificate "/etc/ssl/example.com.crt" key "/etc/ssl/private/example.com.key" } hsts { # max-age value is the number of seconds in 1 year max-age 31556952 preload subdomains } location "/.well-known/acme-challenge/*" { root "/acme" request strip 2 } location "/posts/*" { fastcgi { param SCRIPT_FILENAME \ "/htdocs/wordpress/index.php" socket "/run/php-fpm.sock" } } location "/page/*" { fastcgi { param SCRIPT_FILENAME \ "/htdocs/wordpress/index.php" socket "/run/php-fpm.sock" } } location "/feed/*" { fastcgi { param SCRIPT_FILENAME \ "/htdocs/wordpress/index.php" socket "/run/php-fpm.sock" } } location "/comments/feed/*" { fastcgi { param SCRIPT_FILENAME \ "htdocs/wordpress/index.php" socket "/run/php-fpm.sock" } } location "/wp-json/*" { fastcgi { param SCRIPT_FILENAME \ "htdocs/wordpress/index.php" socket "/run/php-fpm.sock" } } location "/wp-login.php*" { authenticate "WordPress" with "/htdocs/htpasswd" fastcgi socket "/run/php-fpm.sock" } location "*.php*" { fastcgi socket "/run/php-fpm.sock" } }
Για μεγαλύτερη ασφάλεια, θα εφαρμόσουμε μια πρόσθετη προτροπή για όνομα χρήστη και κωδικό πρόσβασης κατά τη σύνδεση στον ιστότοπο διαχείρισης του WordPress. Δεδομένου ότι στα παιδιά του σεναρίου αρέσει να δοκιμάζουν επανειλημμένα και να κάνουν bruteforce τη σύνδεση του WordPress, δημιουργούμε μια πρόσθετη σύνδεση σε επίπεδο διακομιστή ιστού. Συνήθως, λαμβάνουν περίπου 5 εικασίες προτού το WordPress κάνει ένα σφάλμα 401 Unauthorized.
doas su cd /var/www/htdocs doas htpasswd htpasswd <user> doas chown www:www htpasswd doas chmod 0640 htpasswd doas rcctl reload httpd
Προετοιμασία και διαμόρφωση PHP και PHP-FPM
Πρέπει να κάνουμε μια αλλαγή στο php, ώστε η εγκατάσταση του WordPress να μπορεί να στέλνει μηνύματα ηλεκτρονικού ταχυδρομείου. Το WordPress και ορισμένα πρόσθετα βασίζονται στη δυνατότητα αποστολής μηνυμάτων ηλεκτρονικού ταχυδρομείου που σας ειδοποιούν για αναβαθμίσεις, ειδοποιήσεις και αλλαγές. Η αδυναμία αποστολής email μπορεί να σπάσει ορισμένες λειτουργίες του WordPress. Εφόσον το httpd εκτελείται σε περιβάλλον chrooted, πρέπει να πούμε στην php πώς να στέλνει email. Επιπλέον, πρέπει να κάνουμε μερικές tweek απόδοσης σε php-fpm.
Αναζητήστε τη sendmail_path
γραμμή /etc/php-7.3.ini
και κάντε την ακόλουθη αλλαγή:
; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; sendmail_path = sendmail_path = /bin/femail -t -i
Αναζητήστε τις ακόλουθες γραμμές /etc/php-fpm.conf
και αλλάξτε τις ως εξής:
pm.start_servers = 5 pm.min_spare_servers = 1 pm.max_spare_servers = 6
Το επόμενο βήμα είναι να ενεργοποιήσετε και να ξεκινήσετε το php-fpm.
doas rcctl enable php73_fpm doas rcctl start php73_fpm
Προετοιμάστε και ρυθμίστε το MariaDB
Το MariaDB είναι ένα αναπτυσσόμενο πιρούνι αντικατάστασης της MySQL. Πρέπει να κάνουμε κάποιες αρχικές εργασίες διαμόρφωσης και προετοιμασίας βάσης δεδομένων για το WordPress.
Για να μπορέσουμε να χρησιμοποιήσουμε αποτελεσματικά το MariaDB, πρέπει να επιτρέψουμε στον δαίμονα mysql να χρησιμοποιεί περισσότερους πόρους από τους προεπιλεγμένους. Για να το κάνετε αυτό, κάντε τις ακόλουθες αλλαγές /etc/login.conf
προσθέτοντας αυτήν την καταχώρηση στο κάτω μέρος.
mysqld:\ :openfiles-cur=1024:\ :openfiles-max=2048:\ :tc=daemon:
Πρέπει να κάνουμε κάποιες αλλαγές στο αρχείο ρυθμίσεων MariaDB, /etc/my.cnf
. Με το να επικοινωνούν ο πελάτης και ο διακομιστής mysql μέσω υποδοχής τομέα UNIX αντί για TCP, η χρήση της μνήμης του διακομιστή σας μπορεί να διατηρηθεί χαμηλότερη. Δεν χρειάζεται να κάνετε όλες τις αλλαγές που προτείνονται παρακάτω. Τα δύο σημαντικά που πρέπει να αλλάξετε είναι η socket
γραμμή και να σχολιάσετε τη bind-address
γραμμή. Αυτό μετακινεί την υποδοχή στο εσωτερικό του /var/www
περιβάλλοντος chroot, ώστε το WordPress να μπορεί να συνδεθεί στη βάση δεδομένων. Σχολιάζοντας τη bind-address
γραμμή, εμποδίζουμε το MariaDB να ακούει σε μια θύρα TCP.
[client-server] socket=/var/www/var/run/mysql/mysql.sock #port=3306 # This will be passed to all MariaDB clients [client] #password=my_password # The MariaDB server [mysqld] # To listen to all IPv4 network addresses, use "bind-address = 0.0.0.0" #bind-address=127.0.0.1 # Directory where you want to put your data #data=/var/mysql # This is the prefix name to be used for all log, error and replication files #log-basename=mysqld # Logging #log-bin=/var/mysql/mariadb-bin #max_binlog_size=100M #binlog_format=row #expire_logs_days = 7 #general-log #slow_query_log query_cache_type = 1 query_cache_limit = 1M query_cache_size = 16M
Τώρα πρέπει να εκτελέσουμε το δυαδικό σύστημα εγκατάστασης MariaDB και να ενεργοποιήσουμε και να ξεκινήσουμε το MariaDB. Αυτή η διαδικασία θα ορίσει έναν κωδικό πρόσβασης root και προαιρετικά θα απορρίψει τη δοκιμαστική βάση δεδομένων. Είναι καλή ιδέα να ακολουθήσετε όλες τις προτάσεις στο στάδιο της ασφαλούς εγκατάστασης.
doas mysql_install_db doas rcctl enable mysqld doas rcctl start mysqld doas mysql_secure_installation
Δημιουργήστε τη βάση δεδομένων WordPress και χρήστη βάσης δεδομένων. Θυμηθείτε να αντικαταστήσετε <wp_user>
το όνομα χρήστη της βάσης δεδομένων με την επιλογή σας και <password>
με έναν σύνθετο κωδικό πρόσβασης της επιλογής σας.
mysql -u root -p CREATE DATABASE wordpress; GRANT ALL PRIVILEGES ON wordpress.* TO '<wp_user>'@'localhost' IDENTIFIED BY '<password>'; FLUSH PRIVILEGES; EXIT
Εγκαταστήστε και διαμορφώστε το WordPress
Το WordPress δεν έχει επίσημη θύρα OpenBSD εδώ και αρκετό καιρό, επειδή λειτουργεί σχεδόν αμέσως. Κάντε λήψη, εξαγωγή και μετακίνηση του φακέλου εγκατάστασης του WordPress.
cd /tmp wget https://wordpress.org/latest.tar.gz tar xvfz latest.tar.gz doas mv wordpress /var/www/htdocs/. doas chown -R www:www /var/www/htdocs/wordpress doas chmod 0755 /var/www/htdocs/wordpress cd /var/www/htdocs/wordpress/ find . -type d -exec chmod 755 {} \; find . -type f -exec chmod 644 {} \;
Πρέπει να αντιγράψουμε /etc/resolv.conf
και /etc/hosts
σε έναν κατάλογο που πρόκειται να δημιουργήσουμε με το όνομα /var/www/etc
. Αυτό γίνεται για να μπορέσει το WordPress να φτάσει με επιτυχία στην αγορά. Θα το χρειαστείτε για να κατεβάσετε πρόσθετα και θέματα μέσω του ιστότοπου διαχειριστή του WordPress. Είναι επίσης σημαντικό το πρόσθετο Jet Pack να λειτουργεί σωστά.
doas mkdir /var/www/etc doas cp /etc/hosts /var/www/etc/. doas cp /etc/resolv.conf /var/www/etc/.
Από εδώ, περιηγηθείτε στον ιστότοπό σας στο WordPress χρησιμοποιώντας https μέσω της διεύθυνσης URL που καθορίσατε στον ορισμό του διακομιστή ιστού. Εάν όλα λειτουργούν σωστά, θα πρέπει να δείτε τον οδηγό εγκατάστασης του WordPress. Όταν φτάσετε στην επιλογή να καθορίσετε έναν διακομιστή βάσης δεδομένων, θα πρέπει να χρησιμοποιήσετεlocalhost:/var/run/mysql/mysql.sock
Μόλις ε��κατασταθεί το WordPress, ήρθε η ώρα να ρυθμίσετε τους μόνιμους συνδέσμους έτσι ώστε να φαίνονται πιο φιλικοί προς το SEO. Από την οθόνη διαχειριστή του WordPress, μεταβείτε στο Settings -> Permalinks
. Κάντε κλικ στην Προσαρμοσμένη δομή και πληκτρολογήστε /posts/%postname%
. Αφού κάνετε αυτήν την αλλαγή, κάντε κλικ στο κουμπί Αποθήκευση αλλαγών. Τώρα έχετε πολύ πιο όμορφους συνδέσμους. Για παράδειγμα, ένας μόνιμος σύνδεσμος θα μοιάζει με αυτό:https://example.com/posts/example-blog-post
Από εδώ, θα πρέπει να έχετε έναν βασικό ιστότοπο έτοιμο για χρήση. Βεβαιωθείτε ότι εγκαθιστάτε προσθήκες όπως το Jet Pack και το WP-Super Cache. Η προσθήκη WP-Super Cache βοηθά στην επιτάχυνση του ιστοτόπου σας αποθηκεύοντας ιστοσελίδες στην προσωρινή μνήμη και εξαλείφοντας τις συνεχείς αναζητήσεις σε βάσεις δεδομένων και το JetPack σάς παρέχει μερικά εξαιρετικά στατιστικά στοιχεία τηλεθέασης.
Δημιουργία αντιγράφων ασφαλείας του ιστότοπου και της βάσης δεδομένων WordPress
Είναι αυτονόητο ότι η δημιουργία αντιγράφων ασφαλείας του ιστότοπου και της βάσης δεδομένων σας είναι πολύ σημαντική. Ευτυχώς, αυτό είναι ένα σχετικά εύκολο πράγμα. Δημιουργήστε αντίγραφα ασφαλείας και των δύο στον αρχικό σας κατάλογο και, στη συνέχεια, μπορείτε να τα αντιγράψετε μέσω scp σε άλλη τοποθεσία. Μπορείτε επίσης να δημιουργήσετε ένα στιγμιότυπο μέσω του Πίνακα Ελέγχου Vultr. Είναι καλή ιδέα να κάνετε και τα δύο.
cd /var/www/htdocs tar cvfz wordpress.tgz wordpress/ cp wordpress.tgz /home/user mysqldump -u root -p wordpress > wordpress.sql && gzip wordpress.sql
Επαναφορά του ιστότοπού σας στο WordPress
Εάν η βάση δεδομένων σας καταστράφηκε και απαιτείται επαναφορά, εκτελέστε τα εξής:
gunzip wordpress.sql.gz mysql -u root -p wordpress DROP USER '<user>'@'localhost'; DROP DATABASE wordpress; CREATE DATABASE wordpress; GRANT ALL PRIVILEGES ON wordpress.* TO '<wp_user>'@'localhost' IDENTIFIED BY '<password>'; FLUSH PRIVILEGES; EXIT mysql -u root -p wordpress < wordpress.sql
Εάν έχετε κάνει μια αλλαγή σε ένα αρχείο σεναρίου WordPress που έσπασε κάτι, μπορείτε πάντα να επανεγκαταστήσετε το WordPress μέσω του πίνακα ελέγχου διαχειριστή. Αναζητήστε την Updates
ενότητα και κάντε κλικ στον σύνδεσμο. Αναζητήστε ένα κουμπί με την ένδειξη Re-install Now
. Αυτό θα διορθώσει τουλάχιστον αυτό που έχει σπάσει, αλλά το μεγαλύτερο μέρος της διαμόρφωσής σας θα πρέπει να παραμείνει ανέπαφο.
Εάν η βάση δεδομένων σας είναι σε καλή κατάσταση, αλλά έχετε επεξεργαστεί κατά λάθος ένα αρχείο και έχετε σπάσει τα πράγματα σε σημείο που δεν μπορείτε να φτάσετε καν στην κονσόλα διαχειριστή του WordPress, κάντε τα εξής:
rm /var/www/htdocs/wordpress cp /home/user/wordpress.tgz /tmp tar xvfz wordpress.tgz mv wordpress /var/www/htdocs/. chown -R www:www /var/www/htdocs/wordpress cd /var/www/htdocs/wordpress find . -type d -exec chmod 755 {} \; find . -type f -exec chmod 644 {} \;
Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.
Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.
Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.
Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.
Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…
Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.
Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.
Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.
Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.
Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα