Εγκαταστήστε το LEMP - Nginx, PHP, MariaDB και PhpMyAdmin στο OpenSUSE


Η στοίβα LEMP ή Linux, Engine-x, MySQL και PHP είναι λογισμικό πακέτο που αποτελείται από λογισμικό ανοιχτού κώδικα εγκατεστημένο στο λειτουργικό σύστημα Linux για την εκτέλεση εφαρμογών web που βασίζονται σε PHP που υποστηρίζονται από τον διακομιστή Nginx HTTP και το σύστημα διαχείρισης βάσεων δεδομένων MySQL/MariaDB.

Αυτός ο οδηγός θα σας καθοδηγήσει σχετικά με τον τρόπο εγκατάστασης μιας στοίβας LEMP με τα Nginx, MariaDB, PHP, PHP-FPM και PhpMyAdmin σε εκδόσεις διακομιστή/επιτραπέζιου υπολογιστή OpenSuse.

Εγκατάσταση διακομιστή Nginx HTTP

Ο Nginx είναι ένας γρήγορος και αξιόπιστος διακομιστής HTTP και διακομιστής μεσολάβησης που μπορεί να χειριστεί μεγαλύτερο φόρτο αιτημάτων HTTP. Χρησιμοποιεί μια ασύγχρονη προσέγγιση με γνώμονα τα συμβάντα για τον χειρισμό αιτημάτων και η αρθρωτή αρχιτεκτονική που βασίζεται σε συμβάντα μπορεί να παρέχει πιο προβλέψιμη απόδοση κάτω από υψηλά φορτία.

Για να εγκαταστήσετε το Nginx στο OpenSuse, εκτελέστε την ακόλουθη εντολή.

$ sudo zypper install nginx

Μόλις εγκατασταθεί το Nginx, μπορείτε να ξεκινήσετε την υπηρεσία προς το παρόν, στη συνέχεια να ενεργοποιήσετε την αυτόματη εκκίνηση κατά την εκκίνηση και να επαληθεύσετε την κατάσταση του Nginx εκτελώντας τις ακόλουθες εντολές.

$ sudo systemctl start nginx
$ sudo systemctl enable nginx
$ sudo systemctl status nginx

Σε αυτό το σημείο, ο διακομιστής ιστού Nginx θα πρέπει να λειτουργεί και να λειτουργεί, μπορείτε επίσης να επαληθεύσετε την κατάσταση χρησιμοποιώντας την εντολή netstat όπως φαίνεται.

$ sudo netstat -tlpn | grep nginx

Τώρα, πρέπει να ελέγξουμε εάν η εγκατάσταση Nginx λειτουργεί καλά. Σε αντίθεση με άλλες διανομές Linux, στο openSUSE, το Nginx δεν διαθέτει τυπικό έγγραφο index.html στον ριζικό φάκελο ιστού. Πρέπει να δημιουργήσουμε ένα νέο αρχείο index.html κάτω από τον ριζικό κατάλογο ιστού \/srv/www/htdocs\ όπως φαίνεται.

$ echo "<h1>Nginx is running fine on openSUSE Leap</h1>" | sudo tee /srv/www/htdocs/index.html

Εάν έχετε εγκαταστήσει το τείχος προστασίας, πρέπει να ανοίξετε τις θύρες 80 και 443 για να επιτρέψετε την κυκλοφορία ιστού στο τείχος προστασίας.

$ sudo firewall-cmd --permanent --add-port=80/tcp
$ sudo firewall-cmd --permanent --add-port=443/tcp
$ sudo firewall-cmd --reload

Στη συνέχεια, ανοίξτε ένα πρόγραμμα περιήγησης ιστού και μεταβείτε στη διεύθυνση http://localhost και επαληθεύστε τη σελίδα Nginx.

Εγκατάσταση του διακομιστή βάσης δεδομένων MariaDB

Το MariaDB είναι ένα δωρεάν και ανοιχτού κώδικα διχάλα του συστήματος διαχείρισης σχεσιακών βάσεων δεδομένων MySQL. Αναπτύχθηκε από τους αρχικούς προγραμματιστές της MySQL και προορίζεται να παραμείνει ανοιχτού κώδικα. Το MariaDB είναι γρήγορο, επεκτάσιμο και στιβαρό, με ένα πλούσιο οικοσύστημα μηχανών αποθήκευσης, πρόσθετων και πολλών άλλων εργαλείων το καθιστούν πολύ ευέλικτο για μια μεγάλη ποικιλία περιπτώσεων χρήσης.

Για να εγκαταστήσετε το MariaDB στο OpenSuse, εκτελέστε την ακόλουθη εντολή.

$ sudo zypper install mariadb mariadb-client 

Στη συνέχεια, ξεκινήστε την υπηρεσία MariaDB προς το παρόν και, στη συνέχεια, ενεργοποιήστε την αυτόματη εκκίνηση κατά την εκκίνηση και ελέγξτε την κατάστασή της.

$ sudo systemctl start mariadb 
$ sudo systemctl enable mariadb 
$ sudo systemctl status mariadb 

Το επόμενο κρίσιμο βήμα σε αυτήν την ενότητα είναι η διασφάλιση της εγκατάστασης του διακομιστή MariaDB. Επομένως, εκτελέστε το σενάριο ασφαλείας που αποστέλλεται με το πακέτο MariaDB, όπως φαίνεται.

Σημείωση: Η εκτέλεση του σεναρίου ασφαλείας MariaDB και όλων των μερών του συνιστάται ιδιαίτερα για όλους τους διακομιστές MariaDB σε παραγωγή.

$ sudo mysql_secure_installation 

Αφού εκτελέσετε το σενάριο, διαβάστε προσεκτικά την περιγραφή σε κάθε βήμα. Θα πρέπει να ορίσετε έναν κωδικό πρόσβασης χρήστη root, να αφαιρέσετε ανώνυμους χρήστες, να απενεργοποιήσετε την απομακρυσμένη πρόσβαση root, να καταργήσετε τη δοκιμαστική βάση δεδομένων και την πρόσβαση σε αυτήν και, τέλος, να φορτώσετε ξανά τον πίνακα προνομίων.

Εγκατάσταση και διαμόρφωση PHP και PHP-FPM

Το PHP-FPM (συντομογραφία του PHP FastCGI Process Manager) είναι ένας εναλλακτικός δαίμονας FastCGI για PHP με ορισμένες πρόσθετες δυνατότητες και έχει σχεδιαστεί για να χειρίζεται υψηλά φορτία. Διατηρεί ομάδες (εργαζομένων που μπορούν να ανταποκριθούν σε αιτήματα PHP) για να το πετύχει αυτό. Είναι σημαντικό ότι είναι ταχύτερη από τις παραδοσιακές μεθόδους που βασίζονται σε CGI, όπως το SUPHP, για περιβάλλοντα PHP πολλών χρηστών.

Για να εγκαταστήσετε τα PHP και PHP-FPM μαζί με τις απαραίτητες λειτουργικές μονάδες εκτελέστε την ακόλουθη εντολή.

$ sudo zypper install php php-mysql php-fpm php-gd php-mbstring

Πριν προχωρήσουμε στην εκκίνηση της υπηρεσίας PHP-FPM, πρέπει να δημιουργήσουμε τα απαιτούμενα αρχεία διαμόρφωσης από τα προεπιλεγμένα αρχεία που παρέχονται κατά την εγκατάσταση και να διαμορφώσουμε την υπηρεσία έτοιμη για λειτουργίες.

$ sudo cp /etc/php7/fpm/php-fpm.conf.default  /etc/php7/fpm/php-fpm.conf 
$ sudo cp /etc/php7/fpm/php-fpm.d/www.conf.default /etc/php7/fpm/php-fpm.d/www.conf

Στη συνέχεια, ανοίξτε το κύριο αρχείο διαμόρφωσης php-fpm.conf για επεξεργασία.

$ sudo vim /etc/php7/fpm/php-fpm.conf 

Καταργήστε το σχόλιο της ακόλουθης γραμμής στον αριθμό γραμμής 24 όπως φαίνεται.

error_log = log/php-fpm.log

Αποθηκεύστε και κλείστε το αρχείο.

Στη συνέχεια, πρέπει να ορίσουμε τις σωστές ρυθμίσεις για τις διαμορφωμένες ομάδες στο αρχείο διαμόρφωσης www.conf.

$ sudo vim /etc/php7/fpm/php-fpm.d/www.conf

Αρχικά, ρυθμίστε τις παραμέτρους του κατόχου Unix και του κατόχου ομάδας των διεργασιών στον χρήστη και την ομάδα Nginx. Κάντε αυτό αλλάζοντας τις τιμές των παραμέτρων χρήστη και ομάδας από nobody σε nginx.

user = nginx
group = nginx

Τώρα αποθηκεύστε τις αλλαγές στο αρχείο και βγείτε από αυτό.

Επιπλέον, υπάρχει μια ακόμη σημαντική διαμόρφωση προς εκτέλεση, η οποία ασφαλίζει το PHP-FPM στο αρχείο /etc/php/cli/php.ini.

$ sudo vim /etc/php7/cli/php.ini

Αναζητήστε τη γραμμή ;cgi.fix_pathinfo=1 και αλλάξτε τη σε.

cgi.fix_pathinfo=0

Αποθηκεύστε τις αλλαγές στο αρχείο και βγείτε.

Στη συνέχεια, ξεκινήστε την υπηρεσία PHP-FPM προς το παρόν και, στη συνέχεια, ενεργοποιήστε την αυτόματη εκκίνηση κατά την εκκίνηση και ελέγξτε την κατάστασή της.

$ sudo systemctl start php-fpm
$ sudo systemctl enable php-fpm
$ sudo systemctl status php-fpm

Διαμόρφωση του Nginx ώστε να λειτουργεί με PHP-FPM

Σε αυτό το σημείο, πρέπει να διαμορφώσουμε το Nginx ώστε να λειτουργεί με το PHP-FPM στο προεπιλεγμένο αρχείο διαμόρφωσης Nginx.

$ sudo vim /etc/nginx/nginx.conf

Στη συνέχεια, αναζητήστε την παρακάτω ενότητα και προσθέστε το index.php στη λίστα των αναμενόμενων αρχείων ευρετηρίου.

location / { 
           root   /srv/www/htdocs/; 
           index  index.php index.html index.htm ; 
       }

Βρείτε επίσης την ακόλουθη ενότητα (η οποία πρέπει να σχολιαστεί) και αποσχολιάστε την. Αυτή η ενότητα χρησιμοποιείται για τη μετάδοση των σεναρίων PHP στον διακομιστή FastCGI ακρόαση στο 127.0.0.1:9000.

location ~ \.php$ { 
       root           /srv/www/htdocs/; 
       fastcgi_pass   127.0.0.1:9000; 
       fastcgi_index  index.php; 
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
       include        fastcgi_params; 
       }

Αποθηκεύστε τις αλλαγές στο αρχείο και βγείτε.

Δοκιμή Nginx και PHP-FPM

Το επόμενο βήμα είναι να ελέγξετε εάν το Nginx λειτουργεί καλά σε συνδυασμό με το PHP-FPM δημιουργώντας ένα νέο αρχείο δοκιμής PHP στον κατάλογο DocumentRoot ως απεικονίζεται.

$ echo "<?php phpinfo(); ?>" | sudo tee /srv/www/htdocs/info.php

Τώρα πρέπει να ελέγξουμε αν η διαμόρφωση Nginx είναι σωστή ως εξής, πριν προχωρήσουμε στην επανεκκίνηση της υπηρεσίας.

$ sudo nginx -t

Εάν η σύνταξη διαμόρφωσης Nginx είναι εντάξει, προχωρήστε και επανεκκινήστε τις υπηρεσίες Nginx και PHP-FPM για να τεθούν σε ισχύ οι πρόσφατες αλλαγές.

$ sudo systemctl restart nginx php-fpm

Τώρα ανοίξτε ένα πρόγραμμα περιήγησης ιστού και μεταβείτε στη διεύθυνση http://localhost/info.php για να επαληθεύσετε τη διαμόρφωση της PHP όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.

Εγκατάσταση και ρύθμιση παραμέτρων του PhpMyAdmin

Το phpMyAdmin είναι ένα δωρεάν, απλό εύχρηστο και δημοφιλές εργαλείο γραμμένο σε PHP, κατασκευασμένο για τη διαχείριση του διακομιστή MySQL μέσω του Ιστού. Μεταφέρει ένα ευρύ φάσμα λειτουργιών σε MySQL και MariaDB.

Για να εγκαταστήσετε το phpMyAdmin στο OpenSuse, εκτελέστε την ακόλουθη εντολή.

$ sudo zypper install phpMyAdmin

Μόλις ολοκληρωθεί η εγκατάσταση, δημιουργήστε ένα νέο αρχείο διαμόρφωσης vhost για πρόσβαση στο phpMyAdmin όπως φαίνεται.

$ sudo vim /etc/nginx/vhosts.d/phpmyadmin.conf

Προσθέστε αυτές τις ακόλουθες ρυθμίσεις παραμέτρων στο αρχείο.

server { 
   listen 80; 

   server_name localhost/phpMyAdmin; 

  root /srv/www/htdocs/phpMyAdmin; 

   location / { 
       try_files $uri /index.php?$args; 
   } 

   location ~ \.php$ { 
       try_files $uri =404; 
       fastcgi_pass 127.0.0.1:9000; 
       fastcgi_index index.php; 
       include fastcgi_params; 
   } 
} 

Αποθηκεύστε τις αλλαγές και κλείστε το αρχείο. Στη συνέχεια, επανεκκινήστε την υπηρεσία Nginx με την ακόλουθη εντολή.

$ sudo systemctl restart nginx

Τώρα μεταβείτε στο πρόγραμμα περιήγησής σας και πληκτρολογήστε τη διεύθυνση http://localhost/phpMyAdmin. Μια σελίδα σύνδεσης phpMyAdmin θα πρέπει να εμφανίζεται όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης. Εισαγάγετε τα διαπιστευτήρια σύνδεσης χρήστη root της βάσης δεδομένων σας και κάντε κλικ στο Μετάβαση.

Αυτό είναι όλο! Σε αυτό το σεμινάριο, σας εξηγήσαμε πώς να εγκαταστήσετε μια στοίβα LEMP με τα Nginx, MariaDB, PHP, PHP-FPM και PhpMyAdmin σε εκδόσεις OpenSuse διακομιστή/επιτραπέζιου υπολογιστή. Εάν αντιμετωπίζετε προβλήματα κατά τη ρύθμιση, υποβάλετε τις ερωτήσεις σας μέσω μιας φόρμας σχολίων παρακάτω.