Wie man Nginx 1.15, MariaDB 10 und PHP 7 auf CentOS 7 installiert

In diesem Artikel erklären wir, wie Sie eine LEMP-Stack (Linux, Nginx, MariaDB, PHP) mit PHP-FPM auf RHEL/CentOS 7/6 und Fedora 26-29-Servern mit dem Paketmanager yum und dnf installieren können.

Während des Vorganges installieren und aktivieren wir die Repositories Epel, Remi, Nginx und MariaDB, um die neuesten Versionen dieser Pakete installieren zu können.

Lesen Sie auch: Installieren Sie Apache, MySQL 8 oder MariaDB 10 und PHP 7 auf CentOS 7

Schritt 1: Installieren des EPEL und Remi-Repositorys

EPEL (Extra Packages for Enterprise Linux) ist ein communitybasiertes Repository, das Zusatzsoftwarepakete für RHEL-basierte Linux-Distributionen anbietet.

Remi ist ein Repository, in dem Sie die neuesten Versionen des PHP-Stacks (vollständig funktionierend) für die Installation in den Fedora und Enterprise Linux-Distributionen finden können.

Auf 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

Auf 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

Auf 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]

Schritt 2: Installation der Nginx- und MariaDB-Repositories

Das Nginx-Repository wird nur in den RHEL- und CentOS-Distributionen benötigt. Erstellen Sie eine Datei mit dem Namen /etc/yum.repos.d/nginx.repo und fügen Sie die folgenden Zeilen hinzu.

Für RHEL 7/6:

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

Für CentOS 7/6:

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

Um das MariaDB-Repository zu aktivieren, erstellen Sie eine Datei mit dem Namen /etc/yum.repos.d/mariadb.repo mit dem folgenden Inhalt:

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

Schritt 4: Installation von Nginx und MariaDB

Nginx (Engine X) ist ein Open-Source-, robustes, leichtgewichtiges und leistungsstarkes Webserver-, Reverse-Proxy-Server- und auch Mail-Proxy-Server für die Protokolle HTTP, SMTP, POP3 und IMAP. Weitere Details finden Sie unter http://wiki.nginx.org/Overview.

MariaDB ist ein Fork des bekannten MySQL, einem der weltweit beliebtesten relationalen Datenbankmanagementsysteme (RDBMS). Es wird vollständig von der Community entwickelt und soll daher FOSS bleiben und mit der GPL kompatibel sein.

Um Nginx und MariaDB zu installieren, führen Sie die folgenden Befehle aus.

----------- 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 

Schritt 3: Installation von PHP mit dem Remi-Repository

PHP (Hypertext Preprocessor) ist eine freie und quelloffene Serverseitenschriptsprache, die am besten geeignet ist für die Webentwicklung. Es kann verwendet werden, um dynamische Webseiten für eine Webseite zu generieren und es ist am häufigsten auf *nix-Servern zu finden. Eine der Vorteile von PHP ist, dass es durch die Verwendung einer breiten Varietät von Modulen leicht erweiterbar ist.

Um PHP zu installieren, müssen Sie zunächst den Remi-Repository aktivieren, indem Sie yum-utils installieren, eine Sammlung von nützlichen Programmen für die Verwaltung von yum-Repositories und -Paketen.

# yum install yum-utils

Nach der Installation können Sie yum-config-manager, das von yum-utils bereitgestellt wird, verwenden, um das Remi-Repository als Standard-Repository zu aktivieren, um verschiedene PHP-Versionen wie gezeigt zu installieren.

Zum Beispiel verwenden Sie den folgenden Befehl, um die Version PHP 7.x zu installieren.

------------- 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]

Im nächsten Schritt installieren wir alle folgenden PHP-Module.

------ 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

Schritt 6: Anhalten und Deaktivieren des Apache-Diensts

Standardmäßig hört Apache und Nginx auf dieselbe Port (TCP 80). Daher müssen Sie Apache auf Ihrem Server anhalten und deaktivieren / verschleiern (eine stärkere Version von deaktivieren, die den Dienst auf /dev/null verlinkt), um Nginx verwenden zu können, oder Sie können es entfernen, wenn Sie nicht mehr mit ihm arbeiten planen.

# systemctl stop httpd 
# systemctl disable httpd 
or 
# systemctl mask httpd 

Schritt 7: Starten/Stoppen von Nginx, MariaDB und 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 

Schritt 8: Konfigurieren von Nginx und PHP-FPM

Nun werden wir eine Verzeichnisstruktur für Ihre Webseite (ein virtueller Host oder Server Block, wie er in Nginx bezeichnet wird) unter /srv/www/ erstellten. In diesem Beispiel werden wir www.tecmint.com verwenden, aber freie Wahl haben Sie, einen anderen Domain und das Hauptverzeichnis auszuwählen, falls Sie das wollen.

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

Schritt 9: Konfigurieren von Nginx-Virtual-Host-Verzeichnissen

Wie Sie wissen, ist die Fähigkeit, mehrere Seiten von derselben Maschine aus zu betreiben, eine der charakteristischen Merkmale größerer Web-Server. Jetzt werden wir die Verzeichnisse erstellen, um unsere Server Blöcke (bekannt als virtuelle Hosts in Apache) unter /etc/nginx zu speichern.

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

Die folgende Zeile des Codes, die vor dem Schließen des http-Blocks in /etc/nginx/nginx.conf eingefügt werden muss, stellt sicher, dass Konfigurationsdateien innerhalb des /etc/nginx/sites-enabled Verzeichnisses beachtet werden, wenn Nginx ausgeführt wird:

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

Um den Server Block für tecmint.com zu erstellen, fügen Sie die folgenden Zeilen des Codes zu /etc/nginx/sites-available/tecmint hinzu (diese Datei wird erstellt, wenn Sie den vollständigen Pfad zum Starten Ihres bevorzugten Texteditoren eingeben). Dies ist eine grundlegende Datei mit den Einstellungen für einen virtuellen Host.

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; 
	} 
} 

Der Prozess des „Aktivierens“ eines virtuellen Hosts besteht darin, ein symbolisches Verbindung von der Definition des tecmint virtuellen Hosts zu /etc/nginx/sites-enabled zu erstellen.

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

Um die Änderungen, die wir durchgeführt haben, tatsächlich anzuwenden, müssen wir Nginx nun neu starten. Es ist manchmal nützlich, die Konfigurationsdateien auf Syntaxfehler zu prüfen, bevor Sie dies tun.

# nginx -t 
# systemctl restart nginx 
# systemctl status nginx 
Restart Nginx and Verify Status

Um auf Ihren neu erstellten virtuellen Host zuzugreifen, müssen Sie die folgende Zeile zu /etc/hosts hinzufügen, um die Domainnamenauflösung auf eine grundlegende Art und Weise durchzuführen.

192.168.0.18	www.tecmint.com tecmint.com 

Schritt 10: Überprüfen von Nginx, MySQL, PHP und PHP-FPM

Lassen Sie uns mit dem klassischen Verfahren testen, um PHP zu überprüfen. Erstellen Sie eine Datei namens test.php im Verzeichnis /srv/www/tecmint/public_html/ und fügen Sie die folgenden Zeilen Code hinzu.

Die Funktion phpinfo() zeigt eine Menge Informationen über die aktuelle PHP-Installation an:

<?php 
	phpinfo(); 
?> 

Richten Sie nun Ihren Web-Browser auf http://tecmint/test.php ein und prüfen Sie die Präsenz installierter Module und zusätzlicher Software:

Glückwunsch! Sie haben nun eine funktionierende Installation eines LEMP-Stacks. Wenn etwas anderslautend ablief, können Sie sich mit dem untenstehenden Formular erreichen. Fragen und Vorschläge sind ebenfalls willkommen.

Source:
https://www.tecmint.com/install-nginx-mariadb-php-rhel-centos-fedora/