Как установить Nginx с PHP-FPM на Debian 10

Менеджер процессов FastCGI (FPM) представляет собой альтернативу традиционной конфигурации FastCGI, обладающую рядом усовершенствований. Он особенно полезен для сайтов с высокой посещаемостью. В данном руководстве вы узнаете, как установить и настроить PHP-FPM в связке с Nginx на системе Debian 10 Buster Linux.

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

sudo apt update && sudo apt upgrade

После обновления установим необходимые пакеты. Выполните следующую команду для установки Nginx и PHP-FPM:

sudo apt install nginx php-fpm

После установки вам нужно будет настроить PHP-FPM. Откройте конфигурационный файл PHP-FPM:

sudo nano /etc/php/7.3/fpm/pool.d/www.conf

Здесь вы можете настроить параметры, такие как пользователь и группа, а также максимальное количество процессов. Рекомендуется установить параметр listen на 127.0.0.1:9000, чтобы Nginx мог взаимодействовать с PHP-FPM.

Теперь необходимо настроить Nginx для работы с PHP. Откройте файл конфигурации Nginx:

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

Добавьте следующий блок кода для обработки PHP-файлов:

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass 127.0.0.1:9000;
}

Не забудьте перезапустить Nginx и PHP-FPM для применения изменений:

sudo systemctl restart nginx
sudo systemctl restart php7.3-fpm

Теперь вы можете создать простой PHP-файл для тестирования. Создайте файл info.php в директории /var/www/html:

<?php phpinfo(); ?>

Перейдите по адресу http://ваш_адрес/info.php в браузере, чтобы убедиться, что установка прошла успешно. Убедитесь, что вы удалили этот файл после проверки, так как он может содержать конфиденциальную информацию о вашем сервере.

В этом руководстве мы рассмотрели базовую установку Nginx и PHP-FPM на Debian Вы можете дополнительно настроить конфигурацию под свои нужды, а также установить дополнительные модули PHP, если это необходимо.

Также стоит отметить, что для повышения безопасности вы можете изменить конфигурацию PHP, отключив некоторые функции, такие как expose_php, что затруднит определение используемой версии PHP злоумышленниками. Это можно сделать в файле /etc/php/7.3/fpm/php.ini, изменив:

expose_php = Off

Кроме того, не забудьте установить брандмауэр для ограничения доступа к вашему серверу. Вы можете использовать ufw для управления правилами брандмауэра. Например, чтобы разрешить доступ к Nginx, выполните:

sudo ufw allow 'Nginx Full'

После этого вы можете включить брандмауэр:

Читайте также:  Выпущен Ubuntu 14.04 LTS Alpha-1

sudo ufw enable

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

Требования

Необходимо иметь доступ по SSH к системе Debian 10 с правами Sudo. Убедитесь, что у вас установлен SSH-клиент, такой как OpenSSH, и вы знаете IP-адрес или доменное имя удалённого сервера. Также проверьте, что вы обладаете необходимыми учетными данными (имя пользователя и пароль или SSH-ключ). Рекомендуется использовать ключи SSH для повышения безопасности соединения. Если вы подключаетесь впервые, может потребоваться подтвердить подлинность сервера, добавив его ключ в файл known_hosts.

Установка Nginx

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

sudo apt update && sudo apt install nginx

После установки вы можете запустить Nginx с помощью команды:

sudo systemctl start nginx

Чтобы убедиться, что Nginx работает, откройте браузер и перейдите по адресу http://your_server_ip. Вы должны увидеть страницу приветствия Nginx.

Для автоматического запуска Nginx при загрузке системы выполните следующую команду:

sudo systemctl enable nginx

Также рекомендуется проверить статус сервиса, чтобы убедиться, что он запущен и работает корректно:

sudo systemctl status nginx

Если вам потребуется остановить или перезапустить Nginx, используйте следующие команды:

sudo systemctl stop nginx
sudo systemctl restart nginx

Наконец, вы можете настроить файлы конфигурации Nginx, которые находятся в директории /etc/nginx/sites-available/, и создать символические ссылки в /etc/nginx/sites-enabled/ для активации новых конфигураций.

Установка PHP

Рекомендуется использовать PPA от Ондрея Суры для установки PHP, так как он предлагает последние версии для Debian. Выполните следующие команды для добавления PPA в вашу систему.

wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add - && echo "deb https://packages.sury.org/php/ buster main" | sudo tee /etc/apt/sources.list.d/php.list

После этого установите самую свежую версию PHP, доступную на момент написания данного руководства. Для установки пакетов PHP и PHP-FPM выполните следующие команды.

Читайте также:  Два простых шага для настройки SSH-аутентификации с использованием публичного ключа на CentOS

sudo apt update && sudo apt install php php-fpm

После завершения установки указанные пакеты, служба php7.3-fpm запустится автоматически. Убедитесь в этом, введя следующую команду в терминале.

sudo systemctl status php7.3-fpm

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

sudo systemctl start php7.3-fpm

Кроме того, для автоматического запуска службы при загрузке системы выполните:

sudo systemctl enable php7.3-fpm

Для установки дополнительных расширений PHP, таких как MySQL, можно использовать следующую команду:

sudo apt install php-mysql

Также, чтобы проверить установленную версию PHP, выполните:

php -v

Это поможет вам убедиться, что вы работаете с нужной версией. Для управления конфигурацией PHP-FPM, конфигурационные файлы находятся в директории:

/etc/php/7.3/fpm/

Не забудьте перезапустить PHP-FPM после внесения изменений в конфигурацию:

sudo systemctl restart php7.3-fpm

Следите за журналами ошибок для выявления возможных проблем с помощью команды:

sudo journalctl -u php7.3-fpm

Теперь PHP готов к использованию на вашем сервере, и вы можете приступать к разработке веб-приложений!

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

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

sudo vim /etc/nginx/sites-available/example.com

Примените приведённую ниже базовую конфигурацию виртуального хоста Nginx с настройками PHP FPM. Обновите конфигурацию следующим образом.

Ниже представлена примерная конфигурация:

server {
listen 80;
server_name example.com www.example.com;phpCopy coderoot /var/www/example.com/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}

После редактирования сохраните файл и создайте символическую ссылку на него в каталоге sites-enabled, чтобы активировать виртуальный хост:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Не забудьте проверить конфигурацию Nginx на наличие ошибок:

sudo nginx -t

Если проверка пройдёт успешно, перезагрузите Nginx, чтобы применить изменения:

Читайте также:  Полное руководство по использованию Filezilla для работы с FTP-серверами и передачи файлов

sudo systemctl reload nginx

Теперь ваш виртуальный хост должен работать корректно. Чтобы проверить его работоспособность, создайте файл info.php в директории /var/www/example.com/public со следующим содержимым:

Перейдите по адресу http://example.com/info.php в вашем веб-браузере, чтобы убедиться, что PHP правильно работает с Nginx.

Устранение распространенных ошибок

  • Ошибка 502 Bad Gateway:
    • Проверьте, запущен ли процесс интерпретатора.
    • Убедитесь в правильной настройке сокета или порта, к которому идет обращение.
    • Перезапустите веб-сервер и интерпретатор для обновления конфигурации.
  • Ошибка 404 Not Found:
    • Проверьте правильность указанного пути к файлу.
    • Убедитесь, что файл действительно существует на сервере.
    • Проверьте настройки маршрутизации в конфигурации.
  • Ошибка 403 Forbidden:
    • Проверьте права доступа к файлам и папкам.
    • Убедитесь, что настройки конфигурации не блокируют доступ.
    • Посмотрите логи на наличие дополнительных указаний по причине блокировки.
  • Проблемы с производительностью:
    • Проанализируйте загруженность сервера и оптимизируйте ресурсы.
    • Используйте кэширование для уменьшения нагрузки.
    • Проверьте, нет ли ошибок в коде, которые могут вызывать задержки.

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

Оптимизация производительности Nginx и PHP-FPM

Для достижения лучших результатов стоит обратить внимание на следующие аспекты:

  • Настройка кэширования для статических ресурсов.
  • Оптимизация параметров соединений и таймаутов.
  • Использование сжатия для уменьшения объема передаваемых данных.
  • Увеличение количества процессов для обработки запросов.

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

Оптимизация соединений включает в себя настройку параметров keepalive, что позволяет сократить накладные расходы на установление новых соединений. Установка адекватных таймаутов также поможет предотвратить зависание серверов в ожидании ответа.

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

Увеличение числа процессов для обработки запросов и установка соответствующих лимитов помогут лучше справляться с высокой нагрузкой. Необходимо правильно настроить параметры worker_processes и pm.max_children, чтобы обеспечить сбалансированную работу системы под нагрузкой.

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *