В этой статье мы объясним, как установить стек 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/*;

Чтобы создать блок сервера для 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

Для доступа к вашему вновь созданному виртуальному хосту вам необходимо добавить следующую строку в файл /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/