Kif Tinstalla Nginx 1.15, MariaDB 10 u PHP 7 fuq CentOS 7


F'dan l-artikolu ser nispjegaw kif tinstalla munzell LEMP (Linux, Nginx, MariaDB, PHP) flimkien ma 'PHP-FPM fuq servers RHEL/CentOS 7/6 u Fedora 26-29 bl-użu ta' maniġer tal-pakketti dnf.

Matul il-proċess se ninstallaw u nippermettu r-repożitorji ta' Epel, Remi, Nginx u MariaDB sabiex inkunu nistgħu ninstallaw l-aħħar verżjonijiet ta' dawn il-pakketti.

Pass 1: Installazzjoni ta' EPEL u Remi Repository

EPEL (Pakketti Extra għall-Intrapriża Linux) huwa repożitorju bbażat fuq il-komunità li joffri pakketti ta 'softwer add-on għal distribuzzjonijiet Linux ibbażati fuq RHEL.

Remi huwa repożitorju fejn tista 'ssib l-aħħar verżjonijiet tal-munzell PHP (dehra sħiħa) għall-installazzjoni fid-distribuzzjonijiet Fedora u 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]

Pass 2: Installazzjoni tar-Repożitorji Nginx u MariaDB

Ir-repożitorju Nginx huwa meħtieġ biss fid-distribuzzjonijiet RHEL u CentOS. Oħloq fajl imsejjaħ /etc/yum.repos.d/nginx.repo u żid il-linji li ġejjin miegħ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 

Biex tippermetti r-repożitorju MariaDB, oħloq fajl bl-isem /etc/yum.repos.d/mariadb.repo bil-kontenut li ġej:

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

Pass 4: Installazzjoni ta 'Ngnix u MariaDB

Nginx (Engine X) huwa server tal-Web sors miftuħ, robust, ħafif u ta 'prestazzjoni għolja, server proxy reverse u wkoll server proxy tal-posta għal protokolli HTTP, SMTP, POP3 u IMAP. Għal aktar dettalji, żur http://wiki.nginx.org/Overview.

MariaDB hija furketta tal-MySQL magħrufa sew, waħda mis-Sistema ta’ Ġestjoni ta’ Database Relazzjonali (RDBMS) l-aktar popolari fid-dinja. Huwa żviluppat għal kollox mill-komunità u bħala tali huwa maħsub li jibqa' FOSS u kompatibbli mal-GPL.

Biex tinstalla Ngnix u MariaDB, mexxi l-kmandi li ġejjin.

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

Pass 3: Installazzjoni ta' PHP billi tuża Remi Repository

PHP (Hypertext Preprocessor) hija lingwa ta' scripting fuq is-server Free u Open Source li hija l-aktar adattata għall-iżvilupp tal-web. Jista 'jintuża biex jipproduċi paġni tal-web dinamiċi għal websajt u l-aktar spiss jinstab f'servers *nix. Wieħed mill-vantaġġi tal-PHP huwa li huwa faċilment estensibbli permezz tal-użu ta 'varjetà wiesgħa ta' moduli.

Biex tinstalla PHP, l-ewwel trid tattiva r-repożitorju Remi billi tinstalla yum-utils, ġabra ta' programmi utli għall-ġestjoni ta' repożitorji u pakketti yum.

# yum install yum-utils

Ladarba tkun installata, tista' tuża yum-config-manager ipprovduta minn yum-utils biex tippermetti r-repożitorju Remi bħala r-repożitorju default għall-installazzjoni ta' verżjonijiet PHP differenti kif muri.

Pereżempju, biex tinstalla l-verżjoni PHP 7.x, uża l-kmand li ġej.

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

Sussegwentement, se ninstallaw dawn il-moduli PHP kollha li ġejjin.

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

Pass 6: Waqfien u Inżabilitar tas-Servizz Apache

B'mod awtomatiku, Apache u Nginx jisimgħu fl-istess port (TCP 80). Għal dik ir-raġuni, jekk Apache huwa installat fis-server tiegħek, għandek bżonn twaqqafha u tiddiżattivah/maskra (verżjoni aktar b'saħħitha ta 'diżattiva li tgħaqqad is-servizz ma' /dev/null) sabiex tuża Nginx, jew tista' tneħħih jekk m'intix qed tippjana li tużaha aktar.

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

Pass 7: Bidu/Twaqqaf Nginx, MariaDB u 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 

Pass 8: Konfigurazzjoni ta 'Nginx u PHP-FPM

Ejjew issa noħolqu struttura tad-direttorju għall-websajt tiegħek (host virtwali, jew blokk tas-server kif tissejjaħ f'Nginx) taħt /srv/www/. F'dan l-eżempju se nużaw linux-console.net, imma tħossok liberu li tagħżel dominju ieħor u direttorju prinċipali jekk trid.

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

Pass 9: Konfigurazzjoni ta 'Nginx Virtual Host Directories

Kif tafu, l-abbiltà li tmexxi diversi siti mill-istess magna hija waħda mill-karatteristiċi distintivi tas-servers tal-web ewlenin. Issa ejja nipproċedu biex noħolqu d-direttorji biex jaħżnu l-blokki tas-server tagħna (magħrufa bħala hosts virtwali f'Apache) taħt /etc/nginx.

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

Il-linja ta' kodiċi li ġejja, li trid tiddaħħal qabel ma tagħlaq il-blokk http f'/etc/nginx/nginx.conf, se tiżgura li l-fajls ta' konfigurazzjoni ġewwa d-direttorju /etc/nginx/sites-enabled se jitqiesu meta Nginx ikun qed jaħdem :

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

Biex toħloq il-blokk tas-server għal linux-console.net, żid il-linji ta' kodiċi li ġejjin għal /etc/nginx/sites-available/tecmint (dan il-fajl jinħoloq meta tidħol fil-mogħdija sħiħa biex tibda l-preferuta tiegħek editur tat-test). Dan huwa fajl bażiku tal-konfigurazzjoni tal-host virtwali.

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

Il-proċess ta’ “attivazzjoni” ta’ host virtwali jikkonsisti fil-ħolqien ta’ rabta simbolika mid-definizzjoni tal-ospitant virtwali tecmint għal /etc/nginx/sites-enabled.

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

Sabiex fil-fatt napplikaw il-bidliet li ilna nagħmlu, issa għandna bżonn nibdew mill-ġdid Nginx. Xi drabi jkun utli li tiċċekkja l-fajls tal-konfigurazzjoni għal żbalji ta’ sintassi qabel ma tagħmel dan:

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

Biex taċċessa l-host virtwali maħluq ġdid tiegħek, trid iżżid il-linja li ġejja ma’ /etc/hosts bħala metodu bażiku ta’ riżoluzzjoni tal-isem tad-dominju.

192.168.0.18	linux-console.net linux-console.net 

Pass 10: Ittestjar Nginx, MySQL, PHP u PHP-FPM

Ejja nżommu mal-mod klassiku ta 'ttestjar tal-PHP. Oħloq fajl imsejjaħ test.php taħt /srv/www/tecmint/public_html/ u żid miegħu l-linji ta' kodiċi li ġejjin.

Il-funzjoni phpinfo() turi ħafna informazzjoni dwar l-installazzjoni attwali tal-PHP:

<?php 
	phpinfo(); 
?> 

Issa poġġi l-web browser tiegħek lejn http://tecmint/test.php u ċċekkja l-preżenza tal-moduli installati u s-softwer addizzjonali:

Prosit! Issa għandek installazzjoni li taħdem ta 'munzell LEMP. Jekk xi ħaġa ma marretx kif mistenni, tħossok liberu li tikkuntattjana billi tuża l-formola hawn taħt. Mistoqsijiet u suġġerimenti huma milqugħa wkoll.