Поиск по сайту:

Как установить 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 (Дополнительные пакеты для Enterprise 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

В Федоре 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 и добавьте в него следующие строки.

Для РХЭЛ 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. Установка Ngnix и MariaDB

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

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

Чтобы установить Ngnix и 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/. В этом примере мы будем использовать linux-console.net, но вы можете выбрать другой домен и основной каталог, если хотите.

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/*; 

Чтобы создать блок сервера для linux-console.net, добавьте следующие строки кода в /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 

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

192.168.0.18	linux-console.net linux-console.net 

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

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

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

<?php 
	phpinfo(); 
?> 

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

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