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


U ovom članku ćemo objasniti kako instalirati LEMP stog (Linux, Nginx, MariaDB, PHP) zajedno sa PHP-FPM na RHEL/CentOS 7/6 i Fedora 26-29 serverima koristeći yum i dnf paket menadžer.

Tokom procesa instalirat ćemo i omogućiti Epel, Remi, Nginx i MariaDB spremišta kako bismo mogli instalirajte najnovije verzije ovih paketa.

Pročitajte također: Instalirajte Apache, MySQL 8 ili MariaDB 10 i PHP 7 na CentOS 7

Korak 1: Instaliranje EPEL-a i Remi repozitorija

EPEL (Extra Packages for Enterprise Linux) je repozitorijum baziran na zajednici koji nudi dodatne softverske pakete za RHEL bazirane Linux distribucije.

Remi je spremište u kojem možete pronaći najnovije verzije PHP steka (puna funkcija) za instalaciju u Fedora i Enterprise Linux distribucijama.

Na 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

Na 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

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

Korak 2: Instaliranje Nginx i MariaDB spremišta

Nginx spremište je potrebno samo u RHEL i CentOS distribucijama. Kreirajte datoteku pod nazivom /etc/yum.repos.d/nginx.repo i dodajte joj sljedeće redove.

Za RHEL 7/6:

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

Za CentOS 7/6:

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

Da omogućite MariaDB spremište, kreirajte datoteku pod nazivom /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-a

Nginx (Engine X) je open source, robustan, lagan i web server visokih performansi, obrnuti proxy server i također mail proxy server za HTTP, SMTP, POP3 i IMAP protokole. Za više detalja, posjetite http://wiki.nginx.org/Overview.

MariaDB je fork dobro poznatog MySQL-a, jednog od najpopularnijih svjetskih sistema za upravljanje relacijskim bazama podataka (RDBMS). U potpunosti je razvijen od strane zajednice i kao takav treba da ostane FOSS i kompatibilan sa GPL-om.

Da instalirate Ngnix i MariaDB, pokrenite sljedeće komande.


----------- 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: Instaliranje PHP-a pomoću Remi repozitorija

PHP (Hypertext Preprocessor) je besplatni skriptni jezik otvorenog koda na strani servera koji je najprikladniji za web razvoj. Može se koristiti za izradu dinamičkih web stranica za web stranicu i najčešće se nalazi na *nix serverima. Jedna od prednosti PHP-a je da se lako može proširiti upotrebom širokog spektra modula.

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

yum install yum-utils

Jednom instaliran, možete koristiti yum-config-manager koji obezbeđuje yum-utils da omogućite Remi spremište kao podrazumevano spremište za instaliranje različitih PHP verzija kao što je prikazano.

Na primjer, da instalirate PHP 7.x verziju, koristite 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]

Zatim ćemo instalirati sve ove sledeć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 Apache usluge

Podrazumevano, Apache i Nginx slušaju na istom portu (TCP 80). Iz tog razloga, ako je Apache instaliran na vašem serveru, morate ga zaustaviti i onemogućiti/maskirati (jača verzija onemogućavanja koja povezuje uslugu sa /dev/null) kako biste koristili Nginx , ili ga možete ukloniti ako ga više ne planirate koristiti.

systemctl stop httpd 
systemctl disable httpd 
or 
systemctl mask httpd 

Korak 7: Pokretanje/zaustavljanje Nginxa, MariaDB-a i PHP-FPM-a

----------- 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: Konfigurisanje Nginx-a i PHP-FPM-a

Hajde sada da kreiramo strukturu direktorijuma za vašu veb lokaciju (virtuelni host ili serverski blok kako se to zove u Nginxu) pod /srv/www/. U ovom primjeru koristit ćemo 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 Nginx virtualnih host direktorija

Kao što znate, mogućnost pokretanja nekoliko stranica sa iste mašine jedna je od karakterističnih karakteristika glavnih web servera. Nastavimo sada s kreiranjem direktorija za pohranjivanje blokova naših servera (poznatih kao virtualni hostovi u Apacheu) pod /etc/nginx.

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

Sljedeći red koda, koji se mora umetnuti prije zatvaranja http bloka u /etc/nginx/nginx.conf, osigurat će da konfiguracijske datoteke unutar /etc/nginx/sites-enabled direktorij će se uzeti u obzir kada je Nginx pokrenut:

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

Da kreirate blok servera za linux-console.net, dodajte sljedeće linije koda u /etc/nginx/sites-available/tecmint (ova datoteka će biti kreirana kada unesete punu putanju za pokretanje željenog uređivača 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 “aktivacije” virtuelnog hosta sastoji se od kreiranja simboličke veze od definicije tecmint virtuelnog hosta do /etc/nginx/sites-enabled<.

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

Da bismo stvarno primijenili promjene koje smo radili, sada moramo ponovo pokrenuti Nginx. Ponekad je korisno provjeriti u konfiguracijskim datotekama sintaksičke greške prije nego što to učinite:

nginx -t 
systemctl restart nginx 
systemctl status nginx 

Da biste pristupili svom novokreiranom virtuelnom hostu, morate dodati sljedeći red u /etc/hosts kao osnovni metod rješavanja imena domene.

192.168.0.18	linux-console.net linux-console.net 

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

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

Funkcija phpinfo() pokazuje mnogo informacija o trenutnoj PHP instalaciji:

<?php 
	phpinfo(); 
?> 

Sada usmjerite svoj web pretraživač na http://tecmint/test.php i provjerite prisutnost instaliranih modula i dodatnog softvera:

Čestitamo! Sada imate radnu instalaciju LEMP steka. Ako nešto nije išlo kako ste očekivali, slobodno nas kontaktirajte putem obrasca ispod. Pitanja i prijedlozi su također dobrodošli.