Меню Рубрики

Установка linux nginx php mysql

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Настройка Nginx

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Настройка PHP

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

Для Ubuntu 16.04

Для Ubuntu 18.04

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

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

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

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

Для Ubuntu 16.04

Для Ubuntu 18.04

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

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

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

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

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

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

  • В строке, где указана директива index добавьте обработку индексного файла index.php .
  • В директиве server_name вы можете указать имя своего домена (если он привязан к серверу) или IP-адрес сервера.
  • Раскомментируйте блок location

\.php$ и строки, которые входят в него, кроме fastcgi_pass 127.0.0.1:9000; . Данный блок отвечает за обработку PHP-запросов.
Раскомментируйте блок location

/\.ht и строку внутри, он отвечает за работу с файлами .htaccess.

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

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

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

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

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

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

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

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

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

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

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

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

источник

Contents

Share

Sign up for our newsletter.

Get the latest tutorials on SysAdmin and open source topics.

Related

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

Введение

Стек LEMP представляет собой набор программного обеспечения, который используется для отображения динамических веб-страниц и веб-приложений. Этот акроним обозначает операционную систему Linux и веб-сервер Nginx. Данные при этом хранятся в базе данных MySQL, а динамическое отображение страниц выполняется средствами PHP.

В этой статье мы продемонстрируем процесс установки стека LEMP на сервер с Ubuntu 16.04. Операционная система Ubuntu удовлетворяет первому требованию LEMP — это операционная система на базе Linux. Далее мы опишем процесс установки остальных компонентов стека LEMP.

Перед установкой

Перед тем, как начать следовать описанным в этой статье шагам, убедитесь, что у вас есть обычный не-рутовый (non-root) пользователь с привилегиями sudo . Узнать, как настроить такого пользователя на вашем сервере, можно из статьи о первичной настройке сервера на Ubuntu 16.04.

После того, как вы создали такого пользователя, зайдите на сервер используя его логин и пароль. Теперь вы готовы следовать шагам, описанным в этой статье.

Шаг 1 — Установка веб-сервера Nginx

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

Всё программное обеспечение, которое мы будем использовать, будет установлено из стандартных репозиториев Ubuntu. Это означает, что мы можем использовать пакетный менеджер apt для установки.

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

В Ubuntu 16.04 Nginx настроен для запуска сразу после установки.

Если вы используете файрвол ufw , как описано в нашей статье о первичной настройке сервера, вам потребуется разрешить соединения для Nginx. В процессе установки Nginx регистрирует себя в ufw , поэтому процедура настройки достаточно проста.

Рекомендуется настраивать ufw таким образом, чтобы разрешать только тот трафик, который вы хотите разрешить в явном виде. Поскольку мы ещё не настроили SSL для нашего сервера, в этой статье мы разрешим трафик только для порта 80.

Сделать это можно следующей командой:

Вы можете проверить изменения введя команду:

В результате должен отобразиться вывод следующего вида:

Теперь, когда мы разрешили трафик на порту 80, вы можете проверить, можно ли осуществить доступ к вашему серверу используя доменное имя или публичный IP адрес сервера в веб-браузере.

Если у вас нет доменного имени, присвоенного серверу, и вы не знаете публичного IP адреса сервера, вы можете найти этот IP адрес следующей командой:

В результате будет выведено несколько IP адресов. Попробуйте вставить каждый из них в браузер.

Другим способом определить свой IP адрес будет проверка, как ваш сервер виден из Интернета:

Наберите полученный IP адрес в вашем веб-браузере. Вы должны увидеть страницу Nginx по умолчанию.

Если вы видите подобную страницу в своём браузере, вы успешно установили Nginx.

Шаг 2 — Установка MySQL для хранения данных сайта

Теперь, когда у нас есть веб-сервер, установим систему управления базами данных MySQL для хранения и управления данным нашего сайта.

Вы можете легко установить MySQL следующей командой:

В процессе установки вам будет предложено ввести рутовый пароль (пароль администратора) для MySQL.

После завершения установки нам потребуется выполнить некоторые дополнительные команды, чтобы наше окружение MySQL было настроено безопасным образом. Введите следующую команду:

Скрипт запросит пароль, который вы только что задали для root пользователя в MySQL. Далее вам будет предложено сконфигурировать плагин валидации паролей ( VALIDATE PASSWORD PLUGIN ).

Внимание: решение включать плагин валидации паролей или нет носит субъективный характер. При включении все пароли, которые не удовлетворяют определённым критериям безопасности, будут отвергаться MySQL с сообщением об ошибке. Это может вызывать проблемы, если вы используете “слабые” пароли совместно с программным обеспечением, которое конфигурирует профили пользователей MySQL, например, пакеты Ubuntu для phpMyAdmin. Вы можете оставить валидацию паролей отключенной, но в этом случае вам следует всегда использовать “сильные” уникальные пароли для пользователей базы данных.

Введите y для включения плагина или что-нибудь другое для продолжения без его включения:

Если вы включили валидацию паролей, вам будет предложено установить уровень надёжности паролей при валидации. Имейте в виду, что при выборе значения 2 (самый строгий уровень валидации), вы будете получать ошибки при попытке задать пароль без цифр, букв в верхнем и нижнем регистре, а также без специальных символов, а также при попытке использовать пароль, основанный на распространённых словах, которые уязвимы для подбора паролей по словарю.

Если вы включили валидацию паролей, вам будет показан уровень надёжности заданного вами ранее пароля root пользователя, а также вам будет предложено изменить этот пароль. Если вы не хотите менять пароль, введите n или no:

На все последующие вопросы просто вводите Y и нажимайте клавишу ENTER для выбора настроек по умолчанию. При этом удалятся некоторые тестовые пользователи и базы данных, будет отключена возможность удаленного доступа с учетной записью root-пользователя, и все изменения будут немедленно применены в MySQL.

Теперь ваша система управления базами данных установлена и мы можем двигаться дальше.

Шаг 3 — Установка PHP

Теперь у нас есть веб-сервер Nginx для отображения нашего сайта, а также MySQL для хранения данных сайта. Нам осталось установить что-то, что позволит генерировать динамический контент для сайта. Для этого мы будем использовать PHP.

Поскольку Nginx не имеет встроенной поддержки обработки PHP, как некоторые другие веб-серверы, нам необходимо установить php-fpm (означает “fastCGI process manager”, менеджер процессов fastCGI). Мы настроим Nginx для передачи PHP запросов этому программному обеспечению для обработки.

Установим этот модуль, а также установим дополнительный пакет, который позволит PHP взаимодействовать с MySQL. В процессе установки будут загружены основные файлы PHP. Сделаем это следующей командой:

Настройка обработчика PHP

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

Откроем конфигурационный файл php-fpm с привилегиями root:

Найдём в этом файле параметр cgi.fix_pathinfo . Он будет закомментирован точкой с запятой (;) и будет иметь значение “1” по умолчанию.

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

Мы можем предотвратить такое поведение раскомментировав эту строку и изменив её значение на “0”:

Сохраните и закройте документ после внесения изменений.

Теперь нам осталось перезапустить обработчик PHP:

После перезапуска наши настройки вступят в силу.

Шаг 4 — Настройка Nginx для работы с обработчиком PHP

Теперь у нас установлены все необходимые компоненты. Единственное, что нам осталось сделать, это настроить Nginx для использования нашего обработчика PHP для отображения динамического контента.

Мы сделаем это на уровне серверных блоков (серверные блоки являются приблизительным аналогом виртуальных хостов в Apache). Откроем серверный блок Nginx сервера по умолчанию командой:

Этот файл должен иметь примерно следующий вид:

Нам необходимо внести несколько изменений в этот файл для нашего сайта.

  • Прежде всего, нам необходимо добавить index.php первым значением директивы index , чтобы веб-сервер в первую очередь искал файлы index.php .
  • Мы можем изменить директиву server_name для указания доменного имени сервера или его публичного IP адреса.
  • Для корректной обработки PHP нам необходимо раскомментировать часть файла, которая отвечает за обработку PHP запросов. Это блок location

\.php$ , кусок кода fastcgi-php.conf и сокет для работы с php-fpm .

  • Мы также раскомментируем код, отвечающий за работу с файлами .htaccess . Nginx не обрабатывает эти файлы. Если какие-то из этих файлов окажутся в корневой директории сайта, они не должны быть доступны пользователям.
  • Изменения, которые необходимо внести в этот файл помечены красным:

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

    Проверьте ваш файл конфигурации на наличие ошибок командой:

    Если в результате обнаружены какие-либо ошибки, откройте файл и исправьте их перед тем, как продолжить.

    Когда всё готово, перезапустите Nginx для применения внесённых изменений:

    Шаг 5 — Создание файла PHP для проверки настроек

    Теперь ваш стек LEMP должен быть полностью готов к работе. Мы можем проверить, что Nginx корректно передаёт .php файлы нашему обработчику PHP.

    Для этого создадим тестовый PHP файл в корневой директории веб-сервера. Откройте файл с именем info.php в корневой директории веб-сервера с помощью текстового редактора:

    Наберите или введите следующие строки в этот новый файл. Этот код PHP возвращает информацию о нашем сервере:

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

    Теперь мы можем проверить, может ли веб-сервер корректно отображать контент, сгенерированный PHP скриптом. Для проверки нам просто нужно открыть данную страницу в веб-браузере. Вам снова потребуется публичный IP-адрес сервера.

    Страница, на которую вы попадёте, должна выглядеть похожим образом:

    Если вы видите эту страницу, вы успешно настроили обработку PHP с помощью Nginx.

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

    Заключение

    Теперь у вас есть полностью настроенный стек LEMP на вашем сервере Ubuntu 16.04. Этот стек представляет собой прочный фундамент дальнейшей работы по предоставлению вашим пользователям веб-контента.

    источник

    Как установить nginx, MySQL, PHP (LEMP) в Ubuntu

    В этом посте мы разберем процесс установки сервера на основе Nginx на Ubuntu

    Данное руководство наиболее полно отражает процесс настройки LEMP сервера на базе хостинга от DigitalOcean, счастливым клиентом которого я недавно стал и вам советую.

    Вводная

    LEMP — аббревиатура, обозначающая комплекс программ для развертывания полного серверного окружения. Название формируется из входящих компонентов:

    • Linux — операционная система Linux;
    • Nginx(читается EnginX) — веб-сервер;
    • MariaDB / MySQL — СУБД;
    • PHP — язык программирования, используемый для создания веб-приложений (помимо PHP могут подразумеваться другие языки, такие как Perl и Python).

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

    Итак, предполагается что в качестве Linux-дистрибутива у нас установлен Ubuntu 14.04, приступаем к работе:

    Шаг первый — установка веб-сервера Nginx

    Для установки всего комплекса ПО мы будем использовать репозитории самого Ubuntu и стандартный менеджер пакетов apt

    Откроем консоль в Ubuntu и установим Nginx, предварительно обновив источники пакетов:

    Теперь сервер Nginx установлен.

    Проверить его работу, можно открыв браузер и перейдя на IP адрес того компьютера на котором устанавливали Nginx.

    Если это ваш локальный компьютер то достаточно набрать http://localhost

    Вы должны увидеть стартовую страницу Nginx:

    Старт и остановка сервера осуществляется командами:

    Так как у меня первоначально стоял Apache2, пришлось сначала остановить его и затем запустить Nginx

    Шаг второй — устанавливаем базу данных MySQL

    Теперь, когда у нас есть веб-сервер, нам необходимо установить MySQL — базу данных, где будет храниться информация для нашего сайта.

    Сделать это достаточно просто, открываем консоль и вбиваем:

    В процессе установки вам будет предложено ввести пароль администратора MySQL, который вам стоит запомнить или записать.

    Все, MySQL установлен, но еще не настроен до конца. Во-первых, необходимо создать первичную структуру для хранения данных самой MySQL. Мы можем это сделать командой:

    Далее нам необходимо запустить сценарий безопасности, который изменит некоторые настройки идущие по умолчанию:

    Вам нужно будет ввести пароль администратора MySQL, который Вы выбрали во время установки.

    Далее, вам будет предложено изменить его. Если в этом нет необходимости, введите «N» и нажмите «ENTER». После этого вам будет предложено удалить некоторых тестовых пользователей и базы данных. Вы должны просто нажимать «ENTER» при появлении вопросов, чтобы удалить опасные настройки по умолчанию.

    После того, как сценарий завершиться, MySQL готов к использованию.

    Шаг третий — установка PHP

    После установки сервера Nginx и MySQL нам необходимо связующее звено — серверный язык/ который будет отрабатывать динамические запросы. Поскольку Nginx не содержит встроенной обработки PHP как и некоторые другие веб-серверы, нам нужно установить php5-fpm (Менеджер процессов FastCGI). Благодаря ему Nginx сможет обрабатывать PHP запросы.

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

    Давайте произведем установку, набрав в консоли:

    Повышаем безопасность PHP-FPM

    Для повышения безопасности работы с PHP нам надо произвести донастройку. Отроем на редактирование файл:

    после чего, найдем строчку содержащую «cgi.fix_pathinfo», которая по-умолчанию выглядит так:

    раскомментируем ее и изменим значение, должно получиться так:

    Сохраните измененный файл. Это призвано устранить опасность неправильно трактования (и возникающей уязвимости) запросов вида /image.gif/foo.php

    Шаг четвертый — настройка работы NGINX с PHP

    Теперь у нас есть все составляющие сервера. Нам необходимо лишь связать NGINX и PHP для того чтоб он мог отрабатывать динамический контент. Сделаем настройку так называемых серверных блоков(то же самое что виртуальные хосты у Apache)

    Без комментов этот блок смотрится примерно так:

    В него нужно внести небольшие изменения.

    Во-первых, нужно внести index.php как первое значение директивы index, чтобы индексные файлы PHP обслуживались при запросе каталога.

    На месте директивы server_name, надо указать доменное имя или общедоступный IP сервера.

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

    Также нужно будет раскомментировать часть другого раздела и добавить директиву try_files, чтобы убедиться, что Nginx не передает подозрительные запросы на процессор PHP.

    Должно получиться как то так:

    Вот и все — мы настроили сервер на основе NGINX для нашей Ubuntu 14.04.

    Теперь перезагрузите его, чтобы все наши изменения вступили в силу:

    источник

    Читайте также:  Установка датчиков на ультразвуковом расходомере

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