Стек «LEMP» представляет собой смесь программного обеспечения с открытым исходным кодом, которое обычно устанавливается на сервере Linux для развертывания динамических приложений. Этот термин является аббревиатурой, обозначающей операционную систему Linux, веб-сервер Nginx, базу данных MariaDB и PHP-интерпритатор.
Читайте также: Как установить LAMP на сервере Debian 10.
Хотя этот стек «LEMP» обычно содержит MySQL в качестве системы управления базами данных, некоторые дистрибутивы Linux, такие как Debian, используют MariaDB в качестве замены MySQL.
Требования
Как установить минимальный сервер Debian 10 (Buster)
В этой статье мы расскажем вам, как установить и настроить среду LEMP на сервере Debian 10, используя MariaDB в качестве платформы управления базами данных.
Установка веб-сервера Nginx в Debian 10
Nginx — это кроссплатформенный, открытый, легкий, но мощный и простой в настройке HTTP, почтовый прокси-сервер и универсальный TCP/UDP-прокси-сервер с модульной архитектурой.
Некоторые из его основных функций включают обслуживание статических и индексных файлов; ускоренная поддержка с кэшированием серверов FastCGI, uwsgi, SCGI и Memcached, балансировка нагрузки и отказоустойчивость, поддержка SSL и TLS SNI, поддержка HTTP/2 с взвешенной и основанной на зависимостях приоритетностью.
Чтобы установить пакет Nginx, используйте менеджер пакетов Debian apt, как показано.
# apt update
# apt install nginx
После завершения установки Nginx установщик активирует systemd, чтобы на данный момент запустить службу Nginx и включит ее автоматический запуск при загрузке системы. Вы можете проверить состояние Nginx, используя следующую команду systemctl.
# systemctl status nginx
Вы также можете использовать следующие важные команды для запуска, остановки и перезагрузки конфигурации службы Nginx в systemd.
# systemctl start nginx
# systemctl restart nginx
# systemctl stop nginx
# systemctl reload nginx
# systemctl status nginx
Далее, если у вас работает брандмауэр UFW (он обычно отключен по умолчанию), вам нужно открыть порты 80 (HTTP) и 443 (HTTPS), чтобы разрешить входящий трафик на Nginx.
# ufw allow 80
# ufw allow 443
# ufw status
Hа этом этапе вам необходимо проверить, правильно ли установлен Nginx, работает ли он и может ли обслуживать веб-страницы. Для этого откройте веб-браузер и укажите следующий URL-адрес для доступа к веб-странице Nginx Debian по умолчанию.
http://SERVER_IP/
OR
http://localhost/
Установка MariaDB в Debian 10
Затем вам необходимо установить систему баз данных, чтобы иметь возможность хранить данные и управлять ими для вашего веб-сайта или веб-приложения. Debian 10 поддерживает MariaDB по умолчанию, как замену MySQL.
Чтобы установить MariaDB, выполните следующую команду.
# apt install mariadb-server
Затем проверьте состояние службы MariaDB, поскольку она автоматически запускается системой systemd и позволяет запускаться при загрузке системы, чтобы убедиться, что она запущена и работает, используйте следующую команду.
# systemctl status mariadb
Для управления (запуска, перезапуска, остановки и перезагрузки) службы MariaDB в systemd вы можете использовать следующую команду.
# systemctl start mariadb
# systemctl restart mariadb
# systemctl stop mariadb
# systemctl reload mariadb
Далее, развертывание MariaDB будет небезопасным по умолчанию. Вам необходимо запустить сценарий оболочки, который поставляется вместе с пакетом, чтобы позволить вам повысить безопасность базы данных.
# mysql_secure_installation
После запуска скрипта вам понадобится выполнить ряд следующих вопросов, чтобы изменить настройки по умолчанию для установки MariaDB, как показано на следующем снимке экрана.
Установка PHP-FPM (Fast Process Manager) в Debian 10
В отличие от Apache и других веб-серверов, Nginx не обеспечивает встроенную поддержку PHP, поскольку использует PHP-FPM для обработки запросов на страницы PHP. PHP-FPM — это альтернативный демон FastCGI для PHP, который позволяет веб-сайту обрабатывать большие нагрузки, используя рабочие процессы для обработки запросов.
Чтобы установить PHP-FPM версии 7.3 и модуль PHP для связи с системой баз данных MariaDB/MySQL, выполните следующую команду.
# apt install php-fpm php-mysqli
После установки PHP-FPM установщик активирует systemd, чтобы запустить службу PHP-FPM и разрешить ее автоматический запуск при загрузке системы. Чтобы проверить, работает ли он, выполните следующую команду.
# systemctl status php-fpm
Вы также можете запустить, перезапустить, остановить и перезагрузить конфигурацию службы PHP-FPM в systemd следующим образом.
# systemctl start php-fpm
# systemctl restart php-fpm
# systemctl stop php-fpm
# systemctl reload php-fpm
# systemctl status php-fpm
Затем вам нужно защитить PHP-FPM, внеся некоторые изменения в файл конфигурации /etc/php/7.3/fpm/php.ini следующим образом.
# vi /etc/php/7.3/fpm/php.ini
Найдите; cgi.fix_pathinfo=1 раскомментируйте его, удалив; символ в начале, установите его значение равным 0. Это препятствует тому, чтобы Nginx позволял файлам не-PHP выполняться как PHP.
cgi.fix_pathinfo=0
По умолчанию PHP-FPM настроен на прослушивание сокета UNIX, /run/php/php7.3-fpm.sock, как определено в файле конфигурации /etc/php/7.3/fpm/pool.d/www.conf. Вы должны настроить весь свой блок сервера (или виртуальные хосты) для использования этого сокета, если они должны обрабатывать и обслуживать страницы PHP.
Вы можете использовать файл конфигурации блока сервера Nginx по умолчанию /etc/nginx/sites-available/default, чтобы протестировать его.
# vi /etc/nginx/sites-available/default
Найдите следующий раздел и раскомментируйте его, чтобы передать PHP-скрипты серверу FastCGI, как показано на скриншоте.
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}
Затем проверьте правильность структуры конфигурации Nginx, используя следующую команду.
# nginx -t
Если конфигурация Nginx в порядке, чтобы применить недавно сделанные изменения, перезапустите службы php7.3-fpm и nginx следующим образом.
# systemctl restart php7.2-fpm
# systemctl restart nginx
Тестирование обработки PHP-FPM на Nginx
После настройки PHP-FPM и Nginx для совместной работы необходимо проверить, могут ли две службы обрабатывать и обслуживать страницы PHP для клиентов. Для этого создайте простой PHP-скрипт в вашем веб-документе DocumentRoot следующим образом.
# echo “<?php phpinfo(); ?>” | tee /var/www/html/info.php
Наконец, откройте браузер и введите следующий адрес, чтобы увидеть конфигурации PHP в системе, сгенерированные функцией phpinfo().
http://SERVER_IP/info.php
OR
http://localhost/info.php
Вывод
В этой статье мы показали, как установить и настроить стек LEMP в Debian 10.
Спасибо за уделенное время на прочтение статьи!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОМ.
Курсы Cisco и Linux с трудоустройством!
- Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
- Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
- Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
- Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
- Если хотите индивидуальный график — обсудим и осуществим.
- Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- отредактировать резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
1 комментарий. Оставить новый
# systemctl status php7.2-fpm (или 7.0 или 7.3 в зависимости от минора)