Vyhledávání na webu

Jak nainstalovat Nginx 1.15, MariaDB 10 a PHP 7 na CentOS 7


V tomto článku vysvětlíme, jak nainstalovat zásobník LEMP (Linux, Nginx, MariaDB, PHP) spolu s PHP-FPM na serverech RHEL/CentOS 7/6 a Fedora 26-29 pomocí balíčku yum a dnf manažer.

Během procesu nainstalujeme a povolíme úložiště Epel, Remi, Nginx a MariaDB, abychom mohli nainstalovat nejnovější verze těchto balíčků.

Čtěte také: Nainstalujte Apache, MySQL 8 nebo MariaDB 10 a PHP 7 na CentOS 7

Krok 1: Instalace EPEL a Remi Repository

EPEL (Extra Packages for Enterprise Linux) je komunitní úložiště, které nabízí doplňkové softwarové balíčky pro distribuce Linuxu založené na RHEL.

Remi je úložiště, kde můžete najít nejnovější verze zásobníku PHP (plné funkce) pro instalaci v distribucích Fedora a Enterprise Linux.

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 Fedoře 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]

Krok 2: Instalace úložišť Nginx a MariaDB

Úložiště Nginx je potřeba pouze v distribucích RHEL a CentOS. Vytvořte soubor s názvem /etc/yum.repos.d/nginx.repo a přidejte do něj následující řádky.

Pro RHEL 7/6:

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

Pro CentOS 7/6:

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

Chcete-li povolit úložiště MariaDB, vytvořte soubor s názvem /etc/yum.repos.d/mariadb.repo s následujícím obsahem:

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

Krok 4: Instalace Ngnix a MariaDB

Nginx (Engine X) je open source, robustní, lehký a vysoce výkonný webový server, reverzní proxy server a také poštovní proxy server pro protokoly HTTP, SMTP, POP3 a IMAP. Další podrobnosti najdete na http://wiki.nginx.org/Overview.

MariaDB je fork známého MySQL, jednoho z celosvětově nejpopulárnějších systémů pro správu relačních databází (RDBMS). Je zcela vyvinut komunitou a jako takový má zůstat FOSS a kompatibilní s GPL.

Chcete-li nainstalovat Ngnix a MariaDB, spusťte následující příkazy.


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

Krok 3: Instalace PHP pomocí Remi Repository

PHP (Hypertext Preprocessor) je bezplatný skriptovací jazyk s otevřeným zdrojovým kódem na straně serveru, který se nejlépe hodí pro vývoj webových aplikací. Lze jej použít k vytváření dynamických webových stránek pro web a nejčastěji se nachází na serverech *nix. Jednou z výhod PHP je, že je snadno rozšiřitelné pomocí široké škály modulů.

Chcete-li nainstalovat PHP, musíte nejprve povolit úložiště Remi instalací yum-utils, kolekce užitečných programů pro správu úložišť a balíčků yum.

yum install yum-utils

Po instalaci můžete použít yum-config-manager od yum-utils a aktivovat úložiště Remi jako výchozí úložiště pro instalaci různých verzí PHP, jak je znázorněno.

Chcete-li například nainstalovat verzi PHP 7.x, použijte následující příkaz.

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

Dále nainstalujeme všechny následující moduly PHP.

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

Krok 6: Zastavení a zakázání služby Apache

Ve výchozím nastavení Apache a Nginx naslouchají na stejném portu (TCP 80). Z tohoto důvodu, pokud je na vašem serveru nainstalován Apache, musíte jej zastavit a zakázat/maskovat (silnější verze zákazu, která spojuje službu s /dev/null), abyste mohli používat Nginx , nebo jej můžete odebrat, pokud jej již neplánujete používat.

systemctl stop httpd 
systemctl disable httpd 
or 
systemctl mask httpd 

Krok 7: Spuštění/zastavení Nginx, MariaDB a 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 

Krok 8: Konfigurace Nginx a PHP-FPM

Nyní vytvoříme adresářovou strukturu pro váš web (virtuální hostitel nebo blok serveru, jak se nazývá v Nginx) pod /srv/www/. V tomto příkladu použijeme linux-console.net, ale pokud chcete, můžete si vybrat jinou doménu a hlavní adresář.

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

Krok 9: Konfigurace virtuálních hostitelských adresářů Nginx

Jak víte, schopnost provozovat několik stránek na stejném počítači je jednou z charakteristických vlastností velkých webových serverů. Nyní přistoupíme k vytvoření adresářů pro uložení bloků našich serverů (známých jako virtuální hostitelé v Apache) pod /etc/nginx.

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

Následující řádek kódu, který je nutné vložit před uzavřením bloku http v /etc/nginx/nginx.conf, zajistí, že konfigurační soubory uvnitř /etc/nginx/sites-enabled adresář bude vzat v úvahu, když je spuštěn Nginx:

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

Chcete-li vytvořit blok serveru pro linux-console.net, přidejte následující řádky kódu do /etc/nginx/sites-available/tecmint (tento soubor bude vytvořen, když zadáte úplnou cestu ke spuštění preferovaného textového editoru). Toto je základní konfigurační soubor virtuálního hostitele.

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 „aktivace“ virtuálního hostitele spočívá ve vytvoření symbolického odkazu z definice virtuálního hostitele tecmint na /etc/nginx/sites-enabled<.

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

Abychom skutečně použili změny, které jsme dělali, musíme nyní restartovat Nginx. Před tím je někdy užitečné zkontrolovat konfigurační soubory na chyby syntaxe:

nginx -t 
systemctl restart nginx 
systemctl status nginx 

Chcete-li získat přístup k nově vytvořenému virtuálnímu hostiteli, musíte do /etc/hosts přidat následující řádek jako základní metodu překladu názvu domény.

192.168.0.18	linux-console.net linux-console.net 

Krok 10: Testování Nginx, MySQL, PHP a PHP-FPM

Zůstaňme u klasického způsobu testování PHP. Vytvořte soubor s názvem test.php pod /srv/www/tecmint/public_html/ a přidejte do něj následující řádky kódu.

Funkce phpinfo() zobrazuje velké množství informací o aktuální instalaci PHP:

<?php 
	phpinfo(); 
?> 

Nyní nasměrujte svůj webový prohlížeč na http://tecmint/test.php a zkontrolujte přítomnost nainstalovaných modulů a dalšího softwaru:

Gratulujeme! Nyní máte funkční instalaci zásobníku LEMP. Pokud něco nešlo podle očekávání, neváhejte nás kontaktovat pomocí formuláře níže. Dotazy a návrhy jsou také vítány.