Hoe Nginx 1.15, MariaDB 10 en PHP 7 te Installeren op CentOS 7

In dit artikel leggen we uit hoe u een LEMP stack (Linux, Nginx, MariaDB, PHP) samen met PHP-FPM installeert op RHEL/CentOS 7/6 en Fedora 26-29 servers met behulp van yum en dnf package manager.

Tijdens dit proces zullen we Epel, Remi, Nginx en MariaDB repositories installeren en inschakelen om de nieuwste versies van deze pakketten te kunnen installeren.

Lees ook: Apache, MySQL 8 of MariaDB 10 en PHP 7 installeren op CentOS 7

Stap 1: EPEL en Remi Repository installeren

EPEL (Extra Packages for Enterprise Linux) is een door de gemeenschap gebaseerde repository die aanvullende softwarepakketten biedt voor RHEL-gebaseerde Linux distributies.

Remi is een repository waar u de nieuwste versies van de PHP stack (volledig uitgerust) kunt vinden voor installatie in de Fedora en Enterprise Linux distributies.

Op 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

Op 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

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

Stap 2: Nginx- en MariaDB-repositories installeren

De Nginx-repository is alleen nodig in RHEL en CentOS distributies. Maak een bestand genaamd /etc/yum.repos.d/nginx.repo aan en voeg de volgende regels toe.

Voor RHEL 7/6:

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

Voor CentOS 7/6:

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

Om de MariaDB-repository in te schakelen, maak een bestand met de naam /etc/yum.repos.d/mariadb.repo aan met de volgende inhoud:

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

Stap 4: Nginx en MariaDB installeren

Nginx (Engine X) is een open source, robuuste, lichte en snelle webserver, omgekeerde proxyserver en ook mailproxyserver voor HTTP, SMTP, POP3 en IMAP-protocollen. Voor meer details, bezoek http://wiki.nginx.org/Overview.

MariaDB is een afsplitsing van de bekende MySQL, een van ’s werelds meest populaire relationele databasebeheersystemen (RDBMS). Het wordt volledig ontwikkeld door de gemeenschap en is daarom bedoeld om FOSS te blijven en compatibel te blijven met de GPL.

Om Nginx en MariaDB te installeren, voer je de volgende commando’s uit.

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

Stap 3: PHP installeren met behulp van de Remi-repository

PHP (Hypertext Preprocessor) is een gratis en open-source server-side scripttaal die het meest geschikt is voor webontwikkeling. Het kan worden gebruikt om dynamische webpagina’s te maken voor een website en wordt het meest gebruikt op *nix-servers. Een van de voordelen van PHP is dat het gemakkelijk uitbreidbaar is door het gebruik van een breed scala aan modules.

Om PHP te installeren, moet je eerst de Remi-repository inschakelen door yum-utils te installeren, een verzameling handige programma’s voor het beheren van yum-repositories en pakketten.

# yum install yum-utils

Nadat het is geïnstalleerd, kun je de opdracht yum-config-manager gebruiken die wordt geleverd door yum-utils om de Remi-repository in te schakelen als de standaardrepository voor het installeren van verschillende PHP-versies, zoals hieronder wordt weergegeven.

Om bijvoorbeeld de versie PHP 7.x te installeren, gebruik je de volgende opdracht.

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

Vervolgens gaan we al deze volgende PHP-modules installeren.

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

Stap 6: Stoppen en uitschakelen van Apache-service

Standaard luisteren Apache en Nginx op dezelfde poort (TCP 80). Daarom moet je, als Apache is geïnstalleerd op je server, deze stoppen en uitschakelen / maskeren (een krachtigere versie van uitschakelen die de service linkt naar /dev/null) om Nginx te kunnen gebruiken, of je kunt deze verwijderen als je deze niet meer van plan bent te gebruiken.

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

Stap 7: Nginx, MariaDB en PHP-FPM starten/stoppen

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

Stap 8: Nginx en PHP-FPM configureren

Laten we nu een directorystructuur maken voor uw website (een virtuele host, of serverblok zoals het genoemd wordt in Nginx) onder /srv/www/. In dit voorbeeld zullen we www.tecmint.com gebruiken, maar voel u vrij om een andere domeinnaam en hoofddirectory te kiezen als u dat wilt.

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

Stap 9: Nginx virtuele hostdirectories configureren

Zoals u weet, is het vermogen om meerdere sites vanaf dezelfde machine te draaien een van de kenmerkende eigenschappen van grote webservers. Laten we nu doorgaan met het maken van de directories om onze serverblokken op te slaan (bekend als virtuele hosts in Apache) onder /etc/nginx.

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

De volgende regel code, die moet worden ingevoegd voor het afsluiten van het http-blok in /etc/nginx/nginx.conf, zorgt ervoor dat configuratiebestanden in de map /etc/nginx/sites-enabled in aanmerking worden genomen wanneer Nginx wordt uitgevoerd:

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

Om het serverblok voor tecmint.com te maken, voegt u de volgende regels code toe aan /etc/nginx/sites-available/tecmint (dit bestand wordt aangemaakt wanneer u het volledige pad invoert om uw voorkeursteksteditor te starten). Dit is een basisconfiguratiebestand voor een virtuele 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; 
	} 
} 

Het proces van het “activeren” van een virtuele host bestaat uit het maken van een symbolische link van de definitie van de virtuele host tecmint naar /etc/nginx/sites-enabled.

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

Om daadwerkelijk de wijzigingen toe te passen die we hebben gedaan, moeten we nu Nginx herstarten. Het is soms handig om de configuratiebestanden te controleren op syntaxisfouten voordat u dit doet:

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

Om toegang te krijgen tot je nieuw aangemaakte virtuele host, moet je de volgende regel toevoegen aan /etc/hosts als een basismanier van domeinnaamresolutie.

192.168.0.18	www.tecmint.com tecmint.com 

Stap 10: Testen van Nginx, MySQL, PHP en PHP-FPM

Laten we bij de klassieke manier van het testen van PHP blijven. Maak een bestand genaamd test.php aan onder /srv/www/tecmint/public_html/ en voeg de volgende regels code toe.

De functie phpinfo() toont veel informatie over de huidige PHP-installatie:

<?php 
	phpinfo(); 
?> 

Wijs nu je webbrowser naar http://tecmint/test.php en controleer de aanwezigheid van de geïnstalleerde modules en aanvullende software:

Gefeliciteerd! Je hebt nu een werkende installatie van een LEMP-stack. Als er iets niet zoals verwacht is gegaan, neem dan gerust contact met ons op via het onderstaande formulier. Vragen en suggesties zijn ook welkom.

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