Установка LEMP-стека с php7.2 на Ubuntu 18

Источник: 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, чтобы установить его

Далее, нужно нажимать Enter, чтобы ответить на возникающие вопросы, такие как удаление root пользователя, отключение удалённого входа для root и удаление тестовой базы данных. Это базовые шаги для безопасной настройки сервера MariaDB. (Заметьте,  что по-умолчанию выбран вариант ответа Y, то есть положительный).

По-умолчанию, 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 на нём. 

Поздравляем! Вы успешно установили Nginx, MariaDB и PHP7.2 на Ubuntu 18.04. Для безопасности удалим файл info.php, чтобы не «светить» своей информацией.

sudo rm /usr/share/nginx/html/info.php

Вот и всё! Надеюсь этот туториал вам помог и вы успешно установили LEMP-стек на Ubuntu 18.04.

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

Ваш e-mail не будет опубликован.