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

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

Published on March 7, 2017

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Изменения, которые необходимо внести в этот файл помечены красным:

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

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

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

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

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

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

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

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

Откроем этот адрес:

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

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

Читайте также:  мне угрожают коллекторы что делать

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

Удалим файл командой:

Заключение

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

Источник

Установка и базовая настройка nginx и php-fpm для разработки проектов локально в Ubuntu 16.04

Здравствуй, уважаемый пользователь Хабрахабра. Мое повествование будет о том, как подготовить почву для локальной веб-разработки проектов в операционной системе Ubuntu 16.04.1 LTS.

В данной статье хочется развеять и разъяснить возможные трудности связанные с установкой и настройкой ПО, которое требуется для современной веб-разработки, с которыми возможно сталкиваются начинающие разработчики и не только.

Технологии которые будут использованы в статье: nginx, php-fpm.

Перед началом повествования, хочу отметить, что я проделывал все эти действия на «голой» системе.
Я буду работать с пакетным менеджером aptitude. Так же рекомендую обновить индекс пакетов и сами пакеты перед установкой ПО. В статье мы проделаем эти действия вместе.

Установка пакетного менеджера aptitude, обновление индекса и пакетов

Обновляем пакеты (команда обновит все пакеты, для которых есть новые версии, если потребуется удаление пакетов, то оно будет выполнено).

Установка и настройка nginx (версия >= 1.10.0)

Проверяем версию, чтобы убедиться что не установили старую, то есть ниже 1.10.0.

Установку и запуск произвели, теперь пойдем в каталог туда куда установлен наш nginx и посмотрим на его структуру. Каталог nginx находится по такому пути:

Наc интересуют в данный момент два каталога, которые вы видите на скриншоте. Это каталоги sites-available и sites-enabled.

Давайте перейдем в каталог sites-available и начнем конфигурировать наш виртуальный хост (сайт).

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

В случае установки nginx «с нуля», именно «с нуля», так как при удалении nginx командой
или конфигурационные файлы остаются и если вы вдруг будете не понимать, почему nginx не работает и захотите его переустановить (обычно к такому прибегают начинающие пользователи Linux), то и после переустановки он не будет корректно работать, из-за того что в старых конфигурационных файлах (они не удаляются после удаления командой remove) прописаны неверные настройки, их придется удалить, либо настроить верно, только тогда nginx заработает.

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

Создадим свой конфигурационный файл, который будет соответствовать названию домена нашего локального сайта (или реального, если уже знаете его название). Это удобно, в будущем, когда будет много конфигурационных файлов, то это избавит вас от путаницы в них. У меня этот файл будет называться project.local.

Посмотрим что получилось.

Теперь откроем его в редакторе, я открою его в nano.

Видим что он у нас пустой. Теперь перейдем к формированию нашего файла. Нужно привести конфигурацию к такому виду, как написано ниже. Я опишу только жизненно важные директивы этого файла, описывать остальное не буду, так как это не является на данный момент важным, все-таки у нас тема базовой настройки. Этих настроек с «горкой» хватит для разработки проектов локально, не только мелких, но и довольно крупных. В следующих статьях опишу отдельно каждые использованные директивы (именно так называются строки, например server_name) этого файла.

Смотрите комментарии прям в конфигурационном файле.

Сохраняем файл. Теперь нам надо проверить, нет ли в нем ошибок. Сделать мы это можем командой.

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

Теперь нам надо активировать конфигурационный файл, в каталоге /etc/nginx/sites-enabled/ необходимо создать симлинк (символическая ссылка). Если у вас nginx был установлен «с нуля», то в этом каталоге есть симлинк на файл default, про который рассказывалось выше, его можно удалить, если он вам не требуется. Переходим в нужный каталог.

Посмотрим на наш созданный симлинк.

Чтобы убедиться что мы делаем еще все верно опять запустим команду.

Если все ок, едем дальше.

Файл hosts

Этот файл находится по пути /etc/hosts. Наличие в нем записей, позволяет запускать nginx с использованием в качестве домена localhost. В этом файле можно присваивать альтернативные псевдонимы, например для нашего проекта project.local, мы присвоим домен project.local.

Открываем файл в редакторе nano.

У вас в этом файле будет и другая информация, просто игнорируйте ее. Вам всего лишь нужно добавить строку как на моем скриншоте.

Не забываем сохранить файл. На этом настройка файла hosts закончена.

Установка php-fpm (>=7.0)

Проверяем установленную версию, на всякий случай, хотя в Ubuntu 16.04.1 в репозиториях лежит именно 7.0 версия.

Убеждаемся что все ок. Стартуем php-fpm.

Если будете править конфиги, то не забывайте рестартовать демон. Это делает так. Но нам это не потребуется.

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

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

Поднимемся на каталог выше и сделаем права 777 (то есть мы будем делать полные права каталогу с нашим проектом project.local). В будущем это избавим нас от лишних проблем.

На этом настройка ПО завершена, давайте создадим тестовый файл в нашем рабочем каталоге project.local и убедимся что все работает. Я создам файл index.php с таким содержанием.

Идем в браузер и видим что у нас все прекрасно работает! Интерпретатор php в том числе.

Источник

Настройка веб-сервера Nginx + PHP-FPM + MySQL

Быстрая установка и настройка веб-сервера NginX для работы CS-Cart.

Видео

Сервер и ресурсы

Для инструкции арендован самый простой VPS сервер.

Обычно VPS сервер предоставляется с чистой операционной системой, мы выбрали последнюю версию Ubuntu 14.04 LTS x86 на данный момент.

Технические характеристики сервера:

ОС Ubuntu 14.04 LTS x86
Диск 2.0 ГБ
Процессор 2000 МГц
Память 128 МБ

Ресурсов данного сервера достаточно только для теста и эксперимента.

Предупреждение! Настройку сервера для живого интернет-магазина необходимо доверить профессионалам.

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

Читайте также:  меверс 1857 лейпцигское издание что это

1. Подключаемся к серверу по SSH

Используем терминал (PuTTY).

2. Обновим список пакетов

Запустите в терминале (PuTTY) команду:

3. Устанавливаем NginX

4. Останавливаем Nginx

Остановим NginX на время настройки простой командой:

5. Узнаем количество процессоров в системе

Количество процессоров нам понадобится для конфигурации NginX:

Запоминаем число процессоров.

6. Установим число процессов Nginx

Найдите на сервере и откройте для редактирования файл:

Установите для неё значение равное числу процессоров. В нашем случае один процессор.

7. Создадим папку для интернет-магазина

8. Конфигурация Nginx

Нам необходимо настроить конфигурацию NginX. Сделаем так, чтобы Nginx понимал наш домен и отправлял его в нужную папку на сервере, а также установим правила для SEO.

Найдите на сервере и откройте файл:

Удалите весь код и вставьте новый. Ниже будет код, в комментариях кратко описано происходящее. Вам нужно заменить домен example.com на ваш домен

9. Перезапускаем nginx

10. Устанавливаем PHP-FPM

11. Установим MySQL

Команда для установки MySQL:

В процессе установки вам потребуется несколько раз ввести пароль. Не потеряйте пароль!

12. Установим PhpMyAdmin

Ещё одной командой установим PhpMyAdmin для удобства работы с базой данных:

Потребуется ввести пароль от MySQL.

Консоль попросит вас выбрать Apache2 или lighttpd во время установки, пропустите данный шаг, просто нажмите ENTER

13. Добавим конфигурацию Nginx для PhpMyAdmin

Сделаем так, чтобы PhpMyAdmin открывался на отдельном поддомене: pma.example.com. Нам необходимо добавить в конфигурацию nginx новый раздел для поддомена.

Откройте на сервере файл:

В конец файла добавьте конфигурацию для поддомена, который будет ссылаться на phpmyadmin. Просто скопируйте код в конец существующей конфигурации, замените example.com на ваш домен:

14. Перезапускаем nginx

Вы уже знаете команду для перезагрузки nginx:

Источник

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

Настраиваем веб-сервер на базе Nginx + PHP-FPM в Debian / Ubuntu Server

В тоже время Nginx не умеет обрабатывать динамическое содержимое, для этого он должен отдать запрос серверу приложений одним из поддерживаемых способов, например, через FastCGI, дождаться и получить ответ, а затем уже отдать его клиенту. В среднем, что касается производительности PHP, то FastCGI будет в среднем в 10-15% медленнее, чем Apache + mod-php. Поэтому, если производительность вашего сервера упирается в производительность PHP, то никакой Nginx вам не поможет, а наоборот, только усугубит ситуацию.

Кроме того, работа с Nginx более сложна, чем с Apache, если с последним все популярные веб-движки работают из коробки, то для полноценной работы с Nginх может потребоваться дополнительная настройка. Исходя из этого мы не рекомендуем использовать Nginx, как самостоятельный веб-сервер, начинающим веб-мастерам, так как при отсутствии опыта и квалификации довольно трудно понять, связана ошибка с веб-приложением или веб-сервером. Да и на форумах для новичков вам вряд ли кто-нибудь подскажет по такой связке, а там, где «тусуются» работающие с Nginx специалисты подобные вопросы обычно не поднимаются, так как участники давно их «переросли».

Если вам нужен просто работающий веб-сервер, и вы не готовы глубоко вникать в тему, то лучше обратите свое внимание на Apache, если же вы готовы потратить некоторое время и силы на изучение и настройку, а также готовы самостоятельно решать возникающие проблемы, то добро пожаловать!

Установка Nginx

Несмотря на то, что Nginх присутствует в репозиториях основных дистрибутивов, мы рекомендуем использовать версию от разработчиков, это позволит более оперативно получать новые версии и новые возможности. Существует две ветки Nginx, основная и стабильная, первая имеет нечетную, вторая четную нумерацию. Разработка происходит следующим образом, все изменения основной ветки, скажем 1.7 фиксируются и переходят в стабильную 1.8, которая перестает разрабатываться и получает только обновления безопасности, основная ветка после этого получает номер 1.9 и в нее вносятся все изменения.

Сами разработчики рекомендуют использовать основную ветку, если только нет каких-то особых требований по совместимости. По своему опыту можем сказать, что основная ветка достаточно стабильна и может быть использована на рабочих серверах.

Для подключения репозиториев Nginx создадим в папке /etc/apt/sources.list.d файл nginx.list:

Потом добавим в него строки. Для Debian:

Затем скачаем и установим PGP-ключ, необходимый для проверки подлинности:

После чего можно обновить список пакетов и установить nginx:

Теперь, если набрать в браузере адрес нашего сервера, вы увидите стандартную заглушку Nginx.

Также проверить состояние веб-сервера можно командой:

Прежде всего изменим пользователя, от имени которого работает nginx, в Debian/Ubuntu веб-сервер работает от пользователя www-data и чтобы избежать в будущем возможных коллизий с правами доступа приведем строку к виду:

Затем укажем количество рабочих процессов, рекомендуется выбирать их количество по числу доступных процессорных ядер, в нашем случае 2:

Приведем секцию events к виду:

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

Теперь перейдем в секцию http и после строки

зададим следующие опции:

Они задают таймаут (в секундах) на чтение клиентом тела и заголовка запроса, последняя опция разрешает сброс соединений по таймауту.

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

Также разрешим передачу файлов и оптимизируем этот процесс.

Он задает таймаут постоянных (keep-alive) соединений, которые позволяют повысить производительность протокола HTTP/1.1, но незакрытое соединений впустую использует ресурсы сервера и поэтому такие соединения следует принудительно завершать.

Ниже зададим параметры gzip-сжатия:

Первая опция включает gzip-сжатие, затем отключаем его для младших версий IE (6 и ниже), если такие вдруг зайдут на наш сервер, разрешим сжимать проксированные запросы, это нужно для сжатия динамического содержимого, затем укажем минимальный размер сжимаемого ответа, чтобы не тратить ресурсы сервера на сжатие коротких ответов. Ниже задается уровень сжатия и типы сжимаемых данных.

В самом конце, после

Это позволит подключать конфигурации виртуальных хостов из папки sites-enabled.

Сохраним и проверим конфиг командой:

После чего можно перезапустить nginx:

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

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

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

Затем создадим конфигурационный файл для нашего первого сайта:

Какого-либо стандарта по названию файлов у nginx нет, поэтому можете придерживаться своей системы, главное, чтобы вам было понятно, какой файл за какой сайт отвечает. Теперь откроем его и внесем следующий текст:

Его синтаксис достаточно прост и понятен, первая секция server задает основные параметры сайта, его имя, кодировку, расположение корневой директории и файлов логов. Вторая секция нужна для перенаправления сайта с www на без www.

Если вы хотите сделать данный виртуальный хост сайтом по умолчанию, т.е. тем на который будут переадресовываться все запросы, для которых nginx не нашел подходящего виртуального хоста или без имени сервера вообще, например, по IP-адресу, то добавьте к директиве listen опцию default, начиная с версии 0.8.1 можно использовать опцию default_server:

Читайте также:  помадка для кулича которая не крошится

Сохраняем конфигурацию и подключаем ее к nginx:

Проверяем конфигурацию и заставим nginx ее перечитать:

Теперь поместим в корневую директорию сайта файл index.html со следующим содержимым:

Теперь набираем в браузере имя нашего сайта и убеждаемся, что все работает.

Устанавливаем PHP-FPM

Для работы с современными веб-приложениями вам потребуется поддержка популярного скриптового языка PHP, Nginx поддерживает работу через FastCGI, но не имеет собственного менеджера процессов, поэтому мы будем использовать для этой цели PHP-FPM.

Важно! В современных дистрибутивах используется более новая версия PHP 7, чтобы работать с новой версией языка вместо php5 в приведенных ниже командах следует указывать php7.x или просто php например, вместо php5-imagick нужно набрать php7.0-imagick или php-imagick.

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

Настройки PHP-FPM по умолчанию достаточно оптимальны и никаких вмешательств в них не требуется, однако следует подправить некоторые опции PHP, для этого откроем /etc/php5/fpm/php.ini и найдем там следующие опции:

этот параметр задает максимальный размер данных загружаемых методом POST, влияет, например, на размер загружаемых средствами PHP файлов. По умолчанию 8 МБ, можем изменить по собственным потребностям.

Если вы будете использовать PHP-приложения (CMS) работающие в кодировке отличной от UTF-8, то приведите к следующему виду опцию:

Затем раскоменнтируйте и установите опцию:

Это закроет возможную уязвимость в PHP.

Еще ниже надо найти и увеличить размер максимально загружаемого файла:

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

Сохраним изменения и перезапустим PHP-FPM:

Теперь следует научить Nginx работать с PHP-FPM, для этого в файл конфигурации виртуального хоста нужно добавить настройки, которые будут перенаправлять (проксировать) все запросы к динамическому содержимому на FastCGI-шлюз.

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

Создадим директорию для хранения шаблонов:

После чего создадим в ней шаблон для работы с PHP-FPM:

Откроем его и добавим следующий текст:

Указанный нами блок location будет обрабатывать все запросы к php-файлам, первая директива в нем проверяет наличие запрошенного файла, в противном случае отдавая ошибку 404. Вторая устанавливает параметры соединения с FastCGI-шлюзом, в нашем случае с PHP-FPM, соединение устанавливается через UNIX-сокет, как наиболее производительный способ соединения. Затем указывается индексный файл и подгружаются настройки Nginx для FastCGI.

Важно! Обратите внимание, что PHP 7 имеет иной путь к UNIX-сокету, поэтому следует указывать /var/run/php/php7.0-fpm.sock

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

Несмотря на то, что Nginx не использует htaccess-файлы, они, вместе с файлами htpasswd могут находиться в директории сайта, особенно если до этого он работал на Apache и будет правильно запретить доступ к ним в целях безопасности.

Также следует настроить кэширование статического содержимого:

Также зададим кэширование для скриптов и стилей:

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

Теперь откроем файл конфигурации виртуального хоста и в конце первой секции server добавим строку подключения шаблона:

Сохраним все настройки, проверим конфигурацию и перезапустим Nginx.

Чтобы проверить работу PHP создадим в корневой директории сайта файл test.php со следующим содержимым:

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

Установка MySQL и phpMyAdmin

СУБД MySQL широко используется для хранения информации в современных веб-приложениях. Это один из самых важных компонентов веб-сервера, так как в базе данных обычно хранится вся информация сайта, кроме статического содержимого (изображений, файлов и т.п.).

Для установки MySQL выполните:

Важно! В свежих выпусках Debian (и его производных) вместо пакета mysql-server следует установить mariadb-server, который полностью совместим с MySQL.

Данная команда установит MySQL сервер и модуль PHP для работы с ним. В процессе установки вас попросят ввести пароль суперпользователя СУБД (root), не путать с суперпользователем системы.

Для повседневной работы с MySQL удобно использовать веб-приложение администрирования phpMyAdmin, установим его:

Установщик phpMyAdmin не умеет конфигурировать Nginx для работы с ним, поэтому ничего не выбираем на данном этапе, а все настройки выполним позже вручную.

Для этого создадим еще один файл шаблона:

и внесем в него следующий текст:

На первый взгляд синтаксис может показаться довольно сложным, но если разобрать правила по частям, то мы увидим, что ничего сложного нет. Все это мы уже обсуждали выше. Самый последний location осуществляет перенаправление на phpMyAdmin с адресов вида имя_домена/phpmyadmin.

Для подключения phpMyAdmin к сайту в описание виртуального хоста добавьте включение еще одного шаблона:

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

В Ubuntu Server вы можете столкнуться с ошибкой отсутствия расширения mcrypt.

Для ее устранения выполните:

Мы не будем подробно останавливаться на дальнейшей работе с MySQL и phpMyAdmin, об этом можно подробно прочитать в соответствующей части нашей статьи Настраиваем веб-сервер на базе Apache в Debian / Ubuntu Server.

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

Но учтите, что некоторые CMS требуют нестандартных прав на некоторые папки и файлы, поэтому уточните этот вопрос в документации.

Также не забывайте устанавливать правильного владельца, им должен быть пользователь, от имени которого работает веб-сервер, в нашем случае www-data, владелец устанавливается командой:

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

Дополнительные материалы:

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Или подпишись на наш Телеграм-канал:

Источник

Образовательный портал