Как установить Nginx 1.15, MariaDB 10 и PHP 7 на CentOS 7

В этой статье мы объясним, как установить стек LEMP (Linux, Nginx, MariaDB, PHP) вместе с PHP-FPM на серверах RHEL/CentOS 7/6 и Fedora 26-29 с использованием менеджера пакетов yum и dnf.

В процессе мы установим и включим репозитории Epel, Remi, Nginx и MariaDB, чтобы иметь возможность установить последние версии этих пакетов.

Читайте также: Установка Apache, MySQL 8 или MariaDB 10 и PHP 7 на CentOS 7

Шаг 1: Установка репозиториев EPEL и Remi

EPEL (Дополнительные пакеты для корпоративных Linux) – это репозиторий, предлагающий дополнительные пакеты программного обеспечения для дистрибутивов Linux на основе RHEL.

Remi – это репозиторий, в котором можно найти последние версии стека PHP (полнофункциональный) для установки в дистрибутивах Fedora и Enterprise Linux.

На 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: Установка репозиториев Nginx и MariaDB

Репозиторий Nginx необходим только в дистрибутивах RHEL и CentOS. Создайте файл с именем /etc/yum.repos.d/nginx.repo и добавьте в него следующие строки.

Для 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 

Для активации репозитория MariaDB создайте файл с именем /etc/yum.repos.d/mariadb.repo со следующим содержимым:

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

Шаг 4: Установка Nginx и MariaDB

Nginx (Engine X) – это открытый, надежный, легкий и высокопроизводительный веб-сервер, обратный прокси-сервер, а также почтовый прокси-сервер для протоколов HTTP, SMTP, POP3 и IMAP. Дополнительные сведения можно найти на сайте http://wiki.nginx.org/Overview.

MariaDB является форком хорошо известной MySQL, одной из самых популярных систем управления реляционными базами данных (СУБД) в мире. Он полностью разрабатывается сообществом и поэтому предназначен оставаться свободным программным обеспечением совместимым с GPL.

Для установки Nginx и MariaDB выполните следующие команды.

----------- 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: Установка PHP с использованием репозитория Remi

PHP (Препроцессор Гипертекста) – это свободный и открытый источник серверных скриптовых языков, лучшим образом подходящий для веб-разработки. Он может использоваться для создания динамических веб-страниц для веб-сайта и наиболее часто встречается в серверах *nix. Одна из преимуществ PHP заключается в том, что он легко расширяем за счет широкого различия модулей.

Для установки PHP вам сначала нужно активировать репозитарий Remi путем установки yum-utils, набор полезных программ для управления yum репозитариями и пакетами.

# yum install yum-utils

После установки вы можете использовать yum-config-manager, предоставляемый yum-utils, чтобы активировать репозитарий Remi в качестве базового для установки различных версий PHP, как показано.

Например, для установки версии PHP 7.x используется следующий комманд.

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

Далее мы будем устанавливать все следующие модули 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

Шаг 6: Остановка и отключение службы Apache

По умолчанию Apache и Nginx监听同一个端口 (TCP 80). Поэтому, если Apache установлен на вашем сервере, вам нужно остановить его и отключить / скрыть его (сильнее варианта отключения, который связывает службу с /dev/null), чтобы использовать Nginx, или вы можете удалить его, если вы не собираетесь использовать его больше.

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

Шаг 7: Запуск/Остановка Nginx, MariaDB и 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 

Шаг 8: Конфигурирование Nginx и PHP-FPM

Давайте теперь создадим структуру каталогов для вашего веб-сайта (виртуального хоста или блока сервера, как это называется в Nginx) в каталоге /srv/www/. В этом примере мы будем использовать www.tecmint.com, но вы можете выбрать другое доменное имя и основной каталог, если хотите.

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

Шаг 9: Настройка каталогов виртуальных хостов Nginx

Как вы знаете, возможность запуска нескольких сайтов с одной и той же машины – одна из отличительных особенностей основных веб-серверов. Давайте теперь перейдем к созданию каталогов для хранения наших блоков сервера (известных как виртуальные хосты в Apache) в каталоге /etc/nginx.

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

Следующая строка кода, которую необходимо вставить перед закрытием блока http в файле /etc/nginx/nginx.conf, обеспечит учет конфигурационных файлов в каталоге /etc/nginx/sites-enabled при запуске Nginx:

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

Чтобы создать блок сервера для tecmint.com, добавьте следующие строки кода в файл /etc/nginx/sites-available/tecmint (этот файл будет создан, когда вы введете полный путь для запуска вашего предпочтительного текстового редактора). Это базовый файл конфигурации виртуального хоста.

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

Процесс “активации” виртуального хоста состоит в создании символической ссылки от определения виртуального хоста tecmint к /etc/nginx/sites-enabled.

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

Чтобы фактически применить внесенные нами изменения, нам теперь нужно перезапустить Nginx. Иногда полезно проверить файлы конфигурации на наличие ошибок синтаксиса перед этим:

# nginx -t 
# systemctl restart nginx 
# systemctl status nginx 
Restart Nginx and Verify Status

Для доступа к вашему вновь созданному виртуальному хосту вам необходимо добавить следующую строку в файл /etc/hosts в качестве базового метода разрешения имени домена.

192.168.0.18	www.tecmint.com tecmint.com 

Шаг 10: Тестирование Nginx, MySQL, PHP и PHP-FPM

Давайте придерживаться классического способа тестирования PHP. Создайте файл с именем test.php в каталоге /srv/www/tecmint/public_html/ и добавьте в него следующие строки кода.

Функция phpinfo() показывает большое количество информации о текущей установке PHP:

<?php 
	phpinfo(); 
?> 

Теперь направьте свой веб-браузер по адресу http://tecmint/test.php и проверьте наличие установленных модулей и дополнительного программного обеспечения:

Поздравляем! Теперь у вас есть рабочая установка стека LEMP. Если что-то пошло не так, не стесняйтесь связаться с нами, используя форму ниже. Вопросы и предложения также приветствуются.

Source:
https://www.tecmint.com/install-nginx-mariadb-php-rhel-centos-fedora/