Πώς να εγκαταστήσετε το Nginx 1.15, MariaDB 10 και PHP 7 στο CentOS 7


Σε αυτό το άρθρο θα εξηγήσουμε πώς να εγκαταστήσετε μια στοίβα LEMP (Linux, Nginx, MariaDB, PHP) μαζί με PHP-FPM σε διακομιστές RHEL/CentOS 7/6 και Fedora 26-29 που χρησιμοποιούν πακέτο yum και dnf διευθυντής.

Κατά τη διάρκεια της διαδικασίας θα εγκαταστήσουμε και θα ενεργοποιήσουμε τα αποθετήρια Epel, Remi, Nginx και MariaDB για να μπορέσουμε να εγκαταστήστε τις πιο πρόσφατες εκδόσεις αυτών των πακέτων.

Διαβάστε επίσης: Εγκαταστήστε το Apache, MySQL 8 ή MariaDB 10 και PHP 7 στο CentOS 7

Βήμα 1: Εγκατάσταση του EPEL και του Repository

Το EPEL (Extra Packages for Enterprise Linux) είναι ένα αποθετήριο που βασίζεται στην κοινότητα που προσφέρει πρόσθετα πακέτα λογισμικού για διανομές Linux που βασίζονται σε RHEL.

Το Remi είναι ένα αποθετήριο όπου μπορείτε να βρείτε τις πιο πρόσφατες εκδόσεις της στοίβας PHP (πλήρης δυνατότητα) για εγκατάσταση στις διανομές Fedora και Enterprise Linux.

Στο RHEL/CentOS 7

yum update && yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

------ For RHEL 7 Only ------
subscription-manager repos --enable=rhel-7-server-optional-rpms

Στο RHEL/CentOS 6

yum update && yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

------ For RHEL 6 Only ------
subscription-manager repos --enable=rhel-6-server-optional-rpms

Στο Fedora 24-29

rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-29.rpm  [On Fedora 29]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-28.rpm  [On Fedora 28]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-27.rpm  [On Fedora 27]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-26.rpm  [On Fedora 26]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-25.rpm  [On Fedora 25]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-24.rpm  [On Fedora 24]

Βήμα 2: Εγκατάσταση των αποθετηρίων Nginx και MariaDB

Το αποθετήριο Nginx χρειάζεται μόνο σε διανομές RHEL και CentOS. Δημιουργήστε ένα αρχείο με το όνομα /etc/yum.repos.d/nginx.repo και προσθέστε τις ακόλουθες γραμμές σε αυτό.

Για το RHEL 7/6:

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 

Για το CentOS 7/6:

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 

Για να ενεργοποιήσετε το αποθετήριο MariaDB, δημιουργήστε ένα αρχείο με το όνομα /etc/yum.repos.d/mariadb.repo με τα ακόλουθα περιεχόμενα:

[mariadb] 
name = MariaDB 
baseurl = http://yum.mariadb.org/10.1/centos7-amd64 
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB 
gpgcheck=1 

Βήμα 4: Εγκατάσταση των Ngnix και MariaDB

Ο Nginx (Engine X) είναι διακομιστής Web ανοιχτού κώδικα, στιβαρός, ελαφρύς και υψηλής απόδοσης, διακομιστής αντίστροφου διακομιστή μεσολάβησης και επίσης διακομιστής μεσολάβησης αλληλογραφίας για πρωτόκολλα HTTP, SMTP, POP3 και IMAP. Για περισσότερες λεπτομέρειες, επισκεφθείτε τη διεύθυνση http://wiki.nginx.org/Overview.

Το MariaDB είναι μια διχάλα της γνωστής MySQL, ενός από τα πιο δημοφιλή Συστήματα Διαχείρισης Βάσεων Δεδομένων Σχέσεων (RDBMS) στον κόσμο. Αναπτύχθηκε εξ ολοκλήρου από την κοινότητα και ως εκ τούτου προορίζεται να παραμείνει FOSS και συμβατό με την GPL.

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


----------- Installing on RHEL/CentOS 7/6 ----------- 
yum --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

----------- Installing on Fedora ----------- 
dnf --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

Βήμα 3: Εγκατάσταση της PHP χρησιμοποιώντας το Remi Repository

Η PHP (Προεπεξεργαστής υπερκειμένου) είναι μια δωρεάν και ανοιχτού κώδικα γλώσσα δέσμης ενεργειών από την πλευρά του διακομιστή που είναι η πλέον κατάλληλη για ανάπτυξη ιστού. Μπορεί να χρησιμοποιηθεί για την παραγωγή δυναμικών ιστοσελίδων για έναν ιστότοπο και βρίσκεται πιο συχνά σε διακομιστές *nix. Ένα από τα πλεονεκτήματα της PHP είναι ότι είναι εύκολα επεκτάσιμη μέσω της χρήσης μιας μεγάλης ποικιλίας λειτουργικών μονάδων.

Για να εγκαταστήσετε την PHP, πρέπει πρώτα να ενεργοποιήσετε το αποθετήριο Remi εγκαθιστώντας το yum-utils, μια συλλογή χρήσιμων προγραμμάτων για τη διαχείριση αποθετηρίων και πακέτων yum.

yum install yum-utils

Μόλις εγκατασταθεί, μπορείτε να χρησιμοποιήσετε το yum-config-manager που παρέχεται από το yum-utils για να ενεργοποιήσετε το αποθετήριο Remi ως το προεπιλεγμένο αποθετήριο για την εγκατάσταση διαφορετικών εκδόσεων PHP όπως φαίνεται.

Για παράδειγμα, για να εγκαταστήσετε την έκδοση PHP 7.x, χρησιμοποιήστε την ακόλουθη εντολή.

------------- On CentOS & RHEL ------------- 
yum-config-manager --enable remi-php70 && yum install php       [Install PHP 7.0]
yum-config-manager --enable remi-php71 && yum install php       [Install PHP 7.1]
yum-config-manager --enable remi-php72 && yum install php       [Install PHP 7.2]
yum-config-manager --enable remi-php73 && yum install php       [Install PHP 7.3]

------------- On Fedora ------------- 
dnf --enablerepo=remi install php70      [Install PHP 7.0]
dnf --enablerepo=remi install php71      [Install PHP 7.1]
dnf --enablerepo=remi install php72      [Install PHP 7.2]
dnf --enablerepo=remi install php73      [Install PHP 7.3]

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

------ On RHEL/CentOS 7/6 ------
yum --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

------ On Fedora ------
dnf --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

Βήμα 6: Διακοπή και απενεργοποίηση της υπηρεσίας Apache

Από προεπιλογή, το Apache και το Nginx ακούν στην ίδια θύρα (TCP 80). Για αυτόν τον λόγο, εάν το Apache είναι εγκατεστημένο στον διακομιστή σας, πρέπει να το σταματήσετε και να το απενεργοποιήσετε/να το καλύψετε (μια ισχυρότερη έκδοση του disable που συνδέει την υπηρεσία με το /dev/null) για να χρησιμοποιήσετε το Nginx , ή μπορείτε να το αφαιρέσετε εάν δεν σκοπεύετε να το χρησιμοποιήσετε πια.

systemctl stop httpd 
systemctl disable httpd 
or 
systemctl mask httpd 

Βήμα 7: Εκκίνηση/Διακοπή Nginx, MariaDB και PHP-FPM

----------- Enable Nginx, MariaDB and PHP-FPM on Boot ----------- 
systemctl enable nginx 
systemctl enable mariadb 
systemctl enable php-fpm 
 
----------- Start Nginx, MariaDB and PHP-FPM ----------- 
systemctl start nginx 
systemctl start mariadb 
systemctl start php-fpm 

Βήμα 8: Διαμόρφωση Nginx και PHP-FPM

Ας δημιουργήσουμε τώρα μια δομή καταλόγου για τον ιστότοπό σας (ένας εικονικός κεντρικός υπολογιστής ή μπλοκ διακομιστή όπως ονομάζεται στο Nginx) στο /srv/www/. Σε αυτό το παράδειγμα θα χρησιμοποιήσουμε το linux-console.net, αλλά μη διστάσετε να επιλέξετε άλλο τομέα και κύριο κατάλογο εάν θέλετε.

mkdir -p /srv/www/tecmint/public_html 
mkdir /srv/www/tecmint/logs 
chown -R nginx:nginx /srv/www/tecmint  

Βήμα 9: Διαμόρφωση καταλόγων εικονικού κεντρικού υπολογιστή Nginx

Όπως γνωρίζετε, η δυνατότητα εκτέλεσης πολλών τοποθεσιών από το ίδιο μηχάνημα είναι ένα από τα διακριτικά χαρακτηριστικά των μεγάλων διακομιστών Ιστού. Ας προχωρήσουμε τώρα στη δημιουργία των καταλόγων για την αποθήκευση των μπλοκ διακομιστών μας (γνωστοί ως εικονικοί κεντρικοί υπολογιστές στο Apache) στο /etc/nginx.

mkdir /etc/nginx/sites-available 
mkdir /etc/nginx/sites-enabled 

Η ακόλουθη γραμμή κώδικα, η οποία πρέπει να εισαχθεί πριν κλείσει το μπλοκ http στο /etc/nginx/nginx.conf, θα διασφαλίσει ότι τα αρχεία διαμόρφωσης εντός του /etc/nginx/sites-enabled Ο κατάλογος θα ληφθεί υπόψη όταν εκτελείται το Nginx:

## Load virtual host conf files. ## 
include /etc/nginx/sites-enabled/*; 

Για να δημιουργήσετε το μπλοκ διακομιστή για το linux-console.net, προσθέστε τις ακόλουθες γραμμές κώδικα στο /etc/nginx/sites-available/tecmint (αυτό το αρχείο θα δημιουργηθεί όταν εισάγετε την πλήρη διαδρομή για να ξεκινήσετε το πρόγραμμα επεξεργασίας κειμένου που προτιμάτε). Αυτό είναι ένα βασικό αρχείο διαμόρφωσης εικονικού κεντρικού υπολογιστή.

server { 
	listen 80 default; 
	server_name tecmint; 
	access_log /srv/www/tecmint/logs/access.log; 
	error_log /srv/www/tecmint/logs/error.log; 
	root /srv/www/tecmint/public_html; 
	location ~* \.php$ { 
	fastcgi_index   index.php; 
	fastcgi_pass    127.0.0.1:9000; 
	include         fastcgi_params; 
	fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name; 
	fastcgi_param   SCRIPT_NAME        $fastcgi_script_name; 
	} 
} 

Η διαδικασία "ενεργοποίησης" ενός εικονικού κεντρικού υπολογιστή αποτελείται από τη δημιουργία ενός συμβολικού συνδέσμου από τον ορισμό του εικονικού κεντρικού υπολογιστή tecmint στον /etc/nginx/sites-enabled<.

ln -s /etc/nginx/sites-available/tecmint /etc/nginx/sites-enabled/tecmint 

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

nginx -t 
systemctl restart nginx 
systemctl status nginx 

Για να αποκτήσετε πρόσβαση στον εικονικό κεντρικό υπολογιστή που μόλις δημιουργήσατε, πρέπει να προσθέσετε την ακόλουθη γραμμή στο /etc/hosts ως βασική μέθοδο ανάλυσης ονόματος τομέα.

192.168.0.18	linux-console.net linux-console.net 

Βήμα 10: Δοκιμή Nginx, MySQL, PHP και PHP-FPM

Ας μείνουμε στον κλασικό τρόπο δοκιμής της PHP. Δημιουργήστε ένα αρχείο με το όνομα test.php στο /srv/www/tecmint/public_html/ και προσθέστε τις ακόλουθες γραμμές κώδικα σε αυτό.

Η συνάρτηση phpinfo() εμφανίζει πολλές πληροφορίες σχετικά με την τρέχουσα εγκατάσταση της PHP:

<?php 
	phpinfo(); 
?> 

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

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