Источник: https://www.linuxbabe.com/ubuntu/install-lemp-stack-nginx-mariadb-php7-2-ubuntu-18-04-lts
Из этого мануала вы узнаете как установить Nginx, MariaDB и PHP7.2 на Ubuntu 18.04. Данный материал может быть применен как для выделенного сервера, так и для локального компьютера. PHP версии 7.2 доступен в Ubuntu 18 и содержит незначительные улучшения производительности.
Требования
Данный материал применим к любой машине с установленной Ubuntu 18.
Шаг 1. Обновление
Перед обновлением хорошим тоном будет обновить существующие приложения в системе.
sudo apt update
Шаг 2. Установка Nginx
Nginx — это высокопроизводительный веб-сервер очень популярный в настоящее время. Он также может использоваться в качестве обратного прокси и кэширующего сервера. Введём эту команду, чтобы установить его
sudo apt install nginx
Когда Nginx установится, поместим его в автозагрузку
sudo systemctl enable nginx
Проверим, что он работает
systemctl status nginx
Вывод должен быть примерно такой:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-05-17 02:20:05 UTC; 2min 56s ago
Docs: man:nginx(8)
Main PID: 19851 (nginx)
Tasks: 2 (limit: 2059)
CGroup: /system.slice/nginx.service
├─19851 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─19853 nginx: worker process
Если всё так, то нажмите «q»
А если это не так, то запустим его
sudo systemctl start nginx
Проверим версию:
nginx -v
Вывод должен быть таким
nginx version: nginx/1.14.0 (Ubuntu)
Теперь можно в адресной строке браузера ввести IP-адрес вашей машины.
Наконец нужно сделать пользователя www-data владельцем директории в которой лежат web-файлы.
sudo chown www-data:www-data /usr/share/nginx/html -R
Шаг 3. Установка сервера баз данных MariaDB
MariaDB является полной заменой MySQL. Он разработан бывшими членами команды MySQL, которые обеспокоены тем, что Oracle может превратить MySQL в продукт с закрытым исходным кодом. Введите следующую команду, чтобы установить MariaDB в Ubuntu 18.04.
sudo apt install mariadb-server mariadb-client
После установки сервер должен автоматически запуститься. Используйте systemctl, чтобы проверить так ли это.
systemctl status mariadb
Вывод:
● mariadb.service - MariaDB database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-05-17 02:39:57 UTC; 49s ago
Main PID: 21595 (mysqld)
Status: "Taking your SQL requests now…"
Tasks: 27 (limit: 2059)
CGroup: /system.slice/mariadb.service
└─21595 /usr/sbin/mysqld
Если процесс не выполняется, то запустите его следующей командой
sudo systemctl start mariadb
Для автозагрузки используем следующую команду
sudo systemctl enable mariadb
Теперь выполним скрипт настройки безопасности sql-сервера
sudo mysql_secure_installation
При запросе пароля для root просто нажмите Enter, поскольку пароль для рута еще не установлен. Затем нажмите y, чтобы установить его
![](https://kurazhov.ru/wp-content/uploads/2018/09/ubuntu-18.04-install-lemp-stack.png)
Далее, нужно нажимать Enter, чтобы ответить на возникающие вопросы, такие как удаление root пользователя, отключение удалённого входа для root и удаление тестовой базы данных. Это базовые шаги для безопасной настройки сервера MariaDB. (Заметьте, что по-умолчанию выбран вариант ответа Y, то есть положительный).
![](https://kurazhov.ru/wp-content/uploads/2018/09/How-to-Install-LEMP-stack-on-Ubuntu-18.04.png)
По-умолчанию, MariaDB использует Unix-сокет, для аутентификации пользователей. По-простому это означает, что можно использовать логин и пароль в системе, чтобы войти в консоль MariaDB. Так можно сейчас зайти в консоль под рутом.
sudo mariadb -u root
Чтобы выйти:
exit;
Для проверки корректности установки сервера, введите:
mariadb --version
mariadb Ver 15.1 Distrib 10.1.29-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Шаг 4. Установка php7.2
php7.2 включен в основной репозиторий Ubuntu 18 и для его установки введите следующую команду.
sudo apt install php7.2 php7.2-fpm php7.2-mysql php-common php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl
После установки проверим статус:
systemctl status php7.2-fpm
Вывод:
● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor prese
Active: active (running) since Thu 2018-05-17 03:04:46 UTC; 2min 43s ago
Docs: man:php-fpm7.2(8)
Main PID: 31922 (php-fpm7.2)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/se
Tasks: 3 (limit: 2059)
CGroup: /system.slice/php7.2-fpm.service
├─31922 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
├─31939 php-fpm: pool www
└─31940 php-fpm: pool www
Если php7.2 не запустился автоматически, то запустим следующей командой
sudo systemctl start php7.2-fpm
Поставим в автозагрузку.
sudo systemctl enable php7.2-fpm
Шаг 5. Создание блока server в Nginx
Блок в Nginx — как виртуальный хост в Apache. Использовать установленный по-умолчанию не будем, поскольку в нём не прописана поддержка php, поэтому создадим свой. Так что удалим дефолтную ссылку на этот файл. (сам файл останется нетронутым и будет лежать в /etc/nginx/sites-available/)
sudo rm /etc/nginx/sites-enabled/default
Затем создадим новый блок в новом файле, находящимся в директории /etc/nginx/conf.d/
sudo nano /etc/nginx/conf.d/default.conf
Вставьте нижеследующий текст в новый файл. В нём указано, что Nginx будет слушать 80 порт и будет откликаться на любые запросы.
server {
listen 80;
listen [::]:80;
server_name _;
root /usr/share/nginx/html/;
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ /index.php;
}
location ~ .php$ {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}
location ~ /.ht {
deny all;
}
}
Сохраните и закройте файл. Затем протестируйте новую конфигурацию Nginx.
sudo nginx -t
Если тест прошёл успешно, то перезагрузите Nginx
sudo systemctl reload nginx
Шаг 6 (необязательный). Проверка PHP
Для тестирования создадим файл в директории web-файлов Nginx.
sudo nano /usr/share/nginx/html/info.php
И вставим такой текст
<?php phpinfo(); ?>
Теперь заходите на http://ваш_IP/info.php
Если всё было выполнено правильно, то будет отображена подробная информация о вашем сервере, в том числе и версии php на нём.
![](https://kurazhov.ru/wp-content/uploads/2018/09/ubuntu-18.04-nginx-php7.2-fpm.png)
Поздравляем! Вы успешно установили Nginx, MariaDB и PHP7.2 на Ubuntu 18.04. Для безопасности удалим файл info.php, чтобы не «светить» своей информацией.
sudo rm /usr/share/nginx/html/info.php
Вот и всё! Надеюсь этот туториал вам помог и вы успешно установили LEMP-стек на Ubuntu 18.04.