Δημιουργία προτύπου VPS με το Drupal 9 στο Centos 8
Συνεχίζουμε να επεκτείνουμε την αγορά μας. Πρόσφατα σας είπαμε πώς έκανε μια εικόνα Gitlab, και αυτή την εβδομάδα το Drupal εμφανίστηκε στην αγορά μας.
Σας λέμε γιατί τον επιλέξαμε και πώς δημιουργήθηκε η εικόνα.
Drupal — μια βολική και ισχυρή πλατφόρμα για τη δημιουργία οποιουδήποτε τύπου ιστότοπου: από μικροιστοτόπους και ιστολόγια έως μεγάλα κοινωνικά έργα, που χρησιμοποιείται επίσης ως βάση για διαδικτυακές εφαρμογές, γραμμένες σε PHP και χρησιμοποιώντας σχεσιακές βάσεις δεδομένων ως αποθήκευση δεδομένων.
Το Drupal 9 περιλαμβάνει όλα τα χαρακτηριστικά που εισήχθησαν στην έκδοση 8.9. Η βασική διαφορά μεταξύ της έκδοσης 9 και της έκδοσης 8 είναι ότι η πλατφόρμα θα συνεχίσει να λαμβάνει ενημερώσεις και επιδιορθώσεις ασφαλείας μετά τον Νοέμβριο του 2021. Η έκδοση 9 απλοποιεί επίσης τη διαδικασία ενημέρωσης, κάνοντας τη διαδικασία αναβάθμισης από την έκδοση 8 ακόμα πιο εύκολη.
Απαιτήσεις διακομιστή
Για να χρησιμοποιήσετε το Drupal, συνιστάται η χρήση 2 GB RAM και 2 πυρήνων CPU.
Τα κύρια αρχεία Drupal καταλαμβάνουν περίπου 100 MB, επιπλέον θα χρειαστείτε χώρο για την αποθήκευση εικόνων, βάσης δεδομένων, θεμάτων, πρόσθετων λειτουργικών μονάδων και αντιγράφων ασφαλείας, τα οποία θα εξαρτηθούν από το μέγεθος του ιστότοπού σας.
Το Drupal 9 απαιτεί PHP 7.4 ή νεότερη έκδοση με ελάχιστο περιορισμό (memory_limit) για μνήμη 64 MB, εάν χρησιμοποιούνται πρόσθετες μονάδες, συνιστάται η εγκατάσταση 128 MB.
Το Drupal μπορεί να χρησιμοποιήσει το Apache ή το Nginx ως διακομιστή ιστού και τα MySQL, PostgreSQL ή SQLite ως βάση δεδομένων.
Θα εγκαταστήσουμε το Drupal χρησιμοποιώντας Nginx και MySQL.
Εγκατάσταση
Ας ενημερώσουμε τα εγκατεστημένα πακέτα στην πιο πρόσφατη έκδοση:
sudo dnf update -y
Ας προσθέσουμε μόνιμη άδεια για την εισερχόμενη επισκεψιμότητα στις θύρες http/80 και https/443:
Εφόσον το κύριο αποθετήριο Centos χρησιμοποιεί αυτήν τη στιγμή PHP 7.2, ας προσθέσουμε ένα αποθετήριο REMI με PHP 7.4 (ελάχιστη έκδοση για το Drupal 9).
Για να το κάνετε αυτό, προσθέστε το αποθετήριο EPEL (απαιτείται από το αποθετήριο REMI):
Δεδομένου ότι φτιάχνουμε ένα πρότυπο για VDS και μπορεί να είναι αργά, θα προσθέσουμε μια καθυστέρηση έναρξης mysqld 30 δευτερολέπτων, διαφορετικά μπορεί να υπάρχουν προβλήματα με την εκκίνηση του διακομιστή κατά την αρχική εκκίνηση του συστήματος:
sudo sed -i '/Group=mysql/a
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.service
Ας αλλάξουμε την ομάδα και τον χρήστη κάτω από τον οποίο θα εκτελείται το nginx κάνοντας αλλαγές στο /etc/php-fpm.d/www.conf:
sudo sed -i --follow-symlinks 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf
sudo sed -i --follow-symlinks 's/group = apache/group = nginx/g' /etc/php-fpm.d/www.conf
Ας αλλάξουμε τον κάτοχο του καταλόγου συνεδριών PHP σε nginx ανάλογα:
sudo chown -R nginx. /var/lib/php/session
Ας αφαιρέσουμε τις γραμμές με σχόλια από το αρχείο διαμόρφωσης /etc/nginx/nginx.conf (έτσι ώστε να μην υπάρχουν διπλοί ερεθισμοί για το sed):
sudo sed -i -e '/^[ t]*#/d' /etc/nginx/nginx.conf
Προσθέστε ρυθμίσεις συμπίεσης gzip στο /etc/nginx/nginx.conf
Ας προσθέσουμε τις ρυθμίσεις του αρχείου ευρετηρίου index.php στο /etc/nginx/nginx.conf:
sudo sed -i '/ root /usr/share/nginx/html;/a
index index.php index.html index.htm;
' /etc/nginx/nginx.conf
Ας προσθέσουμε ρυθμίσεις για τον προεπιλεγμένο διακομιστή: επεξεργασία PHP μέσω της υποδοχής php-fpm, απενεργοποίηση του αρχείου καταγραφής για στατικά αρχεία, αύξηση του χρόνου λήξης, απενεργοποίηση του αρχείου καταγραφής πρόσβασης και σφαλμάτων για το favicon.ico και το robots.txt και άρνηση πρόσβασης στο .ht αρχεία για όλους:
Ας διαγράψουμε το αρχείο με τα αρχεία εγκατάστασης:
rm -f ./tar.gz
Ας εκχωρήσουμε τον κάτοχο των αρχείων nginx:
chown -R nginx. /usr/share/nginx/html
Σε αυτό το στάδιο θα απενεργοποιήσουμε τον διακομιστή και θα τραβήξουμε ένα στιγμιότυπο:
shutdown -h now
Μετά την εκκίνηση του VDS από το στιγμιότυπο, θα εκτελέσουμε την αρχική εγκατάσταση του διακομιστή MySQL εκτελώντας το σενάριο:
mysql_secure_installation
Ας ενεργοποιήσουμε το εργαλείο επικύρωσης κωδικού πρόσβασης:
Would you like to setup VALIDATE PASSWORD component? : y
Ας ορίσουμε τον κωδικό πρόσβασης χρήστη root MySQL:
New password:
Re-enter new password:
Ας αφαιρέσουμε τους ανώνυμους χρήστες:
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Ας αποτρέψουμε την απομακρυσμένη σύνδεση του root:
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Ας διαγράψουμε τη βάση δεδομένων δοκιμής:
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Ας φορτώσουμε ξανά τους πίνακες προνομίων:
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Μετά από αυτό, για να ολοκληρώσουμε την εγκατάσταση, μπορούμε να πάμε στο vps_ip_address
Σε αυτή τη διεύθυνση θα δούμε τη σελίδα εγκατάστασης του Drupal.
Ας επιλέξουμε τη γλώσσα που θα χρησιμοποιήσουμε. Για παράδειγμα: ρωσικά. Κάντε κλικ στο "Αποθήκευση και Συνέχεια"
Ας επιλέξουμε ένα προφίλ εγκατάστασης (η επίδειξη χρησιμοποιείται αποκλειστικά για εξοικείωση με το σύστημα). Στην περίπτωσή μας, ας είναι «στάνταρ».
Στην επόμενη σελίδα θα δώσουμε ένα όνομα στη βάση δεδομένων, για παράδειγμα “drupal”. Ας υποδείξουμε το όνομα χρήστη της βάσης δεδομένων root και τον κωδικό πρόσβασης που του δόθηκε κατά την εκτέλεση του mysql_secure_installation. Κάντε κλικ στο «Αποθήκευση και Συνέχεια».
Ας περιμένουμε να ολοκληρωθεί η εγκατάσταση και η ενημέρωση των μεταφράσεων (η διαδικασία μπορεί να διαρκέσει αρκετά λεπτά).
Θα υποδείξουμε το όνομα του ιστότοπου, θα ορίσουμε το email του ιστότοπου (εκ μέρους του οποίου θα αποστέλλονται ειδοποιήσεις ιστότοπου), τη σύνδεση, τον κωδικό πρόσβασης και το email του λογαριασμού διαχειριστή του Drupal. Θα ορίσουμε επίσης τη χώρα και τη ζώνη ώρας στις τοπικές ρυθμίσεις. Και ολοκληρώστε την εγκατάσταση κάνοντας κλικ στο "Αποθήκευση και Συνέχεια".
Μετά από αυτό, μπορείτε να μεταβείτε στον πίνακα ελέγχου με τα δημιουργημένα στοιχεία σύνδεσης και κωδικό πρόσβασης διαχειριστή του Drupal.
Ρύθμιση HTTPS (προαιρετικό)
Για να ρυθμίσετε τις παραμέτρους του HTTPS, το VDS πρέπει να έχει ένα έγκυρο όνομα DNS, προσδιορίστε το
/etc/nginx/nginx.conf
στην ενότητα διακομιστή το όνομα διακομιστή (για παράδειγμα):
server_name domainname.ru;
Ας επανεκκινήσουμε το nginx:
service nginx restart
Ας ξεκινήσουμε το certbot:
sudo /usr/local/bin/certbot-auto --nginx
Εισαγάγετε το e-mail σας, συμφωνήστε με τους όρους παροχής υπηρεσιών (Α), Εγγραφείτε στο ενημερωτικό δελτίο (προαιρετικό) (Ν), επιλέξτε τα ονόματα τομέα για τα οποία θέλετε να εκδώσετε πιστοποιητικό (Enter για όλους).
Εάν όλα πήγαν χωρίς σφάλματα, θα δούμε ένα μήνυμα σχετικά με την επιτυχή έκδοση πιστοποιητικών και τη διαμόρφωση διακομιστή:
Congratulations! You have successfully enabled ...
Μετά από αυτό, οι συνδέσεις στη θύρα 80 θα ανακατευθυνθούν στο 443 (https).
Προσθήκη στο /etc/crontab για αυτόματη ενημέρωση των πιστοποιητικών:
Αυτή η ρύθμιση προορίζεται ως λύση στο πρόβλημα που σχετίζεται με τον δυναμικό προσδιορισμό βάσης_url και έχει σχεδιαστεί για να αποτρέπει επιθέσεις κεφαλίδας HTTP HOST (όταν ο ιστότοπός σας πιστεύει ότι είναι κάποιος άλλος).
Για να το κάνετε αυτό, πρέπει να καθορίσετε αξιόπιστα ονόματα τομέα για τον ιστότοπο στο αρχείο ρυθμίσεων.
Στο αρχείο
/usr/share/nginx/html/sites/default/settings.php Ας αφαιρέσουμε το σχόλιο ή ας προσθέσουμε μια ρύθμιση με μοτίβα πραγματικών ονομάτων τοποθεσιών, για παράδειγμα:
Το Drupal υποστηρίζει APCu - Εναλλακτική κρυφή μνήμη χρήστη PHP, οι εκδόσεις 8 και 9 κάνουν μεγαλύτερη χρήση του APCu ως βραχυπρόθεσμης τοπικής μνήμης cache από τις προηγούμενες εκδόσεις. Το προεπιλεγμένο μέγεθος προσωρινής μνήμης (32 MB) είναι κατάλληλο για τους περισσότερους ιστότοπους και δεν μπορεί να υπερβαίνει τα 512 MB.
Για ενεργοποίηση, εγκαταστήστε τη λειτουργική μονάδα PHP APCu:
dnf -y install php-pecl-apcu
Επανεκκινήστε το nginx και το php-fpm:
service nginx restart
service php-fpm restart
Εάν χρησιμοποιείτε τη ρωσική γλώσσα και το APCu με το προτεινόμενο μέγεθος μνήμης για τη μνήμη cache, ενδέχεται να δείτε μια προειδοποίηση στον πίνακα ελέγχου ότι το μέγεθος της εκχωρημένης μνήμης για τη μνήμη cache είναι διαφορετικό από το προτεινόμενο, αλλά στην πραγματικότητα όλα λειτουργούν σωστά, και η λανθασμένη προειδοποίηση πιθανότατα θα διορθωθεί στις επόμενες ενημερώσεις.
Θα θέλαμε να σας υπενθυμίσουμε ότι μπορείτε επίσης να φτιάξετε μια εικόνα για εμάς
Υπάρχουν τρεις επιλογές για τον τρόπο συμμετοχής.
Προετοιμάστε την εικόνα μόνοι σας και λάβετε 3000 ρούβλια στο υπόλοιπό σας
Εάν είστε έτοιμοι να βιαστείτε αμέσως στη μάχη και να δημιουργήσετε την εικόνα που σας λείπει, θα σας πιστώσουμε με 3000 ρούβλια στο εσωτερικό σας υπόλοιπο, τα οποία μπορείτε να ξοδέψετε σε διακομιστές.
Ενημερώστε την υποστήριξη ότι πρόκειται να δημιουργήσετε και να δοκιμάσετε εικόνες
Θα σας πιστώσουμε 3000 ρούβλια και θα ενεργοποιήσουμε τη δυνατότητα δημιουργίας στιγμιότυπων
Παραγγείλετε έναν εικονικό διακομιστή με καθαρό λειτουργικό σύστημα
Εγκαταστήστε το λογισμικό σε αυτό το VPS και διαμορφώστε το
Γράψτε οδηγίες ή σενάριο για την ανάπτυξη λογισμικού
Δημιουργήστε ένα στιγμιότυπο για τον διαμορφωμένο διακομιστή
Παραγγείλετε έναν νέο εικονικό διακομιστή επιλέγοντας το στιγμιότυπο που δημιουργήθηκε προηγουμένως στην αναπτυσσόμενη λίστα "Πρότυπο διακομιστή"
Εάν ο διακομιστής δημιουργηθεί με επιτυχία, μεταφέρετε τα υλικά που ελήφθησαν στο στάδιο 6 στην τεχνική υποστήριξη
Εάν υπάρχει σφάλμα, μπορείτε να ελέγξετε με υποστήριξη για τον λόγο και να επαναλάβετε τη ρύθμιση
Για ιδιοκτήτες επιχειρήσεων: προσφέρετε το λογισμικό σας
Εάν είστε προγραμματιστής λογισμικού που αναπτύσσεται και χρησιμοποιείται σε VPS, τότε μπορούμε να σας συμπεριλάβουμε στην αγορά. Με αυτόν τον τρόπο μπορούμε να σας βοηθήσουμε να προσελκύσετε νέους πελάτες, επισκεψιμότητα και ευαισθητοποίηση. Γράψτε μας