Установка Nginx, MySQL, PHP (LEMP) на Ubuntu 16.04

LEMP – это набор программного обеспечения, необходимый для работы современных сайтов на сервере. Данный акроним расшифровывается как Linux, Nginx, MySQL, PHP. В этой статье будет рассмотрена установка Nginx, MySQL, PHP на сервер под управлением Ubuntu 16.04.

Подготовка

Перед установкой LEMP крайне рекомендую выполнить базовую настройку сервера Ubuntu. После этого мы будем готовы к установке всех необходимых компонентов.

Установка Nginx

Поскольку все необходимые программы есть в репозитории Ubuntu, то установка Nginx сводится всего лишь к двум командам.

sudo apt-get update
sudo apt-get install nginx

На Ubuntu 16.04 Nginx начинает работать сразу после установки.

Если у вас установлен ufw файервол, то вам необходимо разрешить Nginx подключения. Делается это простой командой:

sudo ufw allow 'Nginx HTTP'

Мы можем проверить результат командой:

sudo ufw status

Результат выполнения:

Output
Status: active


To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx HTTP                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Хорошо, теперь мы можем проверить работу Nginx набрав в браузере IP-адрес сервера или доменное имя, если оно привязано к серверу. Если всё сделано правильно, то вы должны увидеть следующее сообщение:

Установка MySQL

Для установки MySQL необходимо выполнить следующую команду:

sudo apt-get install mysql-server

В ходе установки вас попросят ввести пароль для root-пользователя. На этом установка БД завершена.

Также можно защитить дополнительно MySQL, выполнив команду:

mysql_secure_installation

Установка PHP

Теперь нам необходимо установить один из основных компонентов LEMP – PHP. Для этого выполним команду:

sudo apt-get install php-fpm php-mysql

Настройка PHP

Итак, мы установили PHP, но для его полноценной работы нам необходимо выполнить его настройку. Откройте файл php.ini с root правами.

sudo nano /etc/php/7.0/fpm/php.ini

В этом файле нам необходимо найти параметр cgi.fix_pathinfo. Он может быть закомментирован, а по умолчанию у него выставлен параметр 1. Этой крайне небезопасно, поэтому раскомментируйте эту строку и выставьте значение параметра 0.

cgi.fix_pathinfo=0

Сохраняем изменения и перезапускаем php-fpm.

sudo systemctl restart php7.0-fpm

Настраиваем Nginx для работы с PHP

Мы установили все необходимые компоненты LEMP стека и всё что нам осталось, это настроить Nginx для работы с PHP. Откройте следующий файл:

sudo nano /etc/nginx/sites-available/default

Без закомментированных строк этот файл будет выглядеть следующим образом:

server {
    listen 80 default_server;
    listen [::]:80 default_server;


    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;


    server_name _;


    location / {
        try_files $uri $uri/ =404;
    }
}

Нам необходимо выполнить следующие изменения:

  • В строке index выставить index.php на первое место
  • Указать доменное имя в строке server_name

После всех изменений данный файл будет выглядеть следующим образом:

server {
    listen 80 default_server;
    listen [::]:80 default_server;


    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;


    server_name доменное_имя_или_IP;


    location / {
        try_files $uri $uri/ =404;
    }


    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }


    location ~ /\.ht {
        deny all;
    }
}

Выполним проверку Nginx следующей командой:

sudo nginx -t

Если ошибок нет, перезапускаем Nginx:

sudo systemctl reload nginx
 sudo service nginx restart

Тест

По завершении всех настроек нам необходимо протестировать сервер. Для этого создадим файл в папке с сайтом, который будет выводить информацию о PHP.

sudo nano /var/www/html/info.php

Добавим в файл следующую функцию и сохраним его:

<?php
phpinfo();

Окей. Всё что нам осталось, это открыть браузер и перейти по адресу:

http://доменное_имя_или_IP/info.php

Вы должны увидеть примерно следующее:


Если вы видите информацию о PHP, значит установка Nginx, MySQL и PHP прошла успешно и мы можем удалить созданный ранее файл командой:

sudo rm /var/www/html/info.php
ТЕГИ:

Вы можете поделиться этой статьей в любой из соцсетей, представленных ниже:


Чтобы добавить свой комментарий, необходимо пройти аутентификацию
Комментарии
Ничего не найдено.