Как установить LEMP (Linux, Nginx, MariaDB, PHP-FPM) на Debian 9 Stretch

Как установить LEMP (Linux, Nginx, MariaDB, PHP-FPM) на Debian 9 Stretch

Новости

Поскольку в Debian работает большой процент веб-серверов по всему миру, в этой статье мы расскажем, как установить LEMP (Linux + Nginx + MariaDB + PHP-FPM) стек в Debian 9 Stretch в качестве альтернативы LAMP.

Кроме того, мы покажем, как выполнить минимальную конфигурацию Nginx / PHP-FPM, чтобы даже не очень опытные системные администраторы могли настраивать новые веб-серверы для работы с динамическими страницами.

Чтобы сделать это, мы будем использовать последние обновления официальных репозиториев дистрибутива. Предполагается, что вы установили Debian 9 на пустое железо, виртуальную машину, VPS или обновили Jessie.

 

Установка LEMP в Debian 9 Stretch

Возможно, вам интересно, почему мы упоминали PHP-FPM вместо PHP как часть стека LEMP. В отличие от других веб-серверов, Nginx не предоставляет встроенную поддержку PHP.

По этой причине PHP-FPM (Fast Process Manager) используется для обработки запросов на PHP-страницы. Вы можете узнать больше о PHP-FPM на официальном сайте PHP.

Версия по умолчанию представлена ​​в репозиториях Debian php7.0-fpm. Как вы можете догадаться, основываясь на имени пакета, эта версия может обрабатывать запросы на странице, включая код PHP 7.

ПРИМЕЧАНИЕ. Если ранее был установлен Apache, перед продолжением убедитесь, что он остановлен и отключен.

С учетом сказанного, давайте установим компоненты стека LEMP следующим образом:

# aptitude update
# aptitude install nginx mariadb-server mariadb-client php-mysqli php7.0-fpm

 

Когда установка будет завершена, убедитесь, что Nginx и PHP-FPM запущены и включены для запуска при загрузке:

# systemctl status nginx php7.0-fpm

 

Если видите, что какая-то из служб не работает, тогда выполните:

# systemctl start nginx php7.0-fpm
# systemctl enable nginx php7.0-fpm

 

Как и в случае с установкой MariaDB или MySQL, важно запустить mysql_secure_installation, чтобы выполнить минимальную конфигурацию безопасности и установить пароль для учетной записи root.

# mysql_secure_installation

 

Настройка Nginx для использования PHP-FPM на Debian 9

Основным файлом конфигурации Nginx является /etc/nginx/sites-available/default, где нам нужно внести следующие изменения внутри блока сервера:

  • Убедитесь, что блок местоположения, который обрабатывает запросы PHP, включен, за исключением того, где директива fastcgi_pass указывает на UNIX сокет.
  • Добавьте index.php после директивы index, чтобы указать, что если он найден, он должен быть подан по умолчанию перед index.html или другими файлами.
  • Добавьте директиву server_name, указывающую на IP-адрес или имя хоста вашего сервера. Это будет 192.168.0.35 в нашем случае.
  • Кроме того, убедитесь, что директива root указывает на место, где будут храниться ваши .php-файлы (/var/www/html по умолчанию).

Когда вы закончите, вы можете использовать следующую команду для проверки файла конфигурации на наличие ошибок.

# nginx -t 

 

На этом этапе ваш /etc/nginx/sites-available/default должен выглядеть следующим образом, где номера, относящиеся к конфигурации, относятся к приведенному выше списку:

# grep -Ev '#' /etc/nginx/sites-available/default

 

Как установить LEMP (Linux, Nginx, MariaDB, PHP-FPM) на Debian 9 Stretch

 

Тестирование Nginx и PHP-FPM на Debian 9

Чтобы убедиться, что мы теперь используем Nginx в качестве нашего веб-сервера, давайте создадим файл с именем info.php внутри /var/www/html со следующим содержимым:

<?php
phpinfo();
?>

 

Затем перейдите на страницу http://192.168.0.35/info.php и проверьте верхнюю часть страницы, где вы должны увидеть это:

Testing-Nginx-and-PHP-FPM-on-Debian-9

Наконец, давайте укажем наш путь к файлу booksandauthors.php, который мы создадим в следующем разделе.

Тестирование соединения базы данных с PHP Script

Следующий скрипт PHP сначала подключается к базе данных и извлекает записи, соответствующие запросу. Если возникает ошибка, будет отображаться сообщение c подсказкой о том, что не так.

Сохраните следующий скрипт в виде booksandauthors.php в /var/www/html:

<?php
// Show PHP version
echo "Current PHP version: " . phpversion() . "\r\n";
// Connect to database
$connection = mysqli_connect("localhost","librarian","Today123","LibraryDB") or die("Error " . mysqli_error($connection));
// SQL query
$sql = "SELECT A.ISBN, A.Title,
A.Year, B.FullName
FROM BooksTBL A JOIN AuthorsTBL B
ON A.AuthorID = B.AuthorID;";
$result = mysqli_query($connection, $sql) or die("Error " . mysqli_error($connection));
// Populate an array with the query results
$libraryarray = array();
while($row = mysqli_fetch_assoc($result))
{
$libraryarray[] = $row;
}
// Convert to JSON
echo json_encode($libraryarray);
?>

 

Измените право собственности на www-data и добавьте соответствующие разрешения:

# chown www-data: www-data /var/www/html/booksandauthors.php
# chmod 600 /var/www/html/booksandauthors.php

 

Теперь, откройте веб-браузер и укажите ему URL-адрес, где находится скрипт.

http://192.168.0.35/booksandauthors.php

 

 

Как видно со следующего изображении, этот файл теперь обслуживается Nginx:

Как установить LEMP (Linux, Nginx, MariaDB, PHP-FPM) на Debian 9 Stretch

ПРИМЕЧАНИЕ. Если вы заметили, что Nginx открывает файлы .php в качестве загрузок, а не выполняет их, очистите кеш браузера или попробуйте другой браузер. В частности, если вы используете Chrome, вы можете протестировать его с помощью режима инкогнито.

 

Итог

В этой статье мы объяснили, как установить и настроить Nginx для обслуживания динамических страниц .php. Важно отметить, что после этой начальной настройки есть настройки, которые необходимо выполнить для защиты веб-сервера.

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University.

 

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
Новости

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Самое читаемое
Меню