Sådan installeres Nginx 1.15, MariaDB 10 og PHP 7 på CentOS 7


I denne artikel forklarer vi, hvordan du installerer en LEMP-stak (Linux, Nginx, MariaDB, PHP) sammen med PHP-FPM på RHEL/CentOS 7/6 og Fedora 26-29-servere ved hjælp af dnf-pakkehåndtering.

Under processen vil vi installere og aktivere Epel, Remi, Nginx og MariaDB repositories for at kunne installere de nyeste versioner af disse pakker.

Trin 1: Installation af EPEL og Remi Repository

EPEL (Extra Packages for Enterprise Linux) er et communitybaseret lager, der tilbyder add-on softwarepakker til RHEL-baserede Linux-distributioner.

Remi er et lager, hvor du kan finde de nyeste versioner af PHP-stakken (fuldt udstyret) til installation i Fedora- og Enterprise Linux-distributioner.

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

Trin 2: Installation af Nginx og MariaDB Repositories

Nginx-arkivet er kun nødvendigt i RHEL- og CentOS-distributioner. Opret en fil kaldet /etc/yum.repos.d/nginx.repo og tilføj følgende linjer til den.

[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 at aktivere MariaDB-arkivet skal du oprette en fil med navnet /etc/yum.repos.d/mariadb.repo med følgende indhold:

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

Trin 4: Installation af Ngnix og MariaDB

Nginx (Engine X) er open source, robust, letvægts og højtydende webserver, reverse proxy sever og også mail proxyserver til HTTP-, SMTP-, POP3- og IMAP-protokoller. For yderligere oplysninger, besøg http://wiki.nginx.org/Overview.

MariaDB er en fork af det velkendte MySQL, et af verdens mest populære Relational Database Management System (RDBMS). Det er helt udviklet af samfundet, og som sådan er det beregnet til at forblive FOSS og kompatibelt med GPL.

For at installere Ngnix og MariaDB skal du køre 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 

Trin 3: Installation af PHP ved hjælp af Remi Repository

PHP (Hypertext Preprocessor) er et gratis og open source-scripting-sprog på serversiden, der er bedst egnet til webudvikling. Det kan bruges til at producere dynamiske websider til et websted og findes oftest på * nix-servere. En af fordelene ved PHP er, at den let kan udvides ved hjælp af en lang række moduler.

For at installere PHP skal du først aktivere Remi-arkivet ved at installere yum-utils , en samling nyttige programmer til styring af yum-arkiver og pakker.

# yum install yum-utils

Når du er installeret, kan du bruge yum-config-manager leveret af yum-utils til at aktivere Remi-lageret som standardlager til installation af forskellige PHP-versioner som vist.

For eksempel for at installere PHP 7.x version skal du bruge 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]

Dernæst skal vi installere alle disse følgende PHP-moduler.

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

Trin 6: Stop og deaktivering af Apache-service

Som standard lytter Apache og Nginx i samme port (TCP 80). Af den grund, hvis Apache er installeret på din server, skal du stoppe den og deaktivere/maskere den (en stærkere version af deaktivering, der forbinder tjenesten til/dev/null) for at kunne bruge Nginx, eller du kan fjerne det, hvis du planlægger ikke at bruge det længere.

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

Trin 7: Start/stop af 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 

Trin 8: Konfiguration af Nginx og PHP-FPM

Lad os nu oprette en katalogstruktur til dit websted (en virtuel vært eller en serverblok, som det kaldes i Nginx) under/srv/www /. I dette eksempel bruger vi linux-console.net , men du er velkommen til at vælge et andet domæne og hovedmappe, hvis du vil.

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

Trin 9: Konfiguration af Nginx Virtual Host-mapper

Som du ved, er evnen til at køre flere websteder fra den samme maskine et af de kendetegnende træk ved større webservere. Lad os nu fortsætte med at oprette mapper til at gemme vores serverblokke (kendt som virtuelle værter i Apache) under/etc/nginx.

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

Følgende kodelinje, der skal indsættes, inden du lukker http-blokken i /etc/nginx/nginx.conf, vil sikre, at konfigurationsfiler i/etc/nginx/sites-aktiveret mappe tages i betragtning, når Nginx kører :

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

For at oprette serverblokken til linux-console.net skal du tilføje følgende linjer med kode til/etc/nginx/sites-available/tecmint (denne fil oprettes, når du indtaster den fulde sti for at starte din foretrukne teksteditor). Dette er en grundlæggende konfigurationsfil for virtuel vært.

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

Processen med at "aktivere" en virtuel vært består i at oprette et symbolsk link fra definitionen af den virtuelle vært tecmint til/etc/nginx/sites-enabled.

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

For faktisk at anvende de ændringer, vi har foretaget, skal vi nu genstarte Nginx. Det er undertiden nyttigt at kontrollere konfigurationsfilerne for syntaksfejl, inden du gør det:

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

For at få adgang til din nyoprettede virtuelle vært skal du tilføje følgende linje til/etc/hosts som en grundlæggende metode til opløsning af domænenavn.

192.168.0.18	linux-console.net linux-console.net 

Trin 10: Test af Nginx, MySQL, PHP og PHP-FPM

Lad os holde fast ved den klassiske måde at teste PHP på. Opret en fil kaldet test.php under/srv/www/tecmint/public_html/og tilføj følgende linjer med kode til den.

Funktionen phpinfo() viser meget information om den aktuelle PHP-installation:

<?php 
	phpinfo(); 
?> 

Ret nu din webbrowser til http: //tecmint/test.php og kontroller tilstedeværelsen af de installerede moduler og yderligere software:

Tillykke! Du har nu en fungerende installation af en LEMP-stak. Hvis noget ikke gik som forventet, er du velkommen til at kontakte os ved hjælp af nedenstående formular. Spørgsmål og forslag er også velkomne.