RC_Andreas
Administrator
Το WordPress είναι η πιο δημοφιλής πλατφόρμα blogging στον κόσμο. Υπάρχουν πολλοί τρόποι εγκατάστασης του WordPress, συμπεριλαμβανομένων εντολών Shell, μη αυτόματης εγκατάστασης χρησιμοποιώντας τα σενάρια ή χρησιμοποιώντας ένα πρόγραμμα εγκατάστασης Ιστού που παρέχουν οι δημοφιλείς οικοδεσπότες Ιστού. Η εκτέλεση του WordPress περιλαμβάνει την εγκατάσταση μιας στοίβας LAMP (Linux, Apache, MySQL και PHP) ή LEMP (Linux, Nginx, MySQL και PHP).
Αυτό το σεμινάριο θα σας διδάξει πώς να εγκαταστήσετε το WordPress χρησιμοποιώντας το Docker/Docker Compose. Χρησιμοποιώντας το Docker, η διαδικασία εγκατάστασης της προτιμώμενης στοίβας γίνεται πολύ πιο εύκολη. Μπορείτε να χρησιμοποιήσετε την ίδια διαμόρφωση για να εγκαταστήσετε γρήγορα το WordPress σε πολλούς διακομιστές. Θα εγκαταστήσουμε επίσης το εργαλείο phpMyAdmin για τη διαχείριση βάσεων δεδομένων μαζί με τον διακομιστή μεσολάβησης Nginx για την εξυπηρέτηση του ιστότοπου μέσω SSL.
Προαπαιτούμενα
Εγκαταστήστε βασικά πακέτα βοηθητικών προγραμμάτων. Ορισμένα από αυτά ενδέχεται να έχουν ήδη εγκατασταθεί.
Βήμα 1 - Διαμόρφωση τείχους προστασίας
Το πρώτο βήμα είναι να διαμορφώσετε το τείχος προστασίας. Το Ubuntu έρχεται με ufw (Uncomplicated Firewall) από προεπιλογή.
Ελέγξτε εάν το τείχος προστασίας λειτουργεί.
Θα πρέπει να λάβετε την ακόλουθη έξοδο.
Status: inactive
Επιτρέψτε τη θύρα SSH, ώστε το τείχος προστασίας να μην διακόψει την τρέχουσα σύνδεση κατά την ενεργοποίησή της.
Επιτρέψτε επίσης τις θύρες HTTP και HTTPS.
Ενεργοποιήστε το Τείχος προστασίας
Ελέγξτε ξανά την κατάσταση του τείχους προστασίας.
Θα πρέπει να δείτε μια παρόμοια έξοδο.
Βήμα 2 - Εγκαταστήστε το Docker και το Docker Compose
Το Ubuntu 22.04 κυκλοφορεί με μια παλαιότερη έκδοση του Docker. Για να εγκαταστήσετε την πιο πρόσφατη έκδοση, πρώτα εισάγετε το κλειδί Docker GPG.
Δημιουργήστε ένα αρχείο αποθήκης Docker.
Ενημερώστε τη λίστα αποθετηρίων συστήματος.
Εγκαταστήστε την πιο πρόσφατη έκδοση του Docker.
Βεβαιωθείτε ότι εκτελείται.
Από προεπιλογή, το Docker απαιτεί δικαιώματα root. Εάν θέλετε να αποφύγετε τη χρήση sudoκάθε φορά που εκτελείτε την dockerεντολή, προσθέστε το όνομα χρήστη σας στην dockerομάδα.
Θα χρειαστεί να αποσυνδεθείτε από τον διακομιστή και να συνδεθείτε ξανά ως ο ίδιος χρήστης για να ενεργοποιήσετε αυτήν την αλλαγή ή να χρησιμοποιήσετε την ακόλουθη εντολή.
Επιβεβαιώστε ότι ο χρήστης σας έχει προστεθεί στην ομάδα Docker.
Βήμα 3 - Δημιουργήστε αρχείο Docker Compose για WordPress
Δημιουργήστε έναν κατάλογο για τη διαμόρφωση του WordPress.
Μετάβαση στον κατάλογο.
Δημιουργήστε και ανοίξτε το αρχείο σύνθεσης Docker για επεξεργασία.
Επικολλήστε τον παρακάτω κώδικα σε αυτό.
Αποθηκεύστε το αρχείο πατώντας Ctrl + X και πληκτρολογώντας Y όταν σας ζητηθεί.
Υπάρχουν δύο εικόνες WordPress που τραβάμε. Το ένα είναι για τον ιστότοπο και το άλλο για το εργαλείο WP-CLI. Και οι δύο εικόνες εξαρτώνται από την εικόνα Docker της MySQL 8.0. Εδώ ορίζουμε τις μεταβλητές περιβάλλοντος για τα διαπιστευτήρια της βάσης δεδομένων. Έχουμε δημιουργήσει δύο τόμους και για τα δύο κοντέινερ, ο ένας από τους οποίους οδηγεί στα δημόσια αρχεία για τον ιστότοπο WordPress και ο δεύτερος στην προσαρμοσμένη τοποθεσία PHP.ini. Έχουμε επίσης ορίσει τις μεταβλητές περιβάλλοντος για τον εικονικό τομέα κεντρικού υπολογιστή Nginx και τον τομέα Let's encrypt SSL για τον ιστότοπο WordPress.
Μπορείτε να προσθέσετε περισσότερες μεταβλητές περιβάλλοντος και να προσθέσετε προσαρμοσμένα wp-config.php δεδομένα στο αρχείο Docker. Μπορείτε να μάθετε για τις πρόσθετες μεταβλητές περιβάλλοντος από τη σελίδα WordPress DockerHub .
Η επόμενη εικόνα είναι για το phpMyAdmin που εξαρτάται από την ίδια εικόνα MySQL και τη συνδέει χρησιμοποιώντας τον κωδικό πρόσβασης root. Έχει όριο μεταφόρτωσης 50MB. Μπορείτε να το αλλάξετε ανάλογα με τις απαιτήσεις σας και το μέγεθος της βάσης δεδομένων σας. Όπως και με τον ιστότοπο WordPress, έχουμε ορίσει τον εικονικό τομέα κεντρικού υπολογιστή Nginx και ας κρυπτογραφήσουμε το όνομα τομέα SSL για τον ιστότοπο phpMyAdmin.
Η τελευταία εικόνα είναι για τη βάση δεδομένων MySQL. Έχουμε περάσει μερικές εντολές για να ορίσουμε την προεπιλεγμένη μέθοδο ελέγχου ταυτότητας και το σύνολο χαρακτήρων. Έχουμε επίσης δημιουργήσει μερικούς τόμους για την αποθήκευση των δεδομένων. Έχουμε επίσης ρυθμίσει μεταβλητές περιβάλλοντος για διαπιστευτήρια βάσης δεδομένων.
Το επόμενο βήμα είναι να δημιουργήσετε το αρχείο περιβάλλοντος για τις μεταβλητές που χρησιμοποιούνται στο αρχείο σύνθεσης. Δημιουργήστε και ανοίξτε το αρχείο περιβάλλοντος για επεξεργασία.
Επικολλήστε τον παρακάτω κώδικα σε αυτό.
Αποθηκεύστε το αρχείο πατώντας Ctrl + X και πληκτρολογώντας Y όταν σας ζητηθεί. Αντικαταστήστε τις μεταβλητές με το όνομα χρήστη και τον κωδικό πρόσβασης της επιλογής σας.
Μπορείτε να προσαρμόσετε τη διαμόρφωση της PHP χρησιμοποιώντας ένα προσαρμοσμένο αρχείο php.ini.
Δημιουργήστε έναν φάκελο για τη διαμόρφωση της PHP.
Δημιουργήστε και ανοίξτε το php.conf.ini αρχείο για επεξεργασία.
Επικολλήστε τον παρακάτω κώδικα σε αυτό. Προσαρμόστε τις τιμές σύμφωνα με τις απαιτήσεις σας. Το όριο μεταφόρτωσης για το κοντέινερ PhpMyadmin είναι ανεξάρτητο από τις τιμές που χρησιμοποιείτε σε αυτό το αρχείο.
Αποθηκεύστε το αρχείο πατώντας Ctrl + X και πληκτρολογώντας Y όταν σας ζητηθεί.
Βήμα 4 - Ενημερώστε το Docker Compose για Nginx
Δημιουργήστε τον κατάλογο για τη διαμόρφωση Nginx.
Δημιουργήστε έναν κατάλογο για εικονικούς κεντρικούς υπολογιστές μέσα σε αυτόν τον κατάλογο.
Δημιουργήστε και ανοίξτε το nginx/vhost/wordpress.example.comγια επεξεργασία.
Επικολλήστε τον παρακάτω κώδικα σε αυτό.
Αποθηκεύστε το αρχείο πατώντας Ctrl + X και πληκτρολογώντας Y όταν σας ζητηθεί.
Κάντε το ίδιο για nginx/vhost/phpmyadmin.example.com το αρχείο.
Επικολλήστε τον παρακάτω κώδικα σε αυτό.
Αποθηκεύστε το αρχείο πατώντας Ctrl + X και πληκτρολογώντας Y όταν σας ζητηθεί.
Ανοίξτε ξανά το αρχείο σύνθεσης docker.
Επικολλήστε τον παρακάτω κώδικα πριν από τη volumes: db_data: γραμμή.
Αποθηκεύστε το αρχείο πατώντας Ctrl + X και πληκτρολογώντας Y όταν σας ζητηθεί.
Στον παραπάνω κώδικα, τραβάμε την εικόνα Docker του διακομιστή μεσολάβησης Nginx και εκθέτουμε τις θύρες 80 και 443 στο κοντέινερ κεντρικού υπολογιστή που θα χρησιμοποιηθεί για σύνδεση με τον εξωτερικό κόσμο. Έχουμε επίσης δημιουργήσει τόμους για τη σελίδα Nginx HTML, έναν κατάλογο όπου θα αποθηκεύονται όλα τα πιστοποιητικά SSL και τον κατάλογο για εικονικούς κεντρικούς υπολογιστές που χρησιμοποιήσαμε παραπάνω για να προσθέσουμε πρόσθετες ρυθμίσεις παραμέτρων nginx. Εδώ έχουμε διαμορφώσει το μέγεθος μεταφόρτωσης αρχείου για τους ιστότοπους WordPress και phpMyAdmin. Το όνομα τομέα για τις τοποθεσίες επιλέγεται από τις μεταβλητές περιβάλλοντος που ορίσαμε στο προηγούμενο βήμα.
Βήμα 5 - Ενημερώστε το Docker Compose για SSL
Ανοίξτε το αρχείο σύνθεσης docker για επεξεργασία.
Επικολλήστε τον παρακάτω κώδικα πριν από τη volumes: db_data:γραμμή.
Αποθηκεύστε το αρχείο πατώντας Ctrl + X και πληκτρολογώντας Y όταν σας ζητηθεί.
Εδώ τραβάμε την εικόνα του Acme Companion Docker που λειτουργεί μαζί με τον διακομιστή μεσολάβησης Nginx. Τραβάει τους όγκους από το δοχείο Nginx. Ορίζουμε επίσης έναν τόμο για το εργαλείο acme.sh που αποθηκεύει όλες τις ρυθμίσεις παραμέτρων σχετικά με το Let's encrypt SSL. Και τέλος, ορίζουμε μια μεταβλητή περιβάλλοντος για την εγγραφή του πιστοποιητικού SSL με το Let's Encrypt.
Βήμα 6 - Ξεκινήστε και εγκαταστήστε το WordPress
Τώρα που έχουν ολοκληρωθεί όλα τα αρχεία ρυθμίσεων, ήρθε η ώρα να ξεκινήσουμε και να εκκινήσουμε τα κοντέινερ.
Περιμένετε μερικά λεπτά και ελέγξτε την κατάσταση των δοχείων.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c1e8a9b5169d nginxproxy/acme-companion "/bin/bash /app/entr…" 14 seconds ago Up 7 seconds acme-companion
8a37c78ff790 wordpress:latest "docker-entrypoint.s…" 14 seconds ago Up 7 seconds 80/tcp, 8080/tcp wordpress-app
4f9c777c97c2 phpmyadmin/phpmyadmin "/docker-entrypoint.…" 14 seconds ago Up 7 seconds 80/tcp, 8081/tcp pma
1b1dede46b07 nginxproxy/nginx-proxy "/app/docker-entrypo…" 14 seconds ago Up 11 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/ tcp nginx
b9cf64a2f4a3 mysql:latest "docker-entrypoint.s…" 14 seconds ago Up 11 seconds 3306/tcp, 33060/tcp
Ανοίξτε τη διεύθυνση URL https://example.com για να ξεκινήσετε το πρόγραμμα εγκατάστασης του WordPress.
Επιλέξτε τη γλώσσα σας και κάντε κλικ στο κουμπί Συνέχεια για να προχωρήσετε στην επόμενη σελίδα.
Συμπληρώστε τα στοιχεία του ιστότοπου, επιλέξτε το όνομα χρήστη, τον κωδικό πρόσβασης και τη διεύθυνση email σας και κάντε κλικ στο κουμπί Εγκατάσταση WordPress για να ξεκινήσει η εγκατάσταση.
Θα μεταφερθείτε στη σελίδα επιτυχίας της εγκατάστασης. Κάντε κλικ στο κουμπί Σύνδεση για να μεταφερθείτε στη σελίδα σύνδεσης.
Εισαγάγετε τα στοιχεία σύνδεσής σας και κάντε κλικ στο κουμπί Σύνδεση για να ανοίξετε τον πίνακα ελέγχου του WordPress.
Μπορείτε να αρχίσετε να χρησιμοποιείτε το WordPress τώρα.
Βήμα 7 - Πρόσβαση στο PhpMyAdmin
Μπορείτε να αποκτήσετε πρόσβαση στο phpMyAdmin μέσω της διεύθυνσης URL https://phpmyadmin.example.com.
Εισαγάγετε root το όνομα χρήστη και τον κωδικό πρόσβασης root και κάντε κλικ στο Σύνδεση για να ανοίξετε τον πίνακα εργαλείων.
Μπορείτε να αρχίσετε να χρησιμοποιείτε το phpMyAdmin τώρα.
Βήμα 8 - Πρόσβαση στο WP-CLI
Μπορείτε να αποκτήσετε πρόσβαση στο WP-CLI χρησιμοποιώντας την ακόλουθη εντολή.
Θα λάβετε την ακόλουθη έξοδο.
[+] Running 2/0
? Container wordpressdb Running 0.0s
? Container wordpress-app Running 0.0s
WP-CLI 2.7.1
Για να αποφύγουμε την πληκτρολόγηση μιας τόσο μεγάλης εντολής κάθε φορά, μπορούμε να χρησιμοποιήσουμε το χαρακτηριστικό ψευδώνυμο του Linux.
Τώρα μπορείτε να πληκτρολογήσετε την ακόλουθη εντολή από οπουδήποτε στο κοντέινερ σας.
Τα ψευδώνυμα στο Linux είναι προσωρινά. Για να κάνετε το ψευδώνυμο μόνιμο, πρέπει να επεξεργαστείτε το ~/.bashrcαρχείο. Ανοίξτε το για επεξεργασία.
Επικολλήστε την ακόλουθη γραμμή στο τέλος του αρχείου.
Αποθηκεύστε το αρχείο πατώντας Ctrl + X και πληκτρολογώντας Y όταν σας ζητηθεί.
Πηγαίνετε το αρχείο για να φορτώσετε ξανά τη διαμόρφωση.
Μπορείτε να ξεκινήσετε να χρησιμοποιείτε το WP-CLI.
Βήμα 9 - Δημιουργία αντιγράφων ασφαλείας WordPress
Υπάρχουν διάφοροι τρόποι για να δημιουργήσετε αντίγραφα ασφαλείας του WordPress. Ο ευκολότερος τρόπος είναι να χρησιμοποιήσετε ένα πρόσθετο. Υπάρχουν πολλά πρόσθετα διαθέσιμα για αυτό. Μπορείτε επίσης να χρησιμοποιήσετε το phpMyAdmin για τη δημιουργία αντιγράφου ασφαλείας.
Μπορείτε επίσης να χρησιμοποιήσετε τη γραμμή εντολών για να δημιουργήσετε αντίγραφα ασφαλείας της βάσης δεδομένων του WordPress. Μεταβείτε στον κατάλογο του WordPress.
Χρησιμοποιήστε την ακόλουθη εντολή για να δημιουργήσετε αντίγραφα ασφαλείας της βάσης δεδομένων του WordPress. Θα σας ζητηθεί ο κωδικός ρίζας MySQL.
Η παραπάνω εντολή θα δημιουργήσει το αντίγραφο ασφαλείας SQL στον ~/wordpress/wp-dataκατάλογο.
Ελέγξτε τα περιεχόμενα του καταλόγου.
total 908
drwxr-xr-x 2 root root 4096 Jan 11 10:15 ./
drwxrwxr-x 6 navjot navjot 4096 Jan 11 10:05 ../
-rw-r--r-- 1 root root 919814 Jan 11 10:14 data_11-01-2023_10_14_40.sql
Μπορείτε να δείτε τη βάση δεδομένων με αντίγραφα ασφαλείας στον κατάλογο. Μπορείτε να επαναφέρετε αυτήν τη βάση δεδομένων χρησιμοποιώντας το εργαλείο phpMyAdmin ή χρησιμοποιώντας την ακόλουθη εντολή.
Μπορείτε να δημιουργήσετε μια εργασία cron για να δημιουργείτε αντίγραφα ασφαλείας της βάσης δεδομένων σε τακτά χρονικά διαστήματα.
Δημιουργήστε το εφεδρικό σενάριο στον /etc/cron.dailyκατάλογο και ανοίξτε το για επεξεργασία.
Επικολλήστε τον παρακάτω κώδικα σε αυτό.
Αποθηκεύστε το αρχείο πατώντας Ctrl + X και πληκτρολογώντας Y όταν σας ζητηθεί.
Κάντε το σενάριο εκτελέσιμο.
Τώρα, η βάση δεδομένων σας θα δημιουργεί αντίγραφα ασφαλείας καθημερινά.
Βήμα 10 - Αναβάθμιση WordPress
Ο ευκολότερος τρόπος για να αναβαθμίσετε το WordPress είναι να χρησιμοποιήσετε το ενσωματωμένο πρόγραμμα ενημέρωσης. Μπορείτε επίσης να το αναβαθμίσετε χρησιμοποιώντας το Docker. Το πρώτο βήμα είναι να δημιουργήσετε αντίγραφα ασφαλείας της βάσης δεδομένων του WordPress χρησιμοποιώντας την εντολή από το βήμα 9.
Στη συνέχεια, μεταβείτε στον κατάλογο.
Σταματήστε τα κοντέινερ.
Τραβήξτε τις πιο πρόσφατες εικόνες κοντέινερ.
Κάντε οποιεσδήποτε αλλαγές στο docker-compose.yml αν θέλετε.
Επανεκκινήστε τα κοντέινερ του WordPress.
Συμπέρασμα
Αυτό ολοκληρώνει το σεμινάριο μας σχετικά με την εγκατάσταση του WordPress χρησιμοποιώντας Docker Compose, phpMyAdmin και WP-CLI. Εάν έχετε οποιεσδήποτε ερωτήσεις, δημοσιεύστε τις στα σχόλια παρακάτω.
Αυτό το σεμινάριο θα σας διδάξει πώς να εγκαταστήσετε το WordPress χρησιμοποιώντας το Docker/Docker Compose. Χρησιμοποιώντας το Docker, η διαδικασία εγκατάστασης της προτιμώμενης στοίβας γίνεται πολύ πιο εύκολη. Μπορείτε να χρησιμοποιήσετε την ίδια διαμόρφωση για να εγκαταστήσετε γρήγορα το WordPress σε πολλούς διακομιστές. Θα εγκαταστήσουμε επίσης το εργαλείο phpMyAdmin για τη διαχείριση βάσεων δεδομένων μαζί με τον διακομιστή μεσολάβησης Nginx για την εξυπηρέτηση του ιστότοπου μέσω SSL.
Προαπαιτούμενα
- Ένας διακομιστής Linux με έναν χρήστη που δεν είναι root και έχει δικαιώματα sudo. Χρησιμοποιούμε έναν διακομιστή που εκτελεί το Ubuntu 22.04 για το σεμινάριο μας.
- Ένα πιστοποιημένο όνομα τομέα (FQDN) που οδηγεί στον διακομιστή σας. Για τους σκοπούς μας, θα χρησιμοποιήσουμε example.com ως όνομα τομέα για τον ιστότοπο WordPress και phpmyadmin.example.com για τον ιστότοπο phpMyAdmin.
- Βεβαιωθείτε ότι όλα είναι ενημερωμένα.
$ sudo apt update
Εγκαταστήστε βασικά πακέτα βοηθητικών προγραμμάτων. Ορισμένα από αυτά ενδέχεται να έχουν ήδη εγκατασταθεί.
$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y
Βήμα 1 - Διαμόρφωση τείχους προστασίας
Το πρώτο βήμα είναι να διαμορφώσετε το τείχος προστασίας. Το Ubuntu έρχεται με ufw (Uncomplicated Firewall) από προεπιλογή.
Ελέγξτε εάν το τείχος προστασίας λειτουργεί.
$ sudo ufw status
Θα πρέπει να λάβετε την ακόλουθη έξοδο.
Status: inactive
Επιτρέψτε τη θύρα SSH, ώστε το τείχος προστασίας να μην διακόψει την τρέχουσα σύνδεση κατά την ενεργοποίησή της.
$ sudo ufw allow OpenSSH
Επιτρέψτε επίσης τις θύρες HTTP και HTTPS.
$ sudo ufw allow http
$ sudo ufw allow https
Ενεργοποιήστε το Τείχος προστασίας
$ sudo ufw enable
Ελέγξτε ξανά την κατάσταση του τείχους προστασίας.
$ sudo ufw status
Θα πρέπει να δείτε μια παρόμοια έξοδο.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Βήμα 2 - Εγκαταστήστε το Docker και το Docker Compose
Το Ubuntu 22.04 κυκλοφορεί με μια παλαιότερη έκδοση του Docker. Για να εγκαταστήσετε την πιο πρόσφατη έκδοση, πρώτα εισάγετε το κλειδί Docker GPG.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Δημιουργήστε ένα αρχείο αποθήκης Docker.
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Ενημερώστε τη λίστα αποθετηρίων συστήματος.
$ sudo apt update
Εγκαταστήστε την πιο πρόσφατη έκδοση του Docker.
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Βεβαιωθείτε ότι εκτελείται.
$ [B]sudo systemctl status docker[/B]
? docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-01-09 13:19:16 UTC; 9s ago
TriggeredBy: ? docker.socket
Docs: https://docs.docker.com
Main PID: 1863 (dockerd)
Tasks: 7
Memory: 20.5M
CPU: 278ms
CGroup: /system.slice/docker.service
??1863 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Από προεπιλογή, το Docker απαιτεί δικαιώματα root. Εάν θέλετε να αποφύγετε τη χρήση sudoκάθε φορά που εκτελείτε την dockerεντολή, προσθέστε το όνομα χρήστη σας στην dockerομάδα.
$ sudo usermod -aG docker $(whoami)
Θα χρειαστεί να αποσυνδεθείτε από τον διακομιστή και να συνδεθείτε ξανά ως ο ίδιος χρήστης για να ενεργοποιήσετε αυτήν την αλλαγή ή να χρησιμοποιήσετε την ακόλουθη εντολή.
$ su - ${USER}
Επιβεβαιώστε ότι ο χρήστης σας έχει προστεθεί στην ομάδα Docker.
$ [B]groups[/B]
navjot wheel docker
Βήμα 3 - Δημιουργήστε αρχείο Docker Compose για WordPress
Δημιουργήστε έναν κατάλογο για τη διαμόρφωση του WordPress.
$ mkdir wordpress
Μετάβαση στον κατάλογο.
$ cd wordpress
Δημιουργήστε και ανοίξτε το αρχείο σύνθεσης Docker για επεξεργασία.
$ nano docker-compose.yml
Επικολλήστε τον παρακάτω κώδικα σε αυτό.
Code:
version: '3.9'
services:
wp:
image: wordpress:latest
container_name: wordpress-app
restart: unless-stopped
expose:
- 8080
volumes:
- ./config/php.conf.ini:/usr/local/etc/php/conf.d/conf.ini
- ./wp-app:/var/www/html
#- ./plugin-name/trunk/:/var/www/html/wp-content/plugins/plugin-name # Plugin development
#- ./theme-name/trunk/:/var/www/html/wp-content/themes/theme-name # Theme development
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_NAME: "${DB_NAME}"
WORDPRESS_DB_USER: "${DB_USER_NAME}"
WORDPRESS_DB_PASSWORD: "${DB_USER_PASSWORD}"
VIRTUAL_HOST: example.com
LETSENCRYPT_HOST: example.com
depends_on:
- db
links:
- db
wpcli:
image: wordpress:cli
container_name: wpcli_app
volumes:
- ./config/php.conf.ini:/usr/local/etc/php/conf.d/conf.ini
- ./wp-app:/var/www/html
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_NAME: "${DB_NAME}"
WORDPRESS_DB_USER: "${DB_USER_NAME}"
WORDPRESS_DB_PASSWORD: "${DB_USER_PASSWORD}"
depends_on:
- db
- wp
pma:
image: phpmyadmin/phpmyadmin
container_name: pma
restart: unless-stopped
environment:
# https://docs.phpmyadmin.net/en/latest/setup.html#docker-environment-variables
PMA_HOST: db
PMA_PORT: 3306
MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"
UPLOAD_LIMIT: 50M
VIRTUAL_HOST: phpmyadmin.example.com
LETSENCRYPT_HOST: phpmyadmin.example.com
expose:
- 8081
links:
- db:db
db:
image: mysql:latest
container_name: wordpressdb
restart: unless-stopped
command: [
'--default_authentication_plugin=mysql_native_password',
'--character-set-server=utf8mb4',
'--collation-server=utf8mb4_unicode_ci'
]
volumes:
- ./wp-data:/docker-entrypoint-initdb.d
- db_data:/var/lib/mysql
environment:
MYSQL_DATABASE: "${DB_NAME}"
MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"
MYSQL_USER: "${DB_USER_NAME}"
MYSQL_PASSWORD: "${DB_USER_PASSWORD}"
volumes:
db_data:
Αποθηκεύστε το αρχείο πατώντας Ctrl + X και πληκτρολογώντας Y όταν σας ζητηθεί.
Υπάρχουν δύο εικόνες WordPress που τραβάμε. Το ένα είναι για τον ιστότοπο και το άλλο για το εργαλείο WP-CLI. Και οι δύο εικόνες εξαρτώνται από την εικόνα Docker της MySQL 8.0. Εδώ ορίζουμε τις μεταβλητές περιβάλλοντος για τα διαπιστευτήρια της βάσης δεδομένων. Έχουμε δημιουργήσει δύο τόμους και για τα δύο κοντέινερ, ο ένας από τους οποίους οδηγεί στα δημόσια αρχεία για τον ιστότοπο WordPress και ο δεύτερος στην προσαρμοσμένη τοποθεσία PHP.ini. Έχουμε επίσης ορίσει τις μεταβλητές περιβάλλοντος για τον εικονικό τομέα κεντρικού υπολογιστή Nginx και τον τομέα Let's encrypt SSL για τον ιστότοπο WordPress.
Μπορείτε να προσθέσετε περισσότερες μεταβλητές περιβάλλοντος και να προσθέσετε προσαρμοσμένα wp-config.php δεδομένα στο αρχείο Docker. Μπορείτε να μάθετε για τις πρόσθετες μεταβλητές περιβάλλοντος από τη σελίδα WordPress DockerHub .
Η επόμενη εικόνα είναι για το phpMyAdmin που εξαρτάται από την ίδια εικόνα MySQL και τη συνδέει χρησιμοποιώντας τον κωδικό πρόσβασης root. Έχει όριο μεταφόρτωσης 50MB. Μπορείτε να το αλλάξετε ανάλογα με τις απαιτήσεις σας και το μέγεθος της βάσης δεδομένων σας. Όπως και με τον ιστότοπο WordPress, έχουμε ορίσει τον εικονικό τομέα κεντρικού υπολογιστή Nginx και ας κρυπτογραφήσουμε το όνομα τομέα SSL για τον ιστότοπο phpMyAdmin.
Η τελευταία εικόνα είναι για τη βάση δεδομένων MySQL. Έχουμε περάσει μερικές εντολές για να ορίσουμε την προεπιλεγμένη μέθοδο ελέγχου ταυτότητας και το σύνολο χαρακτήρων. Έχουμε επίσης δημιουργήσει μερικούς τόμους για την αποθήκευση των δεδομένων. Έχουμε επίσης ρυθμίσει μεταβλητές περιβάλλοντος για διαπιστευτήρια βάσης δεδομένων.
Το επόμενο βήμα είναι να δημιουργήσετε το αρχείο περιβάλλοντος για τις μεταβλητές που χρησιμοποιούνται στο αρχείο σύνθεσης. Δημιουργήστε και ανοίξτε το αρχείο περιβάλλοντος για επεξεργασία.
$ sudo nano .env
Επικολλήστε τον παρακάτω κώδικα σε αυτό.
DB_NAME=wordpress
DB_USER_NAME=username
DB_USER_PASSWORD=userpassword
DB_ROOT_PASSWORD=password
Αποθηκεύστε το αρχείο πατώντας Ctrl + X και πληκτρολογώντας Y όταν σας ζητηθεί. Αντικαταστήστε τις μεταβλητές με το όνομα χρήστη και τον κωδικό πρόσβασης της επιλογής σας.
Μπορείτε να προσαρμόσετε τη διαμόρφωση της PHP χρησιμοποιώντας ένα προσαρμοσμένο αρχείο php.ini.
Δημιουργήστε έναν φάκελο για τη διαμόρφωση της PHP.
$ mkdir config
Δημιουργήστε και ανοίξτε το php.conf.ini αρχείο για επεξεργασία.
$ nano config/php.conf.ini
Επικολλήστε τον παρακάτω κώδικα σε αυτό. Προσαρμόστε τις τιμές σύμφωνα με τις απαιτήσεις σας. Το όριο μεταφόρτωσης για το κοντέινερ PhpMyadmin είναι ανεξάρτητο από τις τιμές που χρησιμοποιείτε σε αυτό το αρχείο.
file_uploads = On
memory_limit = 500M
upload_max_filesize = 30M
post_max_size = 30M
max_execution_time = 600
Αποθηκεύστε το αρχείο πατώντας Ctrl + X και πληκτρολογώντας Y όταν σας ζητηθεί.
Βήμα 4 - Ενημερώστε το Docker Compose για Nginx
Δημιουργήστε τον κατάλογο για τη διαμόρφωση Nginx.
$ mkdir nginx
Δημιουργήστε έναν κατάλογο για εικονικούς κεντρικούς υπολογιστές μέσα σε αυτόν τον κατάλογο.
$ mkdir nginx/vhost
Δημιουργήστε και ανοίξτε το nginx/vhost/wordpress.example.comγια επεξεργασία.
$ nano nginx/vhost/wordpress.example.com
Επικολλήστε τον παρακάτω κώδικα σε αυτό.
server_tokens off?
client_max_body_size 30m;
Αποθηκεύστε το αρχείο πατώντας Ctrl + X και πληκτρολογώντας Y όταν σας ζητηθεί.
Κάντε το ίδιο για nginx/vhost/phpmyadmin.example.com το αρχείο.
$ nano nginx/vhost/phpmyadmin.example.com
Επικολλήστε τον παρακάτω κώδικα σε αυτό.
server_tokens off?
client_max_body_size 50m;
Αποθηκεύστε το αρχείο πατώντας Ctrl + X και πληκτρολογώντας Y όταν σας ζητηθεί.
Ανοίξτε ξανά το αρχείο σύνθεσης docker.
$ nano docker-compose.yml
Επικολλήστε τον παρακάτω κώδικα πριν από τη volumes: db_data: γραμμή.
nginx:
container_name: nginx
image: nginxproxy/nginx-proxy
restart: unless-stopped
ports:
- 80:80
- 443:443
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./nginx/html:/usr/share/nginx/html
- ./nginx/certs:/etc/nginx/certs
- ./nginx/vhost:/etc/nginx/vhost.d
logging:
options:
max-size: "10m"
max-file: "3"
Αποθηκεύστε το αρχείο πατώντας Ctrl + X και πληκτρολογώντας Y όταν σας ζητηθεί.
Στον παραπάνω κώδικα, τραβάμε την εικόνα Docker του διακομιστή μεσολάβησης Nginx και εκθέτουμε τις θύρες 80 και 443 στο κοντέινερ κεντρικού υπολογιστή που θα χρησιμοποιηθεί για σύνδεση με τον εξωτερικό κόσμο. Έχουμε επίσης δημιουργήσει τόμους για τη σελίδα Nginx HTML, έναν κατάλογο όπου θα αποθηκεύονται όλα τα πιστοποιητικά SSL και τον κατάλογο για εικονικούς κεντρικούς υπολογιστές που χρησιμοποιήσαμε παραπάνω για να προσθέσουμε πρόσθετες ρυθμίσεις παραμέτρων nginx. Εδώ έχουμε διαμορφώσει το μέγεθος μεταφόρτωσης αρχείου για τους ιστότοπους WordPress και phpMyAdmin. Το όνομα τομέα για τις τοποθεσίες επιλέγεται από τις μεταβλητές περιβάλλοντος που ορίσαμε στο προηγούμενο βήμα.
Βήμα 5 - Ενημερώστε το Docker Compose για SSL
Ανοίξτε το αρχείο σύνθεσης docker για επεξεργασία.
$ nano docker-compose.yml
Επικολλήστε τον παρακάτω κώδικα πριν από τη volumes: db_data:γραμμή.
acme-companion:
container_name: acme-companion
image: nginxproxy/acme-companion
restart: unless-stopped
volumes_from:
- nginx
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./nginx/acme:/etc/acme.sh
environment:
DEFAULT_EMAIL: [email protected]
Αποθηκεύστε το αρχείο πατώντας Ctrl + X και πληκτρολογώντας Y όταν σας ζητηθεί.
Εδώ τραβάμε την εικόνα του Acme Companion Docker που λειτουργεί μαζί με τον διακομιστή μεσολάβησης Nginx. Τραβάει τους όγκους από το δοχείο Nginx. Ορίζουμε επίσης έναν τόμο για το εργαλείο acme.sh που αποθηκεύει όλες τις ρυθμίσεις παραμέτρων σχετικά με το Let's encrypt SSL. Και τέλος, ορίζουμε μια μεταβλητή περιβάλλοντος για την εγγραφή του πιστοποιητικού SSL με το Let's Encrypt.
Βήμα 6 - Ξεκινήστε και εγκαταστήστε το WordPress
Τώρα που έχουν ολοκληρωθεί όλα τα αρχεία ρυθμίσεων, ήρθε η ώρα να ξεκινήσουμε και να εκκινήσουμε τα κοντέινερ.
$ docker compose up -d
Περιμένετε μερικά λεπτά και ελέγξτε την κατάσταση των δοχείων.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c1e8a9b5169d nginxproxy/acme-companion "/bin/bash /app/entr…" 14 seconds ago Up 7 seconds acme-companion
8a37c78ff790 wordpress:latest "docker-entrypoint.s…" 14 seconds ago Up 7 seconds 80/tcp, 8080/tcp wordpress-app
4f9c777c97c2 phpmyadmin/phpmyadmin "/docker-entrypoint.…" 14 seconds ago Up 7 seconds 80/tcp, 8081/tcp pma
1b1dede46b07 nginxproxy/nginx-proxy "/app/docker-entrypo…" 14 seconds ago Up 11 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/ tcp nginx
b9cf64a2f4a3 mysql:latest "docker-entrypoint.s…" 14 seconds ago Up 11 seconds 3306/tcp, 33060/tcp
Ανοίξτε τη διεύθυνση URL https://example.com για να ξεκινήσετε το πρόγραμμα εγκατάστασης του WordPress.
Επιλέξτε τη γλώσσα σας και κάντε κλικ στο κουμπί Συνέχεια για να προχωρήσετε στην επόμενη σελίδα.
Συμπληρώστε τα στοιχεία του ιστότοπου, επιλέξτε το όνομα χρήστη, τον κωδικό πρόσβασης και τη διεύθυνση email σας και κάντε κλικ στο κουμπί Εγκατάσταση WordPress για να ξεκινήσει η εγκατάσταση.
Θα μεταφερθείτε στη σελίδα επιτυχίας της εγκατάστασης. Κάντε κλικ στο κουμπί Σύνδεση για να μεταφερθείτε στη σελίδα σύνδεσης.
Εισαγάγετε τα στοιχεία σύνδεσής σας και κάντε κλικ στο κουμπί Σύνδεση για να ανοίξετε τον πίνακα ελέγχου του WordPress.
Μπορείτε να αρχίσετε να χρησιμοποιείτε το WordPress τώρα.
Βήμα 7 - Πρόσβαση στο PhpMyAdmin
Μπορείτε να αποκτήσετε πρόσβαση στο phpMyAdmin μέσω της διεύθυνσης URL https://phpmyadmin.example.com.
Εισαγάγετε root το όνομα χρήστη και τον κωδικό πρόσβασης root και κάντε κλικ στο Σύνδεση για να ανοίξετε τον πίνακα εργαλείων.
Μπορείτε να αρχίσετε να χρησιμοποιείτε το phpMyAdmin τώρα.
Βήμα 8 - Πρόσβαση στο WP-CLI
Μπορείτε να αποκτήσετε πρόσβαση στο WP-CLI χρησιμοποιώντας την ακόλουθη εντολή.
$ docker compose run --rm wpcli cli version
Θα λάβετε την ακόλουθη έξοδο.
[+] Running 2/0
? Container wordpressdb Running 0.0s
? Container wordpress-app Running 0.0s
WP-CLI 2.7.1
Για να αποφύγουμε την πληκτρολόγηση μιας τόσο μεγάλης εντολής κάθε φορά, μπορούμε να χρησιμοποιήσουμε το χαρακτηριστικό ψευδώνυμο του Linux.
$ alias wp="docker compose -f ~/wordpress/docker-compose.yml run --rm wpcli"
Τώρα μπορείτε να πληκτρολογήσετε την ακόλουθη εντολή από οπουδήποτε στο κοντέινερ σας.
$ wp cli version
Τα ψευδώνυμα στο Linux είναι προσωρινά. Για να κάνετε το ψευδώνυμο μόνιμο, πρέπει να επεξεργαστείτε το ~/.bashrcαρχείο. Ανοίξτε το για επεξεργασία.
$ nano ~/.bashrc
Επικολλήστε την ακόλουθη γραμμή στο τέλος του αρχείου.
# Custom aliases
alias wp="docker compose -f ~/wordpress/docker-compose.yml run --rm wpcli"
Αποθηκεύστε το αρχείο πατώντας Ctrl + X και πληκτρολογώντας Y όταν σας ζητηθεί.
Πηγαίνετε το αρχείο για να φορτώσετε ξανά τη διαμόρφωση.
$ source ~/.bashrc
Μπορείτε να ξεκινήσετε να χρησιμοποιείτε το WP-CLI.
Βήμα 9 - Δημιουργία αντιγράφων ασφαλείας WordPress
Υπάρχουν διάφοροι τρόποι για να δημιουργήσετε αντίγραφα ασφαλείας του WordPress. Ο ευκολότερος τρόπος είναι να χρησιμοποιήσετε ένα πρόσθετο. Υπάρχουν πολλά πρόσθετα διαθέσιμα για αυτό. Μπορείτε επίσης να χρησιμοποιήσετε το phpMyAdmin για τη δημιουργία αντιγράφου ασφαλείας.
Μπορείτε επίσης να χρησιμοποιήσετε τη γραμμή εντολών για να δημιουργήσετε αντίγραφα ασφαλείας της βάσης δεδομένων του WordPress. Μεταβείτε στον κατάλογο του WordPress.
$ cd ~/wordpress
Χρησιμοποιήστε την ακόλουθη εντολή για να δημιουργήσετε αντίγραφα ασφαλείας της βάσης δεδομένων του WordPress. Θα σας ζητηθεί ο κωδικός ρίζας MySQL.
$ docker compose exec db sh -c "exec mysqldump wordpress -uroot -p" | sudo tee wp-data/data_`date +%d-%m-%Y"_"%H_%M_%S`.sql >/dev/null
Enter password: password
Η παραπάνω εντολή θα δημιουργήσει το αντίγραφο ασφαλείας SQL στον ~/wordpress/wp-dataκατάλογο.
Ελέγξτε τα περιεχόμενα του καταλόγου.
$ ls -al wp-data
total 908
drwxr-xr-x 2 root root 4096 Jan 11 10:15 ./
drwxrwxr-x 6 navjot navjot 4096 Jan 11 10:05 ../
-rw-r--r-- 1 root root 919814 Jan 11 10:14 data_11-01-2023_10_14_40.sql
Μπορείτε να δείτε τη βάση δεδομένων με αντίγραφα ασφαλείας στον κατάλογο. Μπορείτε να επαναφέρετε αυτήν τη βάση δεδομένων χρησιμοποιώντας το εργαλείο phpMyAdmin ή χρησιμοποιώντας την ακόλουθη εντολή.
$ docker compose exec db sh -c "exec mysql -uroot -p" < wp-data/data_11-01-2023_10_14_40.sql
Μπορείτε να δημιουργήσετε μια εργασία cron για να δημιουργείτε αντίγραφα ασφαλείας της βάσης δεδομένων σε τακτά χρονικά διαστήματα.
Δημιουργήστε το εφεδρικό σενάριο στον /etc/cron.dailyκατάλογο και ανοίξτε το για επεξεργασία.
$ sudo nano /etc/cron.daily/wpbackup.sh
Επικολλήστε τον παρακάτω κώδικα σε αυτό.
#!/bin/bash
docker compose exec db sh -c "exec mysqldump wordpress -uroot -p" | tee wp-data/data_`date +%d-%m-%Y"_"%H_%M_%S`.sql >/dev/null
Αποθηκεύστε το αρχείο πατώντας Ctrl + X και πληκτρολογώντας Y όταν σας ζητηθεί.
Κάντε το σενάριο εκτελέσιμο.
$ sudo chmod +x /etc/cron.daily/wpbackup.sh
Τώρα, η βάση δεδομένων σας θα δημιουργεί αντίγραφα ασφαλείας καθημερινά.
Βήμα 10 - Αναβάθμιση WordPress
Ο ευκολότερος τρόπος για να αναβαθμίσετε το WordPress είναι να χρησιμοποιήσετε το ενσωματωμένο πρόγραμμα ενημέρωσης. Μπορείτε επίσης να το αναβαθμίσετε χρησιμοποιώντας το Docker. Το πρώτο βήμα είναι να δημιουργήσετε αντίγραφα ασφαλείας της βάσης δεδομένων του WordPress χρησιμοποιώντας την εντολή από το βήμα 9.
Στη συνέχεια, μεταβείτε στον κατάλογο.
$ cd ~/wordpress
Σταματήστε τα κοντέινερ.
$ docker compose down --remove-orphans
Τραβήξτε τις πιο πρόσφατες εικόνες κοντέινερ.
$ docker compose pull
Κάντε οποιεσδήποτε αλλαγές στο docker-compose.yml αν θέλετε.
Επανεκκινήστε τα κοντέινερ του WordPress.
$ docker compose up -d
Συμπέρασμα
Αυτό ολοκληρώνει το σεμινάριο μας σχετικά με την εγκατάσταση του WordPress χρησιμοποιώντας Docker Compose, phpMyAdmin και WP-CLI. Εάν έχετε οποιεσδήποτε ερωτήσεις, δημοσιεύστε τις στα σχόλια παρακάτω.