Jinsi ya kusakinisha Nginx 1.15, MariaDB 10 na PHP 7 kwenye CentOS 7


Katika makala hii tutaelezea jinsi ya kufunga safu ya LEMP (Linux, Nginx, MariaDB, PHP) pamoja na PHP-FPM kwenye RHEL/CentOS 7/6 na seva za Fedora 26-29 kwa kutumia meneja wa kifurushi cha dnf.

Wakati wa mchakato huo, tutasakinisha na kuwezesha hazina za Epel, Remi, Nginx na MariaDB ili kuweza kusakinisha matoleo mapya zaidi ya vifurushi hivi.

Hatua ya 1: Kusakinisha EPEL na Remi Repository

EPEL (Vifurushi vya Ziada vya Linux Enterprise) ni hazina ya msingi ya jumuiya inayotoa vifurushi vya programu-jalizi kwa usambazaji wa Linux unaotegemea RHEL.

Remi ni hazina ambapo unaweza kupata matoleo ya hivi punde ya safu ya PHP (iliyoangaziwa kamili) kwa usakinishaji katika usambazaji wa Fedora na Enterprise Linux.

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

Hatua ya 2: Kufunga Hifadhi za Nginx na MariaDB

Hifadhi ya Nginx inahitajika tu katika usambazaji wa RHEL na CentOS. Unda faili inayoitwa /etc/yum.repos.d/nginx.repo na uongeze mistari ifuatayo kwake.

[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 

Ili kuwezesha hazina ya MariaDB, unda faili inayoitwa /etc/yum.repos.d/mariadb.repo na yaliyomo yafuatayo:

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

Hatua ya 4: Kufunga Ngnix na MariaDB

Nginx (Injini X) ni chanzo huria, chenye nguvu, chepesi na chenye utendaji wa juu, seva ya seva mbadala na pia seva ya proksi ya barua pepe kwa itifaki za HTTP, SMTP, POP3 na IMAP. Kwa maelezo zaidi, tembelea http://wiki.nginx.org/Overview.

MariaDB ni uma wa MySQL inayojulikana, mojawapo ya Mfumo wa Usimamizi wa Hifadhidata ya Mahusiano maarufu zaidi ulimwenguni (RDBMS). Imetengenezwa kabisa na jamii na kwa hivyo inakusudiwa kubaki FOSS na kuendana na GPL.

Ili kusakinisha Ngnix na MariaDB, endesha amri zifuatazo.

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

Hatua ya 3: Kufunga PHP Kwa Kutumia Remi Repository

PHP (Hypertext Preprocessor) ni lugha ya uandishi ya upande wa seva huria na Chanzo Huria ambayo inafaa zaidi kwa ukuzaji wa wavuti. Inaweza kutumika kutengeneza kurasa za wavuti zinazobadilika kwa tovuti na hupatikana mara nyingi katika seva za *nix. Moja ya faida za PHP ni kwamba inaweza kupanuliwa kwa urahisi kupitia utumiaji wa moduli anuwai.

Ili kusakinisha PHP, kwanza unahitaji kuwezesha hazina ya Remi kwa kusakinisha yum-utils, mkusanyiko wa programu muhimu za kudhibiti hazina na vifurushi vya yum.

# yum install yum-utils

Baada ya kusakinishwa, unaweza kutumia yum-config-manager iliyotolewa na yum-utils ili kuwezesha hazina ya Remi kama hazina chaguomsingi ya kusakinisha matoleo tofauti ya PHP kama inavyoonyeshwa.

Kwa mfano, ili kusakinisha toleo la PHP 7.x, tumia amri ifuatayo.

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

Ifuatayo, tutasakinisha moduli zote zifuatazo za PHP.

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

Hatua ya 6: Kusimamisha na Kuzima Huduma ya Apache

Kwa chaguo-msingi, Apache na Nginx husikiliza katika bandari moja (TCP 80). Kwa sababu hiyo, ikiwa Apache imewekwa kwenye seva yako, unahitaji kuisimamisha na kuizima/kuifunga (toleo lenye nguvu la kuzima ambalo linaunganisha huduma kwa /dev/null) ili kutumia Nginx, au unaweza kuiondoa ikiwa huna mpango wa kuitumia tena.

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

Hatua ya 7: Kuanzisha/Kusimamisha Nginx, MariaDB na 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 

Hatua ya 8: Kusanidi Nginx na PHP-FPM

Wacha sasa tuunde muundo wa saraka kwa tovuti yako (mwenyeji wa kawaida, au kizuizi cha seva kama inavyoitwa katika Nginx) chini ya /srv/www/. Katika mfano huu tutatumia linux-console.net, lakini jisikie huru kuchagua kikoa kingine na saraka kuu ikiwa unataka.

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

Hatua ya 9: Kusanidi Saraka za Sevasti za Nginx

Kama unavyojua, uwezo wa kuendesha tovuti kadhaa kutoka kwa mashine moja ni moja ya sifa tofauti za seva kuu za wavuti. Wacha sasa tuendelee kuunda saraka za kuhifadhi vizuizi vyetu vya seva (vinajulikana kama mwenyeji wa kawaida katika Apache) chini ya /etc/nginx.

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

Mstari ufuatao wa msimbo, ambao lazima uingizwe kabla ya kufunga kizuizi cha http ndani /etc/nginx/nginx.conf, itahakikisha kuwa faili za usanidi ndani ya saraka /etc/nginx/sites-enabled zitazingatiwa wakati Nginx inaendesha. :

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

Ili kuunda kizuizi cha seva cha linux-console.net, ongeza mistari ifuatayo ya msimbo kwa /etc/nginx/sites-available/tecmint (faili hili litaundwa unapoingiza njia kamili ya kuanza unayopendelea. mhariri wa maandishi). Hii ni faili ya msingi ya usanidi wa seva pangishi.

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

Mchakato wa kuwezesha seva pangishi pepe hujumuisha kuunda kiungo cha ishara kutoka kwa ufafanuzi wa tecmint seva pangishi pepe hadi /etc/nginx/sites-enabled.

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

Ili kutekeleza mabadiliko ambayo tumekuwa tukifanya, sasa tunahitaji kuwasha tena Nginx. Wakati mwingine ni muhimu kuangalia faili za usanidi kwa makosa ya syntax kabla ya kufanya hivyo:

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

Ili kufikia seva pangishi yako mpya iliyoundwa, unahitaji kuongeza laini ifuatayo kwa /etc/hosts kama njia ya msingi ya utatuzi wa jina la kikoa.

192.168.0.18	linux-console.net linux-console.net 

Hatua ya 10: Kujaribu Nginx, MySQL, PHP na PHP-FPM

Wacha tushikamane na njia ya kawaida ya kujaribu PHP. Unda faili inayoitwa test.php chini ya /srv/www/tecmint/public_html/ na uongeze mistari ifuatayo ya msimbo kwake.

Kitendaji cha phpinfo() kinaonyesha habari nyingi kuhusu usakinishaji wa sasa wa PHP:

<?php 
	phpinfo(); 
?> 

Sasa elekeza kivinjari chako kwenye http://tecmint/test.php na uangalie uwepo wa moduli zilizosakinishwa na programu ya ziada:

Hongera! Sasa una usakinishaji unaofanya kazi wa rafu ya LEMP. Ikiwa kitu hakikuenda kama ilivyotarajiwa, jisikie huru kuwasiliana nasi kwa kutumia fomu iliyo hapa chini. Maswali na mapendekezo pia yanakaribishwa.