Slik installerer du Nginx 1.15, MariaDB 10 og PHP 7 på CentOS 7


I denne artikkelen vil vi forklare hvordan du installerer en LEMP-stack (Linux, Nginx, MariaDB, PHP) sammen med PHP-FPM på RHEL/CentOS 7/6 og Fedora 26-29-servere ved å bruke dnf-pakkebehandling.

I løpet av prosessen vil vi installere og aktivere Epel, Remi, Nginx og MariaDB repositories for å kunne installere de nyeste versjonene av disse pakkene.

Trinn 1: Installere EPEL og Remi Repository

EPEL (Extra Packages for Enterprise Linux) er et fellesskapsbasert depot som tilbyr tilleggsprogramvarepakker for RHEL-baserte Linux-distribusjoner.

Remi er et depot hvor du kan finne de nyeste versjonene av PHP-stakken (full funksjoner) for installasjon i Fedora- og Enterprise Linux-distribusjonene.

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

Trinn 2: Installere Nginx og MariaDB Repositories

Nginx-depotet er bare nødvendig i RHEL- og CentOS-distribusjoner. Lag en fil kalt /etc/yum.repos.d/nginx.repo og legg til følgende linjer.

[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 

For å aktivere MariaDB-depotet, lag en fil som heter /etc/yum.repos.d/mariadb.repo med følgende innhold:

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

Trinn 4: Installere Ngnix og MariaDB

Nginx (Engine X) er åpen kildekode, robust, lett og høy ytelse webserver, omvendt proxy-server og også e-postproxy-server for HTTP-, SMTP-, POP3- og IMAP-protokoller. For ytterligere detaljer, besøk http://wiki.nginx.org/Overview.

MariaDB er en gaffel av det velkjente MySQL, et av verdens mest populære Relational Database Management System (RDBMS). Den er fullstendig utviklet av fellesskapet og som sådan er den ment å forbli FOSS og kompatibel med GPL.

For å installere Ngnix og MariaDB, kjør følgende kommandoer.

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

Trinn 3: Installere PHP ved å bruke Remi Repository

PHP (Hypertext Preprocessor) er et gratis og åpen kildekode-skriptspråk på serversiden som er best egnet for webutvikling. Den kan brukes til å produsere dynamiske nettsider for et nettsted og finnes oftest på *nix-servere. En av fordelene med PHP er at det lett kan utvides ved bruk av et bredt utvalg av moduler.

For å installere PHP, må du først aktivere Remi-depotet ved å installere yum-utils, en samling nyttige programmer for å administrere yum-depoter og pakker.

# yum install yum-utils

Når den er installert, kan du bruke yum-config-manager levert av yum-utils for å aktivere Remi-depotet som standardlager for å installere forskjellige PHP-versjoner som vist.

For å installere PHP 7.x-versjonen, bruk for eksempel følgende 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]

Deretter skal vi installere alle disse følgende PHP-modulene.

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

Trinn 6: Stoppe og deaktivere Apache-tjenesten

Som standard lytter Apache og Nginx i samme port (TCP 80). Av den grunn, hvis Apache er installert på serveren din, må du stoppe den og deaktivere/maskere den (en sterkere versjon av deaktiver som kobler tjenesten til /dev/null) for å bruke Nginx, eller du kan fjerne den hvis du har ikke tenkt å bruke den lenger.

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

Trinn 7: Starte/stoppe Nginx, MariaDB og 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 

Trinn 8: Konfigurere Nginx og PHP-FPM

La oss nå lage en katalogstruktur for nettstedet ditt (en virtuell vert, eller serverblokk som det heter i Nginx) under /srv/www/. I dette eksemplet vil vi bruke linux-console.net, men velg gjerne et annet domene og hovedkatalog hvis du vil.

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

Trinn 9: Konfigurere Nginx Virtual Host-kataloger

Som du vet, er muligheten til å kjøre flere nettsteder fra samme maskin en av kjennetegnene til store webservere. La oss nå fortsette å lage katalogene for å lagre serverblokkene våre (kjent som virtuelle verter i Apache) under /etc/nginx.

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

Følgende kodelinje, som må settes inn før du lukker http-blokken i /etc/nginx/nginx.conf, vil sikre at konfigurasjonsfiler inne i katalogen /etc/nginx/sites-enabled vil bli tatt i betraktning når Nginx kjører :

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

For å opprette serverblokken for linux-console.net, legg til følgende kodelinjer til /etc/nginx/sites-available/tecmint (denne filen vil bli opprettet når du skriver inn hele banen for å starte din foretrukne tekstredigerer). Dette er en grunnleggende konfigurasjonsfil for virtuell vert.

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

Prosessen med å aktivere en virtuell vert består av å lage en symbolsk lenke fra definisjonen av den virtuelle verten tecmint til /etc/nginx/sites-enabled.

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

For å faktisk bruke endringene vi har gjort, må vi nå starte Nginx på nytt. Noen ganger er det nyttig å sjekke konfigurasjonsfilene for syntaksfeil før du gjør det:

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

For å få tilgang til den nyopprettede virtuelle verten, må du legge til følgende linje i /etc/hosts som en grunnleggende metode for domenenavnoppløsning.

192.168.0.18	linux-console.net linux-console.net 

Trinn 10: Testing av Nginx, MySQL, PHP og PHP-FPM

La oss holde oss til den klassiske måten å teste PHP på. Lag en fil kalt test.php under /srv/www/tecmint/public_html/ og legg til følgende kodelinjer.

phpinfo()-funksjonen viser mye informasjon om gjeldende PHP-installasjon:

<?php 
	phpinfo(); 
?> 

Pek nå nettleseren din til http://tecmint/test.php og sjekk tilstedeværelsen av de installerte modulene og tilleggsprogramvaren:

Gratulerer! Du har nå en fungerende installasjon av en LEMP-stabel. Hvis noe ikke gikk som forventet, ta gjerne kontakt med oss ved å bruke skjemaet nedenfor. Spørsmål og forslag er også velkomne.