Настройка Php nginx для Debian
Обновлено: 21.11.2024
LEMP — это аббревиатура, обозначающая следующий стек программного обеспечения: ядро Linux, веб-сервер Nginx, база данных MariaDB (или MySQL) и серверный язык программирования PHP. Сегодня это программное обеспечение широко используется на серверах в Интернете для предоставления динамических веб-сайтов или интерактивных веб-приложений.
В этом руководстве показано, как установить и настроить стек LEMP (Nginx с MariaDB и PHP 7) в последней версии Debian 10.
ТРЕБОВАНИЯ
Шаг 1. Начальная настройка
Первый шаг — войти в систему с правами root или пользователем с правами root в вашей системе и обновить компоненты Debian 10 (обновления ядра, обновления пакетов и исправления безопасности), выполнив следующие команды.
Далее убедитесь, что вы добавили описательное имя для имени хоста вашего компьютера, выполнив приведенную ниже команду. Впоследствии вам следует перезапустить систему, чтобы соответствующим образом применить новое имя хоста.
Далее установите утилиты net-tools wget, curl и bash-completion, чтобы впоследствии использовать их для простого администрирования сервера Debian.
Шаг 2. Установите веб-сервер Nginx
Nginx – это современный и экономичный веб-сервер, используемый для отображения веб-страниц посетителям в Интернете. Установите веб-сервер Nginx из репозитория Debian 10, выполнив приведенную ниже команду в консоли вашего сервера.
Как показано на изображении выше, диспетчер пакетов apt проверит дополнительные зависимости для пакета и спросит, согласны ли вы продолжить процесс установки. Ответьте «да» (y), чтобы установить Nginx.
Затем запустите команду netstat, чтобы отобразить сетевые сокеты в вашей системе и проверить, прослушивает ли демон nginx порт 80/TCP. В качестве альтернативы вы можете выполнить команду systemctl, чтобы проверить состояние демона nginx, как показано на рисунке ниже.
Затем создайте файл конфигурации Nginx TLS с помощью текстового редактора и добавьте следующее содержимое.
выдержка из файла default-ssl:
Если у вас есть зарегистрированный домен или вы используете виртуальный хостинг на основе IP-адресов, вы должны добавить свое доменное имя или IP-адрес после директивы server_name, как показано в приведенном ниже примере.
После того, как вы закончите редактирование файла конфигурации Nginx по умолчанию с указанными выше настройками
Настроить SSL в Nginx
В приведенном выше файле конфигурации TSL для nginx мы указали путь для сертификата и ключа TLS. Поскольку мы еще не установили ключи в вашей системе, введите следующую команду, чтобы сгенерировать самозаверяющий файл сертификата SSL и ключ. Во время создания SSL-сертификата вам будет задан ряд вопросов. Введите двузначный код вашей страны, штата или провинции, название вашего города, название вашей организации, название подразделения вашей организации, общее имя вашего сервера и действующий адрес электронной почты. Вы должны убедиться, что общее имя установлено таким образом, чтобы оно соответствовало записи полного доменного имени вашего компьютера с DNS-сервера или IP-адресу вашего сервера, используемому для доступа к веб-сайту. Сертификат и ключ хранятся в новом каталоге в каталоге nginx с именем ssl, как показано на следующем снимке экрана.
Кроме того, сгенерируйте новый стойкий шифр Диффи-Хеллмана, который можно найти в приведенном выше файле конфигурации в строке оператора ssl_dhparam, введя следующую команду:
Наконец, сгенерировав ключ Диффи-Хеллмана, активируйте файл конфигурации TLS, создав символическую ссылку для файла конфигурации default-ssl из каталога sites-available на sites- enabled, введя следующую команду.
Затем проверьте файл конфигурации Nginx на наличие синтаксических ошибок и, если все в порядке, перезапустите демон Nginx, чтобы применить все изменения, выполнив приведенные ниже команды.
Проверить успешность настройки SSL
Чтобы убедиться, что веб-сервер Nginx привязан к порту SSL, введите команду netstat и проверьте, отображается ли порт 443 в режиме прослушивания.
Снимок экрана ниже иллюстрирует описанные выше шаги.
Если Nginx не предоставляет страницу index.html по умолчанию в корневом веб-каталоге, введите следующую команду, чтобы создать страницу индекса.
Шаг 4. Установите PHP 7
Веб-сервер Nginx может обслуживать динамический веб-контент с помощью интерпретатора языка программирования PHP через диспетчер процессов PHP FastCGI, которому Nginx передает запросы для обработки. Менеджер процессов FastCGI можно получить, установив предварительно скомпилированный пакет php-fpm, предлагаемый в официальных репозиториях Debian 9.
Чтобы установить диспетчер процессов php-fpm и интерпретатор PHP7.0 в систему вместе с дополнительными пакетами, которые позволят PHP взаимодействовать с веб-сервером Nginx, введите следующую команду в консоли вашего сервера:
sudo apt установить php7.3 php7.3-fpm php7.3-curl php7.3-gd
Запустить PHP-FPM
После того, как интерпретатор PHP 7.3 будет успешно установлен в вашей системе, запустите и проверьте демон php7.3-fpm, введя следующую команду:
Проверка конфигурации PHP
Чтобы проверить и проверить, может ли Nginx правильно передавать php-файлы процессору PHP, создайте тестовый файл конфигурации PHP info.php, введя следующую команду
Затем перейдите на страницу информации о php в веб-браузере, перейдя к доменному имени или общедоступному IP-адресу вашего сервера, а затем /info.php, как показано на рисунке ниже.
Чтобы установить другие модули PHP7.3, запустите команду apt search php7.3, чтобы найти определенный модуль PHP и установить его. Если вы планируете установить систему управления контентом, например WordPress, установите следующие дополнительные модули:
Однако недавно установленные модули PHP не включены в вашей системе по умолчанию. Чтобы активировать их, перезапустите службу PHP-FPM.
Шаг 5. Установите базу данных MariaDB
Наконец, последний фрагмент головоломки стека LAMP отсутствует в базе данных. Компонент LEMP базы данных MariaDB используется для хранения записей в таблицах и столбцах. Он будет динамически управлять данными веб-приложения. Чтобы установить MariaDB, выполните следующую команду в консоли вашего сервера. Затем перезапустите демон PHP FPM, чтобы включить модуль PHP-MySQL, необходимый для доступа к базе данных.
По умолчанию учетная запись root системы или пользователи с правами root могут получить доступ к базе данных без ввода пароля. Чтобы изменить это поведение, чтобы MySQL запрашивал пароль каждый раз, когда системный пользователь пытается получить доступ к базе данных, войдите в базу данных MySQL, используя интерфейс командной строки с привилегиями root, и выполните следующие команды в консоли MySQL:
Установить пароль root в MariaDB
На следующем шаге убедитесь, что вы защитили MariaDB, выполнив скрипт безопасности mysql_secure_installation. Он предоставляется установочным пакетом из репозиториев Debian. Во время работы скрипт задаст ряд вопросов, предназначенных для защиты базы данных MariaDB. Например: изменить пароль root MySQL, удалить анонимных пользователей, отключить удаленный вход root и удалить тестовую базу данных. Запустите скрипт, введя следующую команду. Ответьте «да» на все заданные вопросы, чтобы полностью обезопасить демон MySQL. Используйте приведенный ниже вывод скрипта, кроме как в качестве руководства.
Наконец, чтобы проверить функциональность MariaDB, войдите в базу данных с консоли и выполните следующую команду. Список баз данных по умолчанию должен отображаться в консоли MariaDB. Выйдите из консоли MariaDB с оператором выхода.
Вот и все! Веб-сервер Nginx, база данных MariaDB и язык программирования PHP установлены на вашем компьютере с Debian 10. Теперь вы можете приступить к созданию динамических веб-сайтов или веб-приложений для своих посетителей.
Стек программного обеспечения LEMP – это группа программного обеспечения, которое можно использовать для обслуживания динамических веб-страниц и веб-приложений. Это аббревиатура, описывающая операционную систему Linux с веб-сервером Nginx. Базовые данные хранятся в базе данных MySQL, а динамическая обработка выполняется PHP.
В этом руководстве вы установите стек LEMP на сервер Debian, используя пакеты, предоставляемые операционной системой.
Предпосылки
Для выполнения этого руководства вам потребуется сервер Debian 9 с пользователем без полномочий root с привилегиями sudo. Вы можете настроить пользователя с этими привилегиями в нашем руководстве по начальной настройке сервера с Debian 9.
Шаг 1 — Установка веб-сервера Nginx
Чтобы отображать веб-страницы для посетителей нашего сайта, мы собираемся использовать Nginx, современный и эффективный веб-сервер.
Все программное обеспечение, которое мы будем использовать для этой процедуры, будет получено непосредственно из репозиториев пакетов Debian по умолчанию. Это означает, что мы можем использовать пакет управления пакетами apt для завершения установки.
Поскольку мы впервые используем apt для этого сеанса, мы должны начать с обновления нашего локального индекса пакетов. Затем мы можем установить сервер:
В Debian 9 Nginx настроен на запуск после установки.
Если у вас запущен брандмауэр ufw, вам необходимо разрешить подключения к Nginx. Вы должны включить наиболее ограничительный профиль, который по-прежнему будет разрешать трафик, который вы хотите. Поскольку мы еще не настроили SSL для нашего сервера, в этом руководстве нам нужно будет разрешить трафик только через порт 80 .
Вы можете включить это, набрав:
Вы можете проверить изменение, набрав:
Теперь проверьте, запущен ли сервер, открыв доменное имя или общедоступный IP-адрес вашего сервера в веб-браузере. Если у вас нет доменного имени, указывающего на ваш сервер, и вы не знаете общедоступный IP-адрес вашего сервера, вы можете найти его, введя в своем терминале одно из следующих действий:
Это распечатает несколько IP-адресов. Вы можете попробовать каждый из них по очереди в веб-браузере.
Введите один из полученных адресов в веб-браузере. Вы должны перейти на целевую страницу Nginx по умолчанию:
Если вы видите указанную выше страницу, вы успешно установили Nginx.
Шаг 2 — Установка MySQL для управления данными сайта
Теперь, когда у нас есть веб-сервер, нам нужно установить MySQL, систему управления базами данных, для хранения и управления данными нашего сайта.
Вы можете легко установить это, набрав:
Примечание. В Debian 9 ответвление сообщества проекта MySQL — MariaDB — упаковано как вариант MySQL по умолчанию. Хотя в большинстве случаев MariaDB работает хорошо, если вам нужны функции, имеющиеся только в Oracle MySQL, вы можете установить и использовать пакеты из репозитория, поддерживаемого разработчиками MySQL. Чтобы установить официальный сервер MySQL, воспользуйтесь нашим руководством Как установить последнюю версию MySQL в Debian 9.
Программное обеспечение базы данных MySQL установлено, но его настройка не завершена.
Чтобы защитить установку, мы можем запустить сценарий безопасности, который спросит, хотим ли мы изменить некоторые небезопасные значения по умолчанию. Запустите сценарий, набрав:
Вам будет предложено ввести пароль для корневой учетной записи MySQL. Мы еще не установили это, поэтому просто нажмите ENTER. Затем вас спросят, хотите ли вы установить этот пароль. Вы должны ввести y, а затем установить пароль root.
Чтобы ответить на остальные вопросы, которые задает сценарий, вы должны нажать y , а затем клавишу ENTER при каждом запросе. Это удалит некоторых анонимных пользователей и тестовую базу данных, отключит удаленный вход в систему root и загрузит эти новые правила, чтобы MySQL немедленно учитывал внесенные вами изменения.
На данный момент ваша система баз данных настроена и защищена. Давайте настроим PHP.
Шаг 3 — Установка PHP для обработки
Теперь у нас установлен Nginx для обслуживания наших страниц и MySQL для хранения и управления нашими данными. Однако у нас по-прежнему нет ничего, что могло бы генерировать динамический контент. Вот где на помощь приходит PHP.
Поскольку Nginx не содержит встроенной обработки PHP, как некоторые другие веб-серверы, нам потребуется установить fpm, что означает «менеджер процессов fastCGI». Мы скажем Nginx передавать PHP-запросы этому программному обеспечению для обработки. Мы также установим дополнительный вспомогательный пакет, который позволит PHP взаимодействовать с нашей базой данных MySQL. При установке будут загружены необходимые файлы ядра PHP, чтобы все заработало.
Затем установите пакеты php-fpm и php-mysql:
Теперь у нас установлены компоненты PHP. Далее мы настроим Nginx для их использования.
Шаг 4. Настройка Nginx для использования процессора PHP
Теперь у нас установлены все необходимые компоненты. Единственное изменение конфигурации, которое нам все еще нужно, — это указать Nginx использовать наш PHP-процессор для динамического содержимого.
Мы делаем это на уровне блоков серверов (блоки серверов аналогичны виртуальным хостам Apache). Мы собираемся оставить конфигурацию Nginx по умолчанию и вместо этого создать новый файл конфигурации и новый корневой веб-каталог для хранения наших файлов PHP.Мы назовем файл конфигурации и каталог после имени домена или имени хоста, на которое должен отвечать сервер.
Сначала создайте новый каталог в /var/www для размещения PHP-сайта:
Затем откройте новый файл конфигурации в каталоге, доступном для сайтов Nginx:
Это создаст новый пустой файл. Вставьте следующую базовую конфигурацию:
Это очень простая конфигурация, которая прослушивает порт 80 и обслуживает файлы из только что созданного веб-корня. Он будет отвечать только на запросы к имени, указанному после server_name , и любые файлы, оканчивающиеся на .php, будут обработаны процессом php-fpm до того, как Nginx отправит результаты пользователю.
Сохраните и закройте файл, когда закончите настройку.
Активируйте свою конфигурацию, связавшись с файлом конфигурации из каталога с поддержкой сайтов Nginx:
Это укажет Nginx использовать конфигурацию при следующей перезагрузке. Сначала проверьте свою конфигурацию на наличие синтаксических ошибок, набрав:
Если сообщается о каких-либо ошибках, вернитесь и перепроверьте файл, прежде чем продолжить.
Когда будете готовы, перезагрузите Nginx, чтобы внести изменения:
Далее мы создадим файл в нашем новом корневом веб-каталоге, чтобы протестировать обработку PHP.
Шаг 5. Создайте файл PHP для проверки конфигурации
Теперь ваш стек LEMP должен быть полностью настроен. Мы можем протестировать его, чтобы убедиться, что Nginx может правильно передавать файлы .php нашему PHP-процессору.
Мы можем сделать это, создав тестовый PHP-файл в корне нашего документа. Откройте новый файл с именем info.php в корне документа в текстовом редакторе:
Введите или вставьте следующие строки в новый файл. Это допустимый код PHP, который вернет информацию о нашем сервере:
По завершении сохраните и закройте файл.
Теперь вы можете посетить эту страницу в своем веб-браузере, посетив доменное имя вашего сервера или общедоступный IP-адрес, за которым следует /info.php :
Вы должны увидеть сгенерированную PHP веб-страницу с информацией о вашем сервере:
Если вы видите страницу, похожую на эту, вы успешно настроили обработку PHP с помощью Nginx.
Убедившись, что Nginx правильно отображает страницу, лучше всего удалить созданный вами файл, так как он может дать неавторизованным пользователям некоторые подсказки о вашей конфигурации, которые могут помочь им попытаться взломать систему.
Сейчас удалите файл, набрав:
Вы всегда можете восстановить этот файл, если он понадобится позже.
Заключение
Теперь на вашем сервере Debian должен быть настроен стек LEMP. Это дает вам очень гибкую основу для предоставления веб-контента вашим посетителям.
Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!
Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.
В этом руководстве мы собираемся установить и настроить PHP и Nginx в Debian 11. Мы также настроим виртуальный хост для обслуживания простой информационной страницы php.
PHP – это язык сценариев общего назначения, предназначенный для веб-разработки. Это один из популярных языков программирования для Интернета. Популярные инструменты, такие как WordPress, написаны с использованием php. Крупные компании, такие как Facebook, также активно используют php.
Похожий контент
Оглавление
- Убедиться, что сервер обновлен
- Установка PHP в Debian 11
- Установка Nginx в Debian 11
- Установка php-fpm в Debian 11
- Создание простого сайта и настройка виртуального хоста
- Тестирование конфигурации
1. Обеспечение актуальности сервера
Прежде чем продолжить, всегда рекомендуется убедиться, что сервер обновлен. Используйте эти команды для достижения этой цели
2. Установка PHP в Debian 11
PHP доступен в репозиториях Debian 11 по умолчанию. Последняя версия PHP на момент написания этого блога — PHP 7.4.
Установите PHP и некоторые распространенные пакеты с помощью этой команды:
Проверьте установленную версию PHP
Проверьте установленную версию php с помощью этой команды:
3. Установка Nginx в Debian 11
Мы будем использовать Nginx для обслуживания содержимого PHP. Nginx, как стабильный высокопроизводительный веб-сервер с очень низким потреблением ресурсов, идеально подходит для PHP-FPM. Nginx имеет асинхронную архитектуру, которая гораздо лучше масштабируется на основе событий.
Nginx доступен в репозиториях Debian 11 по умолчанию. Установите его с помощью этой команды:
Подтвердите установленный nginx
4. Установка PHP FPM в Debian 11
PHP-FPM (аббревиатура от FastCGI Process Manager) — чрезвычайно популярная альтернативная реализация FastCGI для PHP (гипертекстового процессора).PHP-FPM — самая популярная альтернативная реализация PHP FastCGI. Он имеет дополнительные функции, которые действительно полезны для веб-сайтов с высокой посещаемостью. При использовании Nginx с PHP-FPM повышается производительность на уровне потребления памяти.
Установите php-fpm с помощью этой команды:
Служба будет запущена по умолчанию. Проверьте его статус с помощью этой команды:
5. Создание простого сайта и настройка виртуального хоста
Nginx позволяет обслуживать несколько сайтов с помощью виртуальных хостов. Концепция виртуальных хостов позволяет использовать более одного веб-сайта в одной системе или веб-сервере. Серверы различаются по имени хоста. Посетители веб-сайта перенаправляются по имени хоста или IP-адресу на нужный виртуальный хост. Виртуальный хостинг позволяет компаниям, использующим один сервер, иметь собственные доменные имена.
Создание каталога и добавление образцов контента
Страница nginx по умолчанию настроена как виртуальный хост по умолчанию, обслуживающий контент из /var/www/html. Лучше всего создать каталог вашего сайта в каталоге /var/www, так как лучше всего обслуживать оттуда.
Давайте создадим каталог для нашего сайта с помощью следующей команды:
Давайте создадим простую страницу index.php для обслуживания нашего сайта. Для этого вам потребуется установленный vim, если не использовать эту команду:
Добавить содержимое в файл:
Создание виртуального хоста (блоки сервера)
Конфигурации виртуальных хостов Nginx хранятся в каталоге /etc/nginx/conf.d/. Создадим конфиг для нашего сайта:
Добавить следующий контент
Давайте перезапустим службу nginx и php-fpm, чтобы конфигурация вступила в силу
6. Тестирование конфигурации
Если вы еще не настроили параметры DNS или просто не хотите, чтобы сайт работал, вы можете изменить файл hosts на своем компьютере. Для этого используйте следующую команду в интерфейсе командной строки вашего локального компьютера
Затем добавьте IP-адрес вашего фактического сервера, а затем доменное имя, которое вы настраиваете, например:
Теперь вы сможете сохранить файл и получить к нему доступ из веб-браузера.
Заключение
Виртуальные хосты или серверные блоки Nginx — отличный способ добавить дополнительные веб-сайты на тот же исходный сервер. Количество возможностей конфигурации для данного сайта почти безгранично, когда вы начинаете изменять файл конфигурации виртуального хоста в соответствии с конкретными потребностями вашего сайта.
В этом руководстве мы узнали, как настроить виртуальный хост для обслуживания php-контента в Debian 11.
Как установить Nginx и PHP 7.3 в Debian 10. Чтение: 4 минуты
Совсем недавно, 6 июля 2019 г., был выпущен Debian 10 buster, в котором появилось множество функций. В этом руководстве показано, как установить основную версию Nginx на Debian 10 для достижения оптимальной производительности.
Шаг 1. Установите Nginx
Во-первых, нам нужно установить необходимые компоненты.
Затем нам нужно добавить основной пакет Nginx в наш репозиторий, чтобы при запуске apt install nginx мы загружали основную версию вместо старой стабильной версии.
При желании, если вы предпочитаете использовать более старую и более медленную стабильную версию Nginx, вы можете сделать это, запустив: (помните, что вы должны запускать только одно из следующих)
Далее нам нужно загрузить ключ подписи, чтобы мы могли проверить его подлинность
Если выводится OK! тогда все готово!
Теперь, когда мы загрузили и проверили его подлинность, давайте установим его!
Вот оно! Теперь вы установили последнюю версию Nginx на Debian 10. Теперь вы должны запустить ее!
Не забудьте также настроить его автоматический запуск при загрузке системы.
Посетите IP-адрес вашего сервера в веб-браузере. Теперь вы должны увидеть что-то вроде этих строк, если все работает правильно.
Экран приветствия по умолчанию в Nginx
Шаг 2. Установите PHP 7.3
Чтобы добавить репозитории для PHP:
Выполните это, чтобы загрузить добавленные репозитории:
Теперь мы можем установить PHP, когда у нас есть все необходимые репозитории.
Рекомендуется увеличить лимит памяти для повышения общей производительности. Ваша конфигурация PHP находится в /etc/php/7.3/fpm/php.ini .
Нажмите CTRL + W и найдите memory_limit.
Замените на memory_limit = 256
Сохранить и выйти, нажав CTRL + X, а затем Y
Шаг 3. Настройте Nginx
Добавить nginx в группу www-data
Сменить владельца каталога на www-data
Перейдите в файл default.conf
Замените существующий файл конфигурации указанным ниже
Сохранить и выйти, нажав CTRL + X, а затем Y
Теперь перезапустите Nginx:
Вот оно! Однако теперь вы можете проверить, работает ли php
Добавьте следующие строки
Сохранить и выйти, нажав CTRL + X, а затем Y
Теперь перейдите на YOURSERVERIP/phpinfo.php в веб-браузере.Вы должны увидеть что-то в этом роде
Вот оно! Теперь вы знаете, как установить Nginx и PHP 7.3 на Debian 10. Теперь вы можете установить все, что захотите, например WordPress. Не забудьте также попробовать наш VPS! Наши серверы расположены в Стокгольме, поэтому, если вы из Швеции, не стесняйтесь зайти на наш шведский сайт и приобрести Стокгольмский VPS.
Читайте также: