Wéi installéiere ech Nginx 1.15, MariaDB 10 a PHP 7 op CentOS 7


An dësem Artikel wäerte mir erkläre wéi een e LEMP-Stack (Linux, Nginx, MariaDB, PHP) zesumme mat PHP-FPM op RHEL/CentOS 7/6 a Fedora 26-29 Server installéiert mat dnf Package Manager.

Wärend dem Prozess wäerte mir Epel, Remi, Nginx a MariaDB Repositories installéieren an aktivéieren fir déi lescht Versioune vun dëse Packagen z'installéieren.

Schrëtt 1: EPEL a Remi Repository installéieren

EPEL (Extra Packages for Enterprise Linux) ass e Gemeinschaftsbaséiert Repository bitt Add-on Software Packagen fir RHEL-baséiert Linux Verdeelungen.

Remi ass e Repository wou Dir déi lescht Versioune vum PHP Stack (voll Feature) fir Installatioun an de Fedora an Enterprise Linux Verdeelungen fannt.

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

Schrëtt 2: Nginx a MariaDB Repositories installéieren

Den Nginx Repository ass nëmme gebraucht an RHEL an CentOS Verdeelungen. Erstellt eng Datei mam Numm /etc/yum.repos.d/nginx.repo a füügt déi folgend Zeilen derbäi.

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

Fir de MariaDB Repository z'aktivéieren, erstellt eng Datei mam Numm /etc/yum.repos.d/mariadb.repo mat den folgenden Inhalter:

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

Schrëtt 4: Ngnix a MariaDB installéieren

Nginx (Engine X) ass Open Source, robust, liicht an héich performant Webserver, Reverse Proxy Server an och Mail Proxy Server fir HTTP, SMTP, POP3 an IMAP Protokoller. Fir weider Detailer, besicht http://wiki.nginx.org/Overview.

MariaDB ass eng Gabel vum bekannte MySQL, ee vun de populäersten Relational Database Management System (RDBMS) vun der Welt. Et ass ganz vun der Gemeinschaft entwéckelt an als solch ass et geduecht fir FOSS ze bleiwen a kompatibel mat der GPL.

Fir Ngnix a MariaDB z'installéieren, lafen déi folgend Kommandoen.

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

Schrëtt 3: PHP installéieren mat Remi Repository

PHP (Hypertext Preprocessor) ass eng gratis an Open Source Server-Säit Scripting Sprooch déi am Beschten fir Webentwécklung passt. Et kann benotzt ginn fir dynamesch Websäite fir eng Websäit ze produzéieren a gëtt am meeschten op *nix Serveren fonnt. Ee vun de Virdeeler vu PHP ass datt et liicht erweiterbar ass duerch d'Benotzung vun enger grousser Villfalt vu Moduler.

Fir PHP z'installéieren, musst Dir als éischt de Remi Repository aktivéieren andeems Dir yum-utils installéiert, eng Sammlung vun nëtzlechen Programmer fir d'Gestioun vun Yum Repositories a Packagen.

# yum install yum-utils

Eemol installéiert, kënnt Dir yum-config-manager vun yum-utils benotzt fir Remi Repository als Standard Repository z'aktivéieren fir verschidde PHP Versiounen z'installéieren wéi gewisen.

Zum Beispill, fir PHP 7.x Versioun z'installéieren, benotzt de folgende Kommando.

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

Als nächst wäerte mir all dës folgend PHP Moduler installéieren.

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

Schrëtt 6: Apache Service stoppen an auszeschalten

Par défaut lauschteren Apache an Nginx am selwechten Hafen (TCP 80). Aus deem Grond, wann Apache op Ärem Server installéiert ass, musst Dir et stoppen an deaktivéieren/maskéieren (eng méi staark Versioun vum Disable déi de Service op /dev/null verbënnt) fir Nginx ze benotzen, oder Dir kënnt et ewechhuelen wann Dir plangt et net méi ze benotzen.

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

Schrëtt 7: Start/Stoppen Nginx, MariaDB a 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 

Schrëtt 8: Nginx a PHP-FPM konfiguréieren

Loosst eis elo eng Verzeechnesstruktur fir Är Websäit erstellen (e virtuelle Host, oder Serverblock wéi et am Nginx genannt gëtt) ënner /srv/www/. An dësem Beispill wäerte mir linux-console.net benotzen, awer fillt sech fräi fir en anert Domain an Haaptverzeechnes ze wielen wann Dir wëllt.

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

Schrëtt 9: Nginx Virtual Host Directories konfiguréieren

Wéi Dir wësst, ass d'Fäegkeet fir verschidde Site vun der selwechter Maschinn ze lafen ass eng vun den ënnerscheedlechen Features vu grousse Webserver. Loosst eis elo weidergoen fir d'Verzeichnisser ze kreéieren fir eis Serverblocken (bekannt als virtuelle Hosten an Apache) ënner /etc/nginx ze späicheren.

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

Déi folgend Zeil vum Code, dee muss agefouert ginn ier Dir den http Block an /etc/nginx/nginx.conf zoumaacht, suergt dofir datt d'Konfiguratiounsdateien am /etc/nginx/sites-enabled Verzeichnis berécksiichtegt ginn wann Nginx leeft :

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

Fir de Serverblock fir linux-console.net ze kreéieren, füügt déi folgend Zeilen vum Code un /etc/nginx/sites-available/tecmint (dës Datei gëtt erstallt wann Dir de ganze Wee gitt fir Äre Liiblings unzefänken Texteditor). Dëst ass eng Basis virtuell Host Configuratiounsdatei.

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

De Prozess fir e virtuelle Host ze aktivéieren besteet aus der Schafung vun engem symbolesche Link vun der Definitioun vum tecmint virtuelle Host op /etc/nginx/sites-enabled.

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

Fir d'Ännerungen déi mir gemaach hunn tatsächlech ëmzesetzen, musse mir elo Nginx nei starten. Et ass heiansdo nëtzlech d'Konfiguratiounsdateien fir Syntaxfehler ze kontrolléieren ier Dir dëst maacht:

# nginx -t 
# systemctl restart nginx 
# systemctl status nginx 

Fir Zougang zu Ärem nei erstallte virtuelle Host ze kréien, musst Dir déi folgend Zeil op /etc/hosts als Basismethod fir Domain Numm Resolutioun addéieren.

192.168.0.18	linux-console.net linux-console.net 

Schrëtt 10: Testen Nginx, MySQL, PHP a PHP-FPM

Loosst eis mat de klassesche Wee fir PHP testen. Erstellt eng Datei mam Numm test.php ënner /srv/www/tecmint/public_html/ a füügt déi folgend Zeilen vum Code derbäi.

D'Funktioun phpinfo() weist vill Informatioun iwwer déi aktuell PHP-Installatioun:

<?php 
	phpinfo(); 
?> 

Gitt elo Äre Webbrowser op http://tecmint/test.php a kontrolléiert d'Präsenz vun den installéierten Moduler an zousätzlech Software:

Gratulatioun! Dir hutt elo eng Aarbechtsinstallatioun vun engem LEMP Stack. Wann eppes net wéi erwaart gaang ass, da kontaktéiert eis gratis mam Formulaire hei ënnen. Froen a Virschléi sinn och wëllkomm.