Введение
LEMP программное обеспечение — это группа программ с открытым исходным кодом, которые обычно устанавливаются одновременно для обеспечения работы динамических веб-сайтов и веб-приложений на хост-сервере. Этот термин на самом деле является аббревиатурой, которая представляет собой Lоперационная система inux, с ENginx веб-сервер. Данные сайта хранятся в MySQL (или MariaDB), а динамический контент обрабатывается программой PHP.
В этом руководстве по LEMP мы будем работать с PHP 7.4, установленным на сервере CentOS 7, используя MySQL в качестве системы управления базами данных.
Требование
Прежде чем приступить к выполнению этой инструкции, на вашем сервере должна быть создана другая учетная запись пользователя, не являющегося пользователем root.
Шаг 1 — Установка Nginx
Мы будем использовать Nginx, высокопроизводительный веб-сервер, для обслуживания веб-страниц посетителями сайта. Чтобы получить самую последнюю версию Nginx, мы сначала установим репозиторий EPEL, который предлагает дополнительное программное обеспечение для операционной системы CentOS 7.
Выполните следующую команду, чтобы добавить репозиторий EPEL для CentOS 7:
$ sudo yum install epel-release
Поскольку мы используем команду sudo, эти команды выполняются с привилегиями root. Команда запросит у вас пароль обычного пользователя, чтобы подтвердить, что у вас есть право на выполнение команд с правами root. Когда появится запрос на подтверждение установки, нажмите Y
, чтобы продолжить.
Теперь, когда репозиторий EPEL установлен на вашем сервере, используйте следующую команду yum для установки Nginx:
$ sudo yum install nginx
После завершения установки запустите службу с помощью Nginx:
$ sudo systemctl start nginx
Вы можете сразу же проверить, что все работает правильно, обратившись к публичному IP-адресу вашего сервера в веб-браузере.
Navigate in a web browser to this URL : http://server_public_IP/
Для демонстрации и тестирования будет показана стандартная веб-страница CentOS 7 Nginx.
Страница похожа на эту :

Если вы перешли на эту страницу, значит, ваш веб-сервер был успешно развернут.
Выполните следующую команду, чтобы включить запуск Nginx при загрузке:
$ sudo systemctl enable nginx
Шаг 2 — Установка MySQL
Чтобы получить полное руководство, следуйте шагам из этого руководства: Установка MySQL на CentOS/Redhat 7/6 & Fedora 31/30.
Шаг 3 — Установка PHP
PHP — это часть нашей системы, которая будет обрабатывать код для отображения динамического контента. Он может выполнять скрипты, подключаться к нашим базам данных MySQL для получения информации, а затем предоставлять обработанные данные нашему веб-серверу для отображения.
Поскольку версия PHP, поставляемая по умолчанию на серверах CentOS 7, является устаревшей, нам потребуется установить сторонний репозиторий пакетов, чтобы загрузить и установить PHP 7+ на ваш сервер CentOS 7. Реми это известный репозиторий пакетов, который предлагает самые последние версии PHP для машин CentOS.
Выполните следующую команду, чтобы установить репозиторий Remi для CentOS 7:
$ sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
После завершения установки необходимо выполнить команду для включения репозитория, содержащего предпочтительную версию PHP. Чтобы убедиться, что релизы PHP 7+ доступны в репозитории Remi, выполните команду:
$ yum --disablerepo="*" --enablerepo="remi-safe" list php[7-9][0-9].x86_64
Вы увидите следующий результат:
Выходные данные :
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * remi-safe: mirrors.ukfast.co.uk Available Packages php70.x86_64 2.0-1.el7.remi remi-safe php71.x86_64 2.0-1.el7.remi remi-safe php72.x86_64 2.0-1.el7.remi remi-safe php73.x86_64 2.0-1.el7.remi remi-safe php74.x86_64 1.0-3.el7.remi remi-safe php80.x86_64 1.0-3.el7.remi remi-safe
В этом уроке мы установим PHP 7.4. Чтобы получить PHP 7.4, используйте следующую команду для активации соответствующего пакета Remi:
$ sudo yum-config-manager --enable remi-php74
Теперь мы можем использовать yum для установки PHP, как обычно. Следующая команда установит все пакеты, необходимые для работы PHP 7.4 в Nginx и подключения к базам данных на основе MySQL:
$ sudo yum install php php-mysqlnd php-fpm
Чтобы убедиться, что PHP установлен в предпочтительной для вас версии, выполните следующие действия:
$ php --version
Выход :
PHP 7.4.8 (cli) (built: Jul 9 2020 16:09:41) (NTS) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.21, Copyright (c), by Zend Technologies
Теперь PHP успешно установлен на вашей машине. После этого мы должны внести несколько изменений в стандартную установку. Чтобы облегчить редактирование файлов на CentOS, мы сначала установим nano, более удобный текстовый редактор, чем vi:
$ sudo yum install nano
Отредактируйте файл /etc/php-fpm.d/www.conf
файл конфигурации в nano
или в удобном для вас текстовом редакторе:
$ sudo nano /etc/php-fpm.d/www.conf
Теперь изучите директивы user и group. Если вы используете nano, вы можете искать эти фразы в текущем файле, используя CTRL + W
.
Выходные данные :
… user = apache group = apache …
Нам нужно изменить их на nginx
:
Выходные данные :
… user = nginx group = nginx …
Найдите listen
следующую директиву. php-fpm
будет прослушивать заданный хост и порт через TCP
по умолчанию. Мы хотим обновить эту опцию, чтобы она прослушивала локальный файл сокета, так как это увеличит общую скорость работы сервера.
Найдите директивы listen.owner
, listen.group
, и listen.mode
. По умолчанию эти строки закомментированы. Удалите предшествующую ;
символ в начале строки, чтобы снять комментарий. После этого установите владельца и группу в nginx
.
Измените строку, содержащую директиву listen, на:
listen = /var/run/php-fpm/php-fpm.sock; listen.owner = nginx listen.group = nginx listen.mode = 0660
После завершения редактирования сохраните и выйдите из файла.
Выполните следующую команду, чтобы включить и запустить php-fpm
службу:
$ sudo systemctl start php-fpm
$ sudo systemctl enable php-fpm
Шаг 4 — Настройка Nginx для обслуживания PHP-страниц
На данный момент у нас есть все необходимые компоненты. Осталось только указать Nginx использовать наш PHP-процессор для динамического контента.
Nginx предоставляет специальный каталог, где мы можем настроить каждый размещенный сайт как отдельный конфигурационный файл с помощью серверного блока. Это можно сравнить с виртуальными хостами Apache.
Чтобы продолжить, создайте новый файл в каталоге /etc/nginx/conf.d
каталоге:
$ sudo nano /etc/nginx/conf.d/default.conf
Скопируйте приведенный ниже блок определения сервера PHP в ваш конфигурационный файл и не забудьте изменить директиву server_name на доменное имя или IP-адрес вашего сервера:
server {
listen 80;
server_name server_public_IP;
root /usr/share/nginx/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Когда закончите редактирование, сохраните и выйдите из файла.
Наконец, перезапустите Nginx, чтобы применить изменения:
$ sudo systemctl restart nginx
Шаг 5 — Запустите PHP на Nginx.
Теперь мы создадим тестовую PHP-страницу, чтобы убедиться, что веб-сервер работает правильно.
В /usr/share/nginx/html
создайте новый PHP-файл с именем info.php
:
$ nano /usr/share/nginx/html/info.php
<?php
phpinfo();
Когда закончите, сохраните и выйдите из файла.
Теперь давайте обратимся к файлу info в папке :
http://server_public_IP/info.php
