Следуя этим простым инструкциям, вы сможете установить стек LEMP на Debian 9 (Stretch). Буду следовать «буквенному подходу», очевидно, пропуская букву «L» для Linux: имея работающую установку Debian 9, вы уже выполнили это требование.
Начнем с простой установки в Debian 9, используя apt-get для установки необходимых пакетов. Очевидно, что вместо этого можно использовать aptitude.
'E' часть стека: nginx
Что такое nginx? Nginx, как и Apache, является http-сервером. По сравнению с последним он считается более легким. Хотя apache имеет возможность обрабатывать многие интерпретируемые языки «напрямую», nginx фокусируется на статическом содержимом, обеспечивая управление динамическими языками на отдельном программном обеспечении.
Давайте обновим репозитории и установим nginx на нашу машину Debian. Для этого пропишем:
# apt-get update && apt-get install nginx
Через несколько секунд будет установлен nginx. Следующим шагом является запуск службы:
# systemctl start nginx
Вы можете включить автоматический запуск службы во время загрузки:
# systemctl enable nginx
Если вы установили веб-сервер на том же компьютере, который использовался в качестве клиента, чтобы убедиться, что он работает, вам просто нужно указать браузер localhost, в противном случае вам придется использовать определенный IP-адрес сервера.
Так как я запускаю Debian на виртуальной машине kvm, мне пришлось указать браузеру ip сервера. Если вы не знаете, что такое IP-адрес сервера, вы можете просто найти его с помощью команд ip или ifconfig (последняя считается устаревшей, тем не менее она хорошо выполняет свою работу). Использование ip запустите:
# ip address show
Приведенная выше команда выдаст вывод, подобный следующему:
Адрес 192.168.122.70. Чтобы получить доступ к серверу извне, вам также необходимо настроить брандмауэр, чтобы разрешить входящий трафик через порт 80. Например, если вы используете firewalld, вы можете просто добавить службу http в соответствующую зону (по умолчанию «публичная» зона)
# firewall-cmd --zone=public --add-service=http
Вы также можете добавить --permanentопцию в команду выше, чтобы сделать изменение постоянным. Давайте нацелим браузер на адрес сервера и посмотрим, что произойдет:
Страница приветствия nginx показывает, что веб-сервер успешно установлен и работает правильно.
Теперь база данных: M для MariaDB
Практически во всех основных дистрибутивах mysql был заменен на MariaDB, полностью совместимый и более функциональный форк, созданный при приобретении mysql Oracle:
# apt-get install mariadb-server mariadb-client
Эта команда установит пакеты mariadb-server и mariadb-client (вместе со всеми необходимыми зависимостями).
Пакет mariadb-client содержит утилиты, необходимые для связи с сервером.
Модуль mariadb.service будет запущен автоматически, и на этом этапе у вас уже должен быть запущен mariadb.
Тем не менее, мы еще не закончили: чтобы установить пароль root для mariadb и настроить некоторые параметры, вы должны запустить следующий скрипт:
# mysql_secure_installation
Он проведет вас к серии шагов, чтобы привести mariadb в согласованное состояние.
«Р» для PHP
Версия php по умолчанию для Debian stretch - 7.0: нам нужно установить следующие пакеты:
# apt-get install php-fpm php-mysql
Демон php7.0-fpm будет запущен автоматически. Как мы уже говорили ранее, nginx использует внешнее программное обеспечение для управления динамическим содержимым и php-fpm является FastCGI Process Manager, на который nginx будет перенаправлять запросы php. Чтобы настроить nginx для работы php-fpm, мы должны отредактировать default конфигурацию сайта.
Debian хранит конфигурацию для каждого сайта («серверные блоки» в терминологии nginx - своего рода эквивалент apache VirtualHosts) в двух папках: /etc/nginx/sites-available и /etc/nginx/sites-enabled. В первом каталоге у нас есть конфигурации, которые связаны с последним, когда сайт включен. Поэтому конфигурация сайта по умолчанию доступна по адресу /etc/nginx/sites-available/default. Давайте отредактируем файл:
Отредактируйте соответствующую часть файла так, чтобы она отражала вышеуказанную конфигурацию. Удаляя комментарии в приведенных выше строках, мы в основном сообщаем nginx, что мы хотим использовать php-fpm
, и используем соответствующий сокет unix.
Теперь нам нужно протестировать конфигурацию с помощью простого php-скрипта, но сначала мы должны перезапустить nginx, чтобы изменения, которые мы сделали, были эффективными:
# systemctl restart nginx
Корневой каталог документа для стандартного серверного блока в Debian таков /var/www/html
: мы создадим простой сценарий php, чтобы отобразить некоторую информацию и убедиться, что все работает правильно:
# echo "<?php phpinfo(); ?>" > /var/www/html/infopage.php
Чтобы убедиться, что скрипт работает, перейдите в браузере к его местоположению. К примеру так:
Это итоговая страница