Zoeken op website

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


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

Tijdens het proces zullen we Epel, Remi, Nginx en MariaDB repository's installeren en inschakelen om dit te kunnen doen installeer de nieuwste versies van deze pakketten.

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

Stap 1: EPEL en Remi Repository installeren

EPEL (Extra pakketten voor Enterprise Linux) is een op de gemeenschap gebaseerde opslagplaats die add-on-softwarepakketten biedt voor op RHEL gebaseerde Linux-distributies.

Remi is een opslagplaats waar je 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-repository's installeren

De Nginx-repository is alleen nodig in RHEL- en CentOS-distributies. Maak een bestand met de naam /etc/yum.repos.d/nginx.repo en voeg de volgende regels eraan 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, maakt u een bestand met de naam /etc/yum.repos.d/mariadb.repo 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: Ngnix en MariaDB installeren

Nginx (Engine X) is een open source, robuuste, lichtgewicht en krachtige webserver, een reverse proxy-server en ook een mail-proxyserver voor HTTP-, SMTP-, POP3- en IMAP-protocollen. Ga voor meer informatie naar http://wiki.nginx.org/Overview.

MariaDB is een afsplitsing van het bekende MySQL, een van 's werelds populairste Relationele Database Management Systemen (RDBMS). Het is volledig ontwikkeld door de gemeenschap en is als zodanig bedoeld om FOSS en compatibel met de GPL te blijven.

Om Ngnix en MariaDB te installeren, voert u de volgende opdrachten 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 Remi Repository

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

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

yum install yum-utils

Eenmaal geïnstalleerd, kunt u yum-config-manager van yum-utils gebruiken om de Remi-repository in te schakelen als de standaardrepository voor het installeren van verschillende PHP-versies, zoals weergegeven.

Om bijvoorbeeld de PHP 7.x versie te installeren, gebruikt u 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: Apache-service stoppen en uitschakelen

Standaard luisteren Apache en Nginx naar dezelfde poort (TCP 80). Om die reden moet u, als Apache op uw server is geïnstalleerd, het stoppen en uitschakelen/maskeren (een sterkere versie van uitschakelen die de service koppelt aan /dev/null) om Nginx te kunnen gebruiken , of u kunt het verwijderen als u het niet meer wilt 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 voor uw website maken (een virtuele host, of serverblok zoals dit in Nginx wordt genoemd) onder /srv/www/. In dit voorbeeld gebruiken we linux-console.net, maar u kunt desgewenst een ander domein en een andere hoofdmap kiezen.

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

Stap 9: Nginx virtuele hostmappen configureren

Zoals u weet, is de mogelijkheid om meerdere sites vanaf dezelfde machine te runnen een van de onderscheidende kenmerken van grote webservers. Laten we nu verder gaan met het maken van de mappen om onze serverblokken (in Apache bekend als virtuele hosts) op te slaan onder /etc/nginx.

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

De volgende coderegel, die moet worden ingevoegd voordat het http-blok in /etc/nginx/nginx.conf wordt gesloten, zorgt ervoor dat configuratiebestanden binnen de /etc/nginx/sites-enabled map zal in aanmerking worden genomen wanneer Nginx actief is:

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

Om het serverblok voor linux-console.net te maken, voegt u de volgende coderegels toe aan /etc/nginx/sites-available/tecmint (dit bestand wordt aangemaakt wanneer u het volledige pad om de gewenste teksteditor te starten). Dit is een standaard configuratiebestand 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 creëren van een symbolische link van de definitie van de tecmint virtuele host naar /etc/nginx/sites-enabled.

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

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

nginx -t 
systemctl restart nginx 
systemctl status nginx 

Om toegang te krijgen tot uw nieuw aangemaakte virtuele host, moet u de volgende regel toevoegen aan /etc/hosts als basismethode voor het omzetten van domeinnamen.

192.168.0.18	linux-console.net linux-console.net 

Stap 10: Nginx, MySQL, PHP en PHP-FPM testen

Laten we vasthouden aan de klassieke manier om PHP te testen. Maak een bestand met de naam test.php onder /srv/www/tecmint/public_html/ en voeg de volgende regels code eraan toe.

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

<?php 
	phpinfo(); 
?> 

Ga nu met uw 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 stapel. Mocht er iets niet naar wens zijn verlopen, neem dan gerust contact met ons op via onderstaand formulier. Vragen en suggesties zijn ook welkom.