Как установить Linux, Nginx, MySQL, PHP (LEMP) в Ubuntu 16.04 / 18.04

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

В REG.RU вы можете заказать облачный сервер с установленным шаблоном LEMP на базе операционной системы Ubuntu 18.04. В данной статье описана ручная установка LEMP на Ubuntu 16.04/18.04.

Сравнение серверов Apache и Nginx

Apache:

  • Разрабатывается с 1995 года, огромное количество пользователей, множество модулей, предназначенных для расширения его функциональности.
  • Медленная работа веб-сервера из-за поточно-ориентированного подхода при большой нагрузке. Необходимость создания новых процессов и увеличивать объём потребляемой памяти.
  • Необходимость ограничения по потребляемым ресурсам. При достижении ограничений нового соединения будут отклонены.

Nginx:

  • Веб-сервер с Открытым кодом, написанным как аналог Apache для решения проблем с производственной и масштабируемостью.
  • Механизм, управляемый событиями, асинхронный и неблокирующий, не создаёт новые процессы для каждого веб-запроса.

1 этап. Подготовка сервера

Все действия по установке производятся на сервере через подключение по SSH.

Создание пользователя

Все действия по установке LEMP рекомендуем выполнять не через пользователя root. Рекомендуем создать пользователя с sudo-правами. Так вы можете обезопасить свой сервис и избежать случайных ошибок, которые могут сломать вашу операционную систему.

Чтобы создать пользователя, введите команду:

  adduser userName  

Где UserName — имя нового пользователя.

Система попросит ввести пароль для нового пользователя и дополнительную информацию:

Теперь установить права доступа, чтобы новый пользователь мог использовать команду sudo . Для этого наберите команду:

  usermod -aG sudo UserName  

Где UserName — имя созданного ранее пользователя.

Готово. Новый пользователь создан. Завершите SSH-сеанс под root и подключитесь к серверу под новым пользователем

Обновление операционной системы

Прежде чем установить на Ubuntu LEMP, нужно обновить операционную систему до актуального состояния с помощью команд:

  sudo apt-get update && apt-get upgrade -y  

2 этап. Установка Nginx

Для установки Nginx введите команду:

  sudo apt-get  установить nginx  

На этой установке закончена. В Ubuntu Nginx настроен на запуск сразу после установки.

Настройка Nginx

Для корректной работы Nginx необходимо настроить брандмауэр, открыть порты для подключения к серверу.

Чтобы открыть доступ для подключения к серверу по HTTP, выполните команды:

  sudo iptables -A  INPUT -p tcp --dport 80 -j ACCEPT  

  sudo iptables-save  

Если вы планируете использовать SSL-сертификат, для подключения по HTTPS выполните команду:

  sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT  

  sudo iptables-save  

При переходе по IP-адресу вашего сервера откроется страница Nginx:

Готово. Установка Nginx завершена.

3 этап. Установка MySQL

Далее нам необходимо установить систему управления базами данных MySQL.

  1. 1.

    Выполните команду:

      sudo apt-get install mysql-server  

  2. 2.

    В процессе установки вам будет предложено достижение пароля root-пользователь (пароль администратора) для MySQL:

    Ubuntu MySQL

Работа с базой данных

Для работы с базой данных вам необходимо создать пользователя и саму базу.

После установки MySQL автоматически будет создан root-пользователь. Работать с базой данных под root небезопасно, поэтому необходимо создать нового пользователя и назначить ему права доступа.

Запустите сервер базы данных с помощью команды:

  mysql -u root -p  

Система запрос пароля, который был указан при установке MySQL.

Как создать пользователя

  1. 1.

    Создайте пользователя с помощью команды:

      CREATE USER 'user-name' @ 'localhost  'IDENTIFIED BY' password ';  

    Замените значения внутри кавычек:

    • вместо user-name укажите логин базы данных пользователя;
    • вместо пароль укажите пароль нового пользователя.
  2. 2.

    Назначьте все права доступа для созданного пользователя:

      ПРЕДОСТАВЛЯТЬ ВСЕ ПРИВИЛЕГИИ НА *.  * TO 'user-name' @ 'localhost';  

    Не забудьте изменить user-name на логин, который был указан при создании пользователя.

  3. 3.

    Чтобы изменить вступили в силу, введите команду:

      ПРИВИЛЕГИИ ПРОМЫВКИ  ;  

Как создать базу данных

Для создания базы данных введите команду:

  CREATE DATABASE BaseName;  

Где BaseName — это название базы данных.

Готово. Теперь вы можете удалённо подключиться к базе данных или привязать её к вашему проекту. Чтобы завершить работу с MySQL, нажмите Ctrl + D.

4 этап. Установка PHP

Для установки PHP введите команду:

  sudo apt-get  install php-fpm php-mysql  

Настройка PHP

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

Для Ubuntu 16.04

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

Для Ubuntu 18.04

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

Найдите в файле параметр cgi.fix_pathinfo , раскомментируйте его, убрав точку с запятой перед ним и установите значение «0». В редакторе nano вы можете воспользоваться поиском по файлу клавишей F6.

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

Сохраните изменения в файле и закройте его.

ubuntu php-fpm

Перезапустите PHP командой :

Для Ubuntu 16.04

  sudo systemctl restart php7.0-fpm   

Для Ubuntu 18.04

  sudo systemctl restart php7.2-fpm  

5 этап. Настройка Nginx и связь с PHP

Далее необходимо настроить Nginx для использования обработчика PHP и отображения логического контента.

Если вы настроили виртуальные хосты на Apache, то это примерно одинаковая, только вместо VirtualHost будут блоки server .

Откройте дефолтный файл конфигурации Nginx командой:

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

В файле вы увидите блок server с примерным содержанием:

   сервер {слушаем 80 default_server;  слушать [::]: 80 default_server;  # Конфигурация SSL # listen 443 ssl default_server;  # слушаем [::]: 443 ssl default_server;  корень/вар/www/html;  # Добавьте index.php в список, если вы используете PHP index.html index.htm index.nginx-debian.html;  имя сервера _;  местоположение/{try_files $ uri $ uri/= 404;  } #location ~ . php $ {# include snippets/fastcgi-php.conf;  # fastcgi_pass 127.0.0.1:9000;  # fastcgi_pass unix:/run/php/php7.0-fpm.sock;  #} #location ~/.ht {# deny all;  #}}  

В данный файл внесите следующие изменения:

  • В строки, где указана директива index обработка индексации файла index.php .
  • В директиве имя_сервера вы можете указать имя своего домена (если он привязан к серверу) или IP-адрес сервера.
  • Раскомментируйте блок location ~ .php $ и строки, которые входят в него, кроме fastcgi_pass 127.0.0.1:9000; . Данный блок отвечает за обработку PHP-запросов.
  • Раскомментируйте блок location ~/.ht и строку внутри, он отвечает за работу с файлами .htaccess.

Сохраните изменения и закройте файл. Результат:

Чтобы проверить файл на наличие ошибок, выполнить команду:

   sudo nginx -t  

Если система выдала сообщение о наличии ошибок, исправьте их перед тем, как выполнять инструкции дальше.

Затем перезагрузите Nginx командой:

  sudo systemctl reload nginx  

Готово. Nginx и связь с PHP настроена. Далее вы можете проверить корректность работы сервера.

Проверка настроек

Для проверки работы PHP введите команду:

  sudo bash -c 'echo " php phpinfo ();?>">/var/www/html/info.php' 

Затем направить по адресу 123.123.123.123/info.php (где 123.123 .123.123 — IP-адрес вашего сервера) или введите домен, который указали на этапе «Настройка Nginx и связь с PHP».

Откроется страница с информацией о настройках веб-сервера PHP:

! После проверки обязательно удалите этот файл, иначе любой пользователь сможет получить доступ к конфиденциальной информации о сервере.

Готово. На этом установка и настройка LEMP Ubuntu завершена.

Установка LEMP Linux в один клик

LEMP — это набор программного обеспечения, который используется для отображения веб-страниц и веб-приложений. Установка NGINX, MySQL и PHP-FPM на вашем сервере c Ubuntu, менее чем за 30 секунд.

Подробнее

Помогла ли вам статья?
Да Нет
10 раз уже помогла

Arch Linux: что такое и как установить

Как установить LAMP в Ubuntu 16.04/18.04

->

Не нашли ответа на свой вопрос?

Заявка в службу поддержки

Нужна помощь?
Напишите в службу поддержки!



Настройка nginx + php-fpm в Debian/Ubuntu

Nginx — это HTTP-сервер. По сравнению с apache он более отказоустойчив, способен выдержать большое количество соединений. В основном используют продакшн серверах, почему-то его редко настраивают для локальной разработки, хотя это не сложнее, чем настроить apache + php.

Но различия все таки есть. Начнем с того, что php может работать с nginx в режиме fastCGI , в то время как с apache в режиме в fastCGI , так и как модуль апача. Кроме того, придется отдельно настраивать rewrite , базовую аутентификацию и т.д. ( .htaccess — фича апача).

Но заставить работать в простейшем случае — несложно =)

Итак, нужно поставить, собственно, сам nginx, php (если еще не стоит) и php-fpm :

  aptitude install nginx php5 php5-cli php5-fpm   

Nginx и php-fpm должен добавить в автозапуск и стартонуть, но если внезапно этого не произошло, то

  service nginx startservice php5-fpm start  

Можно проверить наличие в автозапуске с помощью, например, rcconf.

(Хотя еще не сконфигурирован ни nginix, ни php-fpm, в будущем все равно придется перезапустить).

Конфигурация

Сам nginx должен работать в конфигурации

  nano/etc/nginx/nginx.conf

«с коробки «. На что стоит обратить внимание — это на параметр

  user www-data;  

Он определяет, с какого пользователя будет запускаться Nginx .

следует проверить, подключается Также конфигурация модулей и хостов. Должны (как правило, в конце) быть строчки вроде:

  include/etc/nginx/conf.d/*. conf; include/etc/nginx/sites-enabled/*;  

Теперь нужно создать конфигурацию хоста:

  nano/etc /nginx/sites-available/your_site.conf
server {прослушивание 80;  имя_сервера www.site.net site.net;  root/usr/share/nginx/www/по умолчанию;  index index.html index.htm;  

access_log/var/log/nginx/site.log; error_log/var/log/nginx/site.log;

# Дальше настройка местоположения php ~ .php $ {fastcgi_split_path_info ^ (. +. php) (/ . +) $; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; включить fastcgi_params; }}

(можно посмотреть в/etc/nginx/sites-available.default )

Таким образом, сконфигурировали работу с php-fpm через сокет.

Осталось подключить конфигурацию:

  ln -s/etc/nginx/sites-available/your_site  .conf/etc/nginx/sites-enabled/your_site.conf

Теперь

service nginx reload  

И вуаля, все должно работать — мы настроили сервер nginx . P.S. Не забудьте подправить/etc/hosts, если это необходимо

Оцените статью
clickpad.ru
Добавить комментарий