Kaip įdiegti „Nginx 1.15“, „MariaDB 10“ ir PHP 7 „CentOS 7“.


Šiame straipsnyje paaiškinsime, kaip įdiegti LEMP krūvą (Linux, Nginx, MariaDB, PHP) kartu su PHP-FPM RHEL/CentOS 7/6 ir Fedora 26-29 serveriuose naudojant yum ir dnf paketą vadovas.

Proceso metu įdiegsime ir įjungsime Epel, Remi, Nginx ir MariaDB saugyklas, kad galėtume įdiegti naujausias šių paketų versijas.

Taip pat skaitykite: „CentOS 7“ įdiekite „Apache“, „MySQL 8“ arba „MariaDB 10“ ir „PHP 7“

1 veiksmas: EPEL ir Remi saugyklos diegimas

EPEL (Papildomi paketai, skirti Enterprise Linux) yra bendruomenės pagrindu sukurta saugykla, kurioje siūlomi papildomi programinės įrangos paketai, skirti RHEL pagrįstiems Linux platinimams.

Remi yra saugykla, kurioje galite rasti naujausias PHP dėklo versijas (visos funkcijos), kurias galima įdiegti Fedora ir Enterprise Linux platinimuose.

RHEL/CentOS 7

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

RHEL/CentOS 6

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

„Fedora“ 24–29

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 veiksmas: „Nginx“ ir „MariaDB“ saugyklų diegimas

„Nginx“ saugykla reikalinga tik paskirstant RHEL ir CentOS. Sukurkite failą pavadinimu /etc/yum.repos.d/nginx.repo ir pridėkite prie jo šias eilutes.

RHEL 7/6:

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 

„CentOS 7/6“:

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 

Norėdami įjungti MariaDB saugyklą, sukurkite failą pavadinimu /etc/yum.repos.d/mariadb.repo su tokiu turiniu:

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

4 veiksmas: „Ngnix“ ir „MariaDB“ diegimas

Nginx (X variklis) yra atvirojo kodo, tvirtas, lengvas ir didelio našumo žiniatinklio serveris, atvirkštinis tarpinis serveris ir pašto tarpinis serveris, skirtas HTTP, SMTP, POP3 ir IMAP protokolams. Norėdami gauti daugiau informacijos, apsilankykite http://wiki.nginx.org/Overview.

MariaDB yra gerai žinomos MySQL, vienos populiariausių pasaulyje ryšių duomenų bazių valdymo sistemos (RDBMS), šakutė. Jį visiškai sukūrė bendruomenė, todėl jis turi likti FOSS ir suderinamas su GPL.

Norėdami įdiegti Ngnix ir MariaDB, vykdykite šias komandas.


----------- 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 veiksmas: PHP diegimas naudojant Remi saugyklą

PHP (Hypertext Preprocessor) yra nemokama atvirojo kodo serverio scenarijų kalba, kuri geriausiai tinka kuriant žiniatinklio kūrimą. Jis gali būti naudojamas kuriant dinamiškus svetainės tinklalapius ir dažniausiai randamas *nix serveriuose. Vienas iš PHP privalumų yra tai, kad jį galima lengvai išplėsti naudojant įvairius modulius.

Norėdami įdiegti PHP, pirmiausia turite įgalinti Remi saugyklą, įdiegdami yum-utils – naudingų programų rinkinį, skirtą yum saugykloms ir paketams tvarkyti.

yum install yum-utils

Įdiegę galite naudoti yum-config-manager, kurią pateikia yum-utils, kad įgalintumėte Remi saugyklą kaip numatytąją saugyklą, skirtą skirtingų PHP versijų diegimui, kaip parodyta.

Pavyzdžiui, norėdami įdiegti PHP 7.x versiją, naudokite šią komandą.

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

Tada mes įdiegsime visus šiuos PHP modulius.

------ 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 veiksmas: „Apache“ paslaugos sustabdymas ir išjungimas

Pagal numatytuosius nustatymus Apache ir Nginx klauso tame pačiame prievade (TCP 80). Dėl šios priežasties, jei jūsų serveryje įdiegta „Apache“, turite ją sustabdyti ir išjungti/užmaskuoti (tvirtesnė išjungimo versija, kuri susieja paslaugą su /dev/null), kad galėtumėte naudoti „Nginx“ , arba galite jį pašalinti, jei nebeplanuojate jo naudoti.

systemctl stop httpd 
systemctl disable httpd 
or 
systemctl mask httpd 

7 veiksmas: Nginx, MariaDB ir PHP-FPM paleidimas/sustabdymas

----------- 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 veiksmas: „Nginx“ ir PHP-FPM konfigūravimas

Dabar sukurkime jūsų svetainės katalogo struktūrą (virtualią prieglobą arba serverio bloką, kaip jis vadinamas Nginx) adresu /srv/www/. Šiame pavyzdyje naudosime linux-console.net, bet jei norite, galite pasirinkti kitą domeną ir pagrindinį katalogą.

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

9 veiksmas: „Nginx“ virtualiosios prieglobos katalogų konfigūravimas

Kaip žinote, galimybė paleisti kelias svetaines iš to paties įrenginio yra vienas iš skiriamųjų pagrindinių žiniatinklio serverių bruožų. Dabar pradėkime kurti katalogus, kuriuose būtų saugomi mūsų serverio blokai (žinomi kaip virtualūs prieglobos „Apache“) aplanke /etc/nginx.

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

Ši kodo eilutė, kurią reikia įterpti prieš uždarant http bloką /etc/nginx/nginx.conf, užtikrins, kad konfigūracijos failai, esantys /etc/nginx/sites-enabled į katalogą bus atsižvelgta, kai veikia „Nginx“:

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

Norėdami sukurti linux-console.net serverio bloką, į /etc/nginx/sites-available/tecmint pridėkite šias kodo eilutes (šis failas bus sukurtas, kai įvesite visą kelią, kaip paleisti pageidaujamą teksto rengyklę). Tai pagrindinis virtualaus pagrindinio kompiuterio konfigūracijos failas.

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

Virtualiojo pagrindinio kompiuterio „aktyvinimo“ procesas susideda iš simbolinės nuorodos iš tecmint virtualiojo prieglobos apibrėžimo į /etc/nginx/sites-enabled<..

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

Kad iš tikrųjų pritaikytume atliktus pakeitimus, dabar turime iš naujo paleisti „Nginx“. Prieš tai kartais naudinga patikrinti, ar konfigūracijos failuose nėra sintaksės klaidų:

nginx -t 
systemctl restart nginx 
systemctl status nginx 

Norėdami pasiekti naujai sukurtą virtualųjį prieglobą, prie /etc/hosts turite pridėti šią eilutę kaip pagrindinį domeno vardo nustatymo metodą.

192.168.0.18	linux-console.net linux-console.net 

10 veiksmas: „Nginx“, „MySQL“, PHP ir PHP-FPM testavimas

Laikykimės klasikinio PHP testavimo būdo. Sukurkite failą test.php, esantį /srv/www/tecmint/public_html/ ir pridėkite prie jo šias kodo eilutes.

Funkcija phpinfo() rodo daug informacijos apie dabartinį PHP diegimą:

<?php 
	phpinfo(); 
?> 

Dabar nukreipkite savo žiniatinklio naršyklę į http://tecmint/test.php ir patikrinkite, ar yra įdiegtų modulių ir papildomos programinės įrangos:

Sveikiname! Dabar turite veikiantį LEMP dėklo diegimą. Jei kažkas nepavyko taip, kaip tikėjotės, susisiekite su mumis naudodami toliau pateiktą formą. Taip pat laukiami klausimai ir pasiūlymai.