Hvernig á að setja upp Nginx 1.15, MariaDB 10 og PHP 7 á CentOS 7


Í þessari grein munum við útskýra hvernig á að setja upp LEMP stafla (Linux, Nginx, MariaDB, PHP) ásamt PHP-FPM á RHEL/CentOS 7/6 og Fedora 26-29 netþjónum með dnf pakkastjóra.

Meðan á ferlinu stendur munum við setja upp og virkja Epel, Remi, Nginx og MariaDB geymslur til að geta sett upp nýjustu útgáfur þessara pakka.

Skref 1: Uppsetning EPEL og Remi Repository

EPEL (Extra Packages for Enterprise Linux) er samfélagsmiðað geymsla sem býður upp á viðbótarhugbúnaðarpakka fyrir RHEL-undirstaða Linux dreifingar.

Remi er geymsla þar sem þú getur fundið nýjustu útgáfur af PHP stafla (fullkomnar) til uppsetningar í Fedora og Enterprise Linux dreifingum.

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

Skref 2: Setja upp Nginx og MariaDB geymslur

Nginx geymslan er aðeins nauðsynleg í RHEL og CentOS dreifingum. Búðu til skrá sem heitir /etc/yum.repos.d/nginx.repo og bættu eftirfarandi línum við hana.

[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 

Til að virkja MariaDB geymsluna skaltu búa til skrá sem heitir /etc/yum.repos.d/mariadb.repo með eftirfarandi innihaldi:

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

Skref 4: Uppsetning Ngnix og MariaDB

Nginx (Engine X) er opinn uppspretta, öflugur, léttur og afkastamikill vefþjónn, öfugur umboðsþjónn og einnig póstþjónn fyrir HTTP, SMTP, POP3 og IMAP samskiptareglur. Fyrir frekari upplýsingar, farðu á http://wiki.nginx.org/Overview.

MariaDB er gaffal af hinu vel þekkta MySQL, einu vinsælasta gagnagrunnsstjórnunarkerfi heims (RDBMS). Það er alfarið þróað af samfélaginu og sem slíkt er því ætlað að vera áfram FOSS og samhæft við GPL.

Til að setja upp Ngnix og MariaDB skaltu keyra eftirfarandi skipanir.

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

Skref 3: Uppsetning PHP með Remi Repository

PHP (Hypertext Preprocessor) er ókeypis og opinn uppspretta forskriftarmál á netþjóni sem hentar best fyrir vefþróun. Það er hægt að nota til að búa til kraftmiklar vefsíður fyrir vefsíðu og er oftast að finna á *nix netþjónum. Einn af kostum PHP er að það er auðvelt að stækka það með því að nota fjölbreytt úrval af einingum.

Til að setja upp PHP þarftu fyrst að virkja Remi geymslu með því að setja upp yum-utils, safn gagnlegra forrita til að stjórna yum geymslum og pakka.

# yum install yum-utils

Þegar það hefur verið sett upp geturðu notað yum-config-manager frá yum-utils til að virkja Remi repository sem sjálfgefna geymsla til að setja upp mismunandi PHP útgáfur eins og sýnt er.

Til dæmis, til að setja upp PHP 7.x útgáfu, notaðu eftirfarandi skipun.

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

Næst ætlum við að setja upp allar þessar eftirfarandi PHP einingar.

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

Skref 6: Stöðva og slökkva á Apache þjónustu

Sjálfgefið er að Apache og Nginx hlusta í sömu höfn (TCP 80). Af þeirri ástæðu, ef Apache er sett upp á netþjóninum þínum, þarftu að stöðva það og slökkva á/duldu það (sterkari útgáfa af disable sem tengir þjónustuna við /dev/null) til að nota Nginx, eða þú getur fjarlægt það ef þú ætlar ekki að nota það lengur.

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

Skref 7: Byrja/stöðva 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 

Skref 8: Stilla Nginx og PHP-FPM

Leyfðu okkur nú að búa til möppuskipulag fyrir vefsíðuna þína (sýndargestgjafi, eða netþjónablokk eins og það er kallað í Nginx) undir /srv/www/. Í þessu dæmi munum við nota linux-console.net, en ekki hika við að velja annað lén og aðalskrá ef þú vilt.

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

Skref 9: Stilla Nginx sýndarhýsingarskrár

Eins og þú veist er hæfileikinn til að keyra nokkrar síður frá sömu vél einn af sérkenni helstu netþjóna. Við skulum nú halda áfram að búa til möppurnar til að geyma netþjónablokkirnar okkar (þekkt sem sýndarhýsingar í Apache) undir /etc/nginx.

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

Eftirfarandi kóðalína, sem verður að setja inn áður en http-blokkinni er lokað í /etc/nginx/nginx.conf, mun tryggja að stillingarskrár inni í /etc/nginx/sites-enabled skránni verði teknar með í reikninginn þegar Nginx er í gangi :

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

Til að búa til netþjónablokkina fyrir linux-console.net skaltu bæta eftirfarandi línum af kóða við /etc/nginx/sites-available/tecmint (þessi skrá verður búin til þegar þú slærð inn alla slóðina til að hefja valinn þinn textaritill). Þetta er grunnstillingarskrá sýndarhýsingar.

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

Ferlið við að „virkja“ sýndarhýsil samanstendur af því að búa til táknrænan hlekk frá skilgreiningu tecmint sýndarhýsilsins til /etc/nginx/sites-enabled.

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

Til þess að geta raunverulega beitt þeim breytingum sem við höfum verið að gera þurfum við nú að endurræsa Nginx. Það er stundum gagnlegt að athuga stillingarskrárnar fyrir setningafræðivillur áður en það er gert:

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

Til að fá aðgang að nýstofnuðu sýndarhýslinum þínum þarftu að bæta eftirfarandi línu við /etc/hosts sem grunnaðferð við upplausn lénsheita.

192.168.0.18	linux-console.net linux-console.net 

Skref 10: Prófaðu Nginx, MySQL, PHP og PHP-FPM

Við skulum halda okkur við klassíska leiðina til að prófa PHP. Búðu til skrá sem heitir test.php undir /srv/www/tecmint/public_html/ og bættu eftirfarandi kóðalínum við hana.

phpinfo() aðgerðin sýnir miklar upplýsingar um núverandi PHP uppsetningu:

<?php 
	phpinfo(); 
?> 

Beindu nú vafranum þínum á http://tecmint/test.php og athugaðu hvort uppsettar einingar og viðbótarhugbúnaður sé til staðar:

Til hamingju! Þú hefur nú virka uppsetningu á LEMP stafla. Ef eitthvað fór ekki eins og búist var við skaltu ekki hika við að hafa samband við okkur með því að nota formið hér að neðan. Spurningar og ábendingar eru einnig vel þegnar.