Developer Advocate
В этом кратком руководстве мы расскажем об установке комплекта LEMP на сервере под управлением Ubuntu 20.04.
Более подробную информацию с разъяснениями каждого шага можно найти в обучающем модуле «Установка комплекта Linux, Nginx, MySQL, PHP (LEMP) на сервере Ubuntu 20.0».
Для выполнения этого руководства вам потребуется доступ к серверу Ubuntu 20.04 с пользователем с правами sudo
.
Обновите кэш диспетчера пакетов и установите Nginx с помощью следующей команды:
- sudo apt update
- sudo apt install nginx
После завершения установки вам нужно будет изменить настройки брандмауэра, чтобы разрешить трафик HTTP на вашем сервере. Запустите следующую команду, чтобы разрешить внешний доступ к порту 80
(HTTP):
- sudo ufw allow in "Nginx"
После добавления нового правила брандмауэра вы можете проверить, запущен ли сервер, запросив доступ к публичному IP-адресу или доменному имени сервера из вашего веб-браузера. Страница будет выглядеть следующим образом:
Теперь мы установим MySQL, популярную СУБД, используемую в средах PHP.
Используйте apt
для получения и установки этого программного обеспечения:
- sudo apt install mysql-server
После завершения установки рекомендуется запустить скрипт безопасности, входящий в комплект MySQL. Для запуска интерактивного скрипта введите следующую команду:
- sudo mysql_secure_installation
Скрипт запросит подтверждение настройки плагина VALIDATE PASSWORD PLUGIN
. Выберите Y
для активации или любой другой вариант, чтобы продолжить без активации этой функции. Если вы выберете ответ «yes» («Да»), вам будет предложено выбрать уровень подтверждения паролем.
Затем сервер попросит вас выбрать и подтвердить пароль для пользователя root СУБД MySQL. Хотя в MySQL метод аутентификации пользователя root по умолчанию не требует использования пароля даже при его наличии, задайте надежный пароль для обеспечения дополнительной безопасности.
Для всех остальных вопросов нужно выбирать Y
и нажимать ENTER
в каждом диалоге.
Примечание. На момент написания этого руководства родная библиотека MySQL PHP mysqlnd
не поддерживает caching_sha2_authentication
, метод аутентификации MySQL 8 по умолчанию. Поэтому при создании пользователей базы данных для приложений PHP на MySQL 8 вам нужно убедиться, что вместо этого пароля они настроены на использование mysql_native_password
. Подробную информацию можно найти в описании шага 6 подробного руководства по LEMP в Ubuntu 20.04.
Для установки пакетов php-fpm
и php-mysql
воспользуйтесь следующей командой:
- sudo apt install php-fpm php-mysql
В этом руководстве мы настроим домен your_domain, но вы должны заменить это имя собственным доменным именем.
В Nginx на Ubuntu 20.04 по умолчанию включен один серверный блок, настроенный для вывода документов из директории /var/www/html
. Хотя это хорошо работает для отдельного сайта, при размещении нескольких сайтов это может доставлять неудобства. Вместо изменения /var/www/html
мы создадим внутри /var/www
структуру директорий для нашего сайта your_domain, оставив /var/www/html
в качестве директории по умолчанию для вывода в случае, если запросу клиента не соответствуют никакие другие сайты.
Создайте корневую веб-директорию для your_domain следующим образом:
- sudo mkdir /var/www/your_domain
Затем необходимо назначить права владения для директории с помощью переменной среды $USER, которая будет использоваться для текущего системного пользователя:
- sudo chown -R $USER:$USER /var/www/your_domain
После этого откройте новый файл конфигурации в директории Nginx sites-available
с помощью любого редактора командной строки. Мы будем использовать nano
:
- sudo nano /etc/nginx/sites-available/your_domain
В результате будет создан новый пустой файл. Вставьте следующую пустую конфигурацию:
server {
listen 80;
server_name your_domain www.your_domain;
root /var/www/your_domain;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Когда вы закончите редактирование, сохраните и закройте файл. Если вы используете nano
, можно ввести CTRL+X
, а затем y
и ENTER
для подтверждения.
Активируйте вашу конфигурацию посредством привязки к файлу конфигурации из директории Nginx sites-enabled
:
- sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
Это укажет Nginx использовать эту конфигурацию в следующий раз при перезагрузке. Вы можете протестировать вашу конфигурацию на наличие ошибок синтаксиса с помощью команды:
- sudo nginx -t
Если есть какие-либо ошибки, вернитесь в файл конфигурации и проверьте его содержание перед тем, как продолжить.
Когда будете готовы, перезагрузите Nginx для внесения необходимых изменений:
- sudo systemctl reload nginx
Теперь ваш новый веб-сайт активен, но корневая веб-директория /var/www/your_domain
все еще пуста. Создайте файл index.html
в этом расположении, чтобы убедиться, что веб-сервер работает, как ожидалось:
- nano /var/www/your_domain/index.html
Внесите в файл следующее:
<html>
<head>
<title>your_domain website</title>
</head>
<body>
<h1>Hello World!</h1>
<p>This is the landing page of <strong>your_domain</strong>.</p>
</body>
</html>
Теперь откройте браузер и получите доступ к доменному имени сервера или IP-адресу, как указано в директиве server_name
в файле конфигурации вашего серверного блока:
http://server_domain_or_IP
Страница будет выглядеть следующим образом:
Теперь мы создадим тестовый скрипт PHP для подтверждения возможности принимать и обрабатывать запросы файлов PHP в Nginx.
Создайте новый файл с именем info.php
в корневой папке сайта:
- nano /var/www/your_domain/info.php
В результате откроется пустой файл. Добавьте в файл следующее:
<?php
phpinfo();
После завершения редактирования сохраните и закройте файл.
Теперь вы можете получить доступ к этой странице в веб-браузере, посетив доменное имя или публичный IP-адрес, настроенный в файле конфигурации Nginx, добавив /info.php
в конце:
http://server_domain_or_IP/info.php
Вы увидите веб-страницу, содержащую подробную информацию о вашем сервере:
После проверки соответствующей информации о вашем сервере PHP с помощью данной страницы рекомендуется удалить созданный вами файл, поскольку он содержит конфиденциальную информацию о вашей среде PHP и о вашем сервере Ubuntu. Вы можете использовать rm
для удаления этого файла:
- sudo rm /var/www/your_domain/info.php
Ниже представлены ссылки на более подробные материалы, связанные с настоящим обучающим руководством:
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.