Kako instalirati Nginx 1.15, MariaDB 10 i PHP 7 na CentOS 7


U ovom ćemo članku objasniti kako instalirati LEMP stog (Linux, Nginx, MariaDB, PHP) zajedno s PHP-FPM na RHEL/CentOS 7/6 i Fedora 26-29 poslužitelje pomoću dnf upravitelja paketa.

Tijekom postupka instalirat ćemo i omogućiti spremišta Epel, Remi, Nginx i MariaDB kako bismo mogli instalirati najnovije verzije ovih paketa.

Korak 1: Instaliranje EPEL-a i Remi spremišta

EPEL (Extra Packages for Enterprise Linux) je spremište temeljeno na zajednici i nudi dodatne softverske pakete za Linux distribucije zasnovane na RHEL-u.

Remi je spremište u kojem možete pronaći najnovije verzije PHP stoga (s puno značajki) za instalaciju u Fedora i Enterprise Linux distribucijama.

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

Korak 2: Instaliranje Nginx i MariaDB spremišta

Spremište Nginx potrebno je samo u RHEL i CentOS distribucijama. Stvorite datoteku nazvanu /etc/yum.repos.d/nginx.repo i dodajte joj sljedeće retke.

[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 

Da biste omogućili spremište MariaDB, stvorite datoteku s imenom /etc/yum.repos.d/mariadb.repo sa sljedećim sadržajem:

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

Korak 4: Instaliranje Ngnixa i MariaDB

Nginx (Engine X) je otvoreni izvor, robustan, lagan i vrlo učinkovit web poslužitelj, obrnuti proxy server i također proxy poslužitelj pošte za HTTP, SMTP, POP3 i IMAP protokole. Za dodatne pojedinosti posjetite http://wiki.nginx.org/Overview.

MariaDB je račvanje dobro poznatog MySQL-a, jednog od najpopularnijih sustava upravljanja relacijskim bazama podataka (RDBMS). Potpuno ga je razvila zajednica i kao takav namjerava ostati FOSS i kompatibilan s GPL-om.

Da biste instalirali Ngnix i MariaDB, pokrenite sljedeće naredbe.

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

Korak 3: Instalacija PHP-a pomoću Remi spremišta

PHP (Hypertext Preprocessor) je besplatni skriptni jezik na strani poslužitelja s otvorenim kodom koji je najprikladniji za web razvoj. Može se koristiti za izradu dinamičkih web stranica za web mjesto i najčešće se nalazi na * nix poslužiteljima. Jedna od prednosti PHP-a je što se lako može proširiti korištenjem širokog spektra modula.

Da biste instalirali PHP, prvo morate omogućiti Remi spremište instaliranjem yum-utils , zbirke korisnih programa za upravljanje yum spremištima i paketima.

# yum install yum-utils

Jednom instalirani, možete koristiti yum-config-manager koji pruža yum-utils da biste omogućili Remi spremište kao zadani repozitorij za instaliranje različitih PHP verzija, kao što je prikazano.

Na primjer, da biste instalirali verziju PHP 7.x, upotrijebite sljedeću naredbu.

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

Dalje, instalirat ćemo sve sljedeće PHP module.

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

Korak 6: Zaustavljanje i onemogućavanje usluge Apache

Prema zadanim postavkama Apache i Nginx slušaju na istom priključku (TCP 80). Iz tog razloga, ako je Apache instaliran na vašem poslužitelju, morate ga zaustaviti i onemogućiti/maskirati (jača inačica onemogućavanja koja povezuje uslugu na/dev/null) kako biste koristili Nginx ili ga možete ukloniti ako više ga ne planirate koristiti.

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

Korak 7: Pokretanje/zaustavljanje Nginxa, MariaDB i 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 

Korak 8: Konfiguriranje Nginxa i PHP-FPM-a

Stvorimo sada strukturu direktorija za vaše web mjesto (virtualni host ili blok poslužitelja kako se naziva u Nginxu) u/srv/www /. U ovom ćemo primjeru koristiti linux-console.net , ali slobodno odaberite drugu domenu i glavni direktorij ako želite.

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

Korak 9: Konfiguriranje direktorija Nginx virtualnih hostova

Kao što znate, sposobnost pokretanja nekoliko web lokacija s istog stroja jedna je od prepoznatljivih značajki glavnih web poslužitelja. Krenimo sada s izradom direktorija za pohranu naših blokova poslužitelja (poznatih kao virtualni hostovi u Apacheu) u/etc/nginx.

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

Sljedeći redak koda, koji se mora umetnuti prije zatvaranja http bloka u /etc/nginx/nginx.conf, osigurat će uzimanje u obzir konfiguracijskih datoteka unutar direktorija/etc/nginx/sites koji imaju omogućen rad dok je Nginx pokrenut :

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

Da biste stvorili blok poslužitelja za linux-console.net , dodajte sljedeće retke koda u/etc/nginx/sites-available/tecmint (ova će se datoteka stvoriti kada unesete puni put za pokretanje željenog uređivač teksta). Ovo je osnovna konfiguracijska datoteka virtualnog hosta.

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

Proces "aktiviranja" virtualnog hosta sastoji se od stvaranja simboličke veze iz definicije virtualnog hosta tecmint na/etc/nginx/sites-enabled.

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

Da bismo zapravo primijenili promjene koje smo radili, sada moramo ponovno pokrenuti Nginx. Prije nego što to učinite, korisno je provjeriti konfiguracijske datoteke na sintaksne pogreške:

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

Da biste pristupili novostvorenom virtualnom hostu, morate dodati sljedeći redak u/etc/hosts kao osnovnu metodu razlučivanja imena domene.

192.168.0.18	linux-console.net linux-console.net 

Korak 10: Testiranje Nginxa, MySQL-a, PHP-a i PHP-FPM-a

Držimo se klasičnog načina testiranja PHP-a. Stvorite datoteku pod nazivom test.php u/srv/www/tecmint/public_html/i dodajte joj sljedeće retke koda.

Funkcija phpinfo() prikazuje mnoštvo informacija o trenutnoj instalaciji PHP-a:

<?php 
	phpinfo(); 
?> 

Sada usmjerite web preglednik na http://tecmint/test.php i provjerite prisutnost instaliranih modula i dodatnog softvera:

Čestitamo! Sada imate radnu instalaciju LEMP stoga. Ako nešto nije krenulo prema očekivanjima, slobodno nas kontaktirajte pomoću obrasca u nastavku. Pitanja i prijedlozi su također dobrodošli.