CentOS 7-de Nginx 1.15, MariaDB 10 we PHP 7-ni nädip gurmaly


Bu makalada RHEL/CentOS 7/6-da PHP-FPM we dnf paket dolandyryjysyny ulanyp Fedora 26-29 serwerleri bilen LEMP stakany (Linux, Nginx, MariaDB, PHP) nädip gurmalydygyny düşündireris.

Bu prosesiň dowamynda bu paketleriň iň soňky wersiýalaryny gurup bilmek üçin Epel, Remi, Nginx we MariaDB ammarlaryny gurarys we işlederis.

1-nji ädim: EPEL we Remi ammaryny gurmak

EPEL (Enterprise Linux üçin goşmaça paketler), RHEL esasly Linux paýlamalary üçin goşmaça programma üpjünçiligini hödürleýän jemgyýetçilik ammarydyr.

Remi, Fedora we Enterprise Linux paýlamalarynda gurnamak üçin PHP ýygyndysynyň iň soňky wersiýalaryny tapyp bilersiňiz (doly aýratynlykly).

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

2-nji ädim: Nginx we MariaDB ammarlaryny gurmak

Nginx ammary diňe RHEL we CentOS paýlamalarynda zerur. /Etc/yum.repos.d/nginx.repo atly bir faýl dörediň we oňa aşakdaky setirleri goşuň.

[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 

MariaDB ammaryny işletmek üçin /etc/yum.repos.d/mariadb.repo atly faýl dörediň:

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

4-nji ädim: Ngnix we MariaDB gurmak

Nginx (Motor X) açyk çeşme, ygtybarly, ýeňil we ýokary öndürijilikli web serweri, tersine proksi kesýär we HTTP, SMTP, POP3 we IMAP protokollary üçin proksi serwerini iberýär. Has giňişleýin maglumat üçin http://wiki.nginx.org/Overview girip görüň.

MariaDB, dünýäde iň meşhur gatnaşyklar bazasyny dolandyryş ulgamynyň (RDBMS) meşhur MySQL-iň çeňňegi. Tutuşlygyna jemgyýet tarapyndan işlenip düzüldi we şonuň üçin FOSS bolup galmagy we GPL bilen utgaşmagy maksat edinýär.

Ngnix we MariaDB gurmak üçin aşakdaky buýruklary işlediň.

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

3-nji ädim: Remi ammaryny ulanyp PHP gurmak

PHP (Hypertext Preprocessor), web ösüşi üçin iň amatly we erkin we açyk çeşme serwer tarapyndaky skript dilidir. Web sahypasy üçin dinamiki web sahypalaryny öndürmek üçin ulanylyp bilner we köplenç * nix serwerlerinde bolýar. PHP-iň artykmaçlyklaryndan biri, dürli modullary ulanmak arkaly aňsatlyk bilen giňelmegi.

PHP-ni gurmak üçin ilki bilen ýum ammarlaryny we paketlerini dolandyrmak üçin peýdaly programmalar ýygyndysy bolan yum-utils gurup Remi ammaryny açmaly.

# yum install yum-utils

Gurlandan soň, Remi ammaryny görkezilişi ýaly dürli PHP wersiýalaryny gurmak üçin deslapky ammar hökmünde işletmek üçin yum-utils tarapyndan üpjün edilen yum-config-manager ulanyp bilersiňiz.

Mysal üçin, PHP 7.x wersiýasyny gurmak üçin aşakdaky buýrugy ulanyň.

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

Indiki, aşakdaky PHP modullarynyň hemmesini gurmakçy.

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

6-njy ädim: Apache hyzmatyny duruzmak we öçürmek

Düzgüne görä, Apache we Nginx bir portda diňleýärler (TCP 80). Şol sebäpli, Apache serweriňizde gurlan bolsa, ony duruzmaly we Nginx-ni ulanmak üçin ony öçürmeli/maska etmeli (hyzmaty/dev/null bilen baglanyşdyrýan öçürmegiň has güýçli wersiýasy), ýa-da aýyryp bilersiňiz mundan beýläk ulanmagy meýilleşdirmeýärsiňiz.

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

7-nji ädim: Nginx, MariaDB we PHP-FPM başlamak/duruzmak

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

8-nji ädim: Nginx we PHP-FPM sazlamak

Indi/srv/www/aşagyndaky web sahypaňyz üçin (wirtual host ýa-da Nginx-de atlandyrylyşy ýaly serwer bloky) bir katalog gurluşyny döredeliň. Bu mysalda linux-console.net ulanarys, ýöne isleseňiz başga bir domeni we esasy katalogy saýlap bilersiňiz.

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

9-njy ädim: Nginx wirtual host direktoriýalaryny düzmek

Bilşiňiz ýaly, bir saýtdan birnäçe sahypany işletmek ukyby esasy web serwerleriniň tapawutly aýratynlyklaryndan biridir. Indi serwer bloklarymyzy (Apache-de wirtual hostlar diýlip atlandyrylýar)/etc/nginx astynda saklamak üçin kataloglary döretmäge dowam edeliň.

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

Http blokuny /etc/nginx/nginx.conf sahypasyna ýapmazdan ozal girizilmeli aşakdaky kod setiri, Nginx işleýän wagty/etc/nginx/saýtlar bilen işleýän bukjanyň içindäki konfigurasiýa faýllarynyň göz öňünde tutulmagyny üpjün eder. :

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

linux-console.net üçin serwer blokuny döretmek üçin/etc/nginx/sites-available/tecmint-e aşakdaky kod setirlerini goşuň (bu faýl, islän zadyňyzy başlamak üçin doly ýoly girizeniňizde dörediler) tekst redaktory). Bu esasy wirtual host konfigurasiýa faýly.

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

Wirtual öý eýesini “işjeňleşdirmek” prosesi, tecmint wirtual host kesgitlemesinden/etc/nginx/saýtlar bilen işleýän simwoliki baglanyşyk döretmekden ybarat.

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

Edýän üýtgeşmelerimizi hakykatda ulanmak üçin indi Nginx-i täzeden açmaly. Käwagt konfigurasiýa faýllaryny sintaksis säwliklerini barlamak peýdalydyr:

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

Täze döredilen wirtual hostyňyza girmek üçin domen adyny çözmegiň esasy usuly hökmünde aşakdaky setiri/etc/hostlara goşmaly.

192.168.0.18	linux-console.net linux-console.net 

10-njy ädim: Nginx, MySQL, PHP we PHP-FPM synagy

PHP-ni synamagyň nusgawy usuly bilen ýapyşalyň./Srv/www/tecmint/public_html/astynda test.php atly bir faýl dörediň we oňa aşakdaky kod setirlerini goşuň.

phpinfo() funksiýasy häzirki PHP gurnamasy barada köp maglumatlary görkezýär:

<?php 
	phpinfo(); 
?> 

Indi web brauzeriňizi http://tecmint/test.php görkeziň we gurlan modullaryň we goşmaça programma üpjünçiliginiň bardygyny barlaň:

Gutlaýarys! Indi sizde LEMP stakasynyň işleýän gurnamasy bar. Bir zat garaşylşy ýaly gitmedik bolsa, aşakdaky formdan peýdalanyp, biziň bilen habarlaşyp bilersiňiz. Soraglar we teklipler hem kabul edilýär.