PHP-FPM (FastCGI Process Manager) представляет собой альтернативную реализацию PHP FastCGI. Он предлагает дополнительные возможности, такие как динамическое управление процессами, что может быть полезно для веб-сайтов. В этом руководстве мы рассмотрим, как установить Apache с PHP-FPM/FastCGI на Ubuntu 16.0Мы будем использовать PHP 7.2 и настраивать его с Apache с использованием PHP-FPM и FastCGI.
Перед началом установки убедитесь, что ваша система обновлена. Выполните следующие команды:
sudo apt update
sudo apt upgrade
После обновления установим необходимые пакеты. Используйте следующую команду для установки Apache и PHP-FPM:
sudo apt install apache2 libapache2-mod-fcgid php7.2 php7.2-fpm
После завершения установки убедитесь, что PHP-FPM запущен и работает:
sudo systemctl start php7.2-fpm
sudo systemctl enable php7.2-fpm
Теперь необходимо настроить Apache для работы с PHP-FPM. Откройте конфигурационный файл Apache:
sudo nano /etc/apache2/sites-available/000-default.conf
Добавьте следующие строки в секцию `
SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/"
Сохраните изменения и закройте редактор. Затем перезагрузите Apache для применения изменений:
sudo systemctl restart apache2
Теперь вы можете проверить работу PHP-FPM. Создайте файл `info.php` в корневой директории веб-сервера:
echo "" | sudo tee /var/www/html/info.php
Откройте браузер и перейдите по адресу http://your_server_ip/info.php. Если вы видите информацию о PHP, значит, установка прошла успешно.
Не забудьте удалить файл `info.php`, чтобы избежать раскрытия конфиденциальной информации о конфигурации вашего сервера:
sudo rm /var/www/html/info.php
Теперь вы готовы использовать Apache с PHP-FPM на Ubuntu 16.04 LTS для своих веб-приложений.
Содержание статьи
Установка Apache
Установите веб-сервер Apache из официального репозитория. Откройте терминал на вашей системе или подключитесь к удаленному серверу по ssh. Выполните следующие команды для установки последней версии Apache и модуля FastCGI.
sudo apt update
sudo apt install apache2 libapache2-mod-fastcgi
После установки Apache убедитесь, что служба запущена и работает корректно. Вы можете использовать команду:
sudo systemctl status apache2
Это покажет статус сервера и его активность. Если сервер не запущен, вы можете активировать его с помощью:
sudo systemctl start apache2
Кроме того, чтобы Apache автоматически запускался при загрузке системы, выполните:
sudo systemctl enable apache2
Не забудьте проверить, открыты ли порты 80 и 443 в вашем файрволе, чтобы веб-сервер был доступен извне. Для управления файрволом используйте:
sudo ufw allow 'Apache'
Теперь вы можете открыть браузер и перейти по адресу http://localhost, чтобы убедиться, что сервер работает и отображает страницу приветствия Apache.
Для управления конфигурацией Apache файлы конфигурации находятся в каталоге /etc/apache2/. Основной конфигурационный файл — apache2.conf, а файлы виртуальных хостов находятся в /etc/apache2/sites-available/ и /etc/apache2/sites-enabled/. Рекомендуется создавать отдельные конфигурации для каждого сайта.
Если вы планируете использовать модули, такие как mod_rewrite или mod_ssl, вы можете включить их с помощью команд:
sudo a2enmod rewrite
sudo a2enmod ssl
Не забудьте перезапустить Apache после внесения изменений в конфигурацию:
sudo systemctl restart apache2
Для дополнительной безопасности рекомендуем установить модуль mod_security, который поможет защитить ваш сервер от различных угроз. Установить его можно с помощью:
sudo apt install libapache2-mod-security2
Теперь вы готовы к работе с Apache и можете настраивать его под свои нужды!
Установка PHP
Для установки версий PHP мы воспользуемся PPA, который доступен здесь. Используйте следующие команды, чтобы добавить PPA в вашу систему.
sudo apt install python-software-properties sudo add-apt-repository ppa:ondrej/php
Теперь установите PHP 7.2, последнюю доступную на момент написания этого руководства версию. Просто выполните команды для установки необходимых пакетов PHP и PHP-FPM.
apt update sudo apt install php7.2 php7.2-fpm
После установки указанных пакетов служба php7.2-fpm будет запущена автоматически. Убедитесь в этом, введя следующую команду в терминале.
sudo systemctl status php7.2-fpm
Если служба активна, вы увидите сообщение /var/log/php7.2-fpm.log.
Для настройки PHP вы можете редактировать файл конфигурации /etc/php/7.2/fpm/php.ini. Здесь вы можете изменить настройки, такие как максимальный размер загрузки файлов и время выполнения скриптов. После внесения изменений не забудьте перезапустить службу:
sudo systemctl restart php7.2-fpm
Также рекомендуется установить некоторые дополнительные расширения PHP, которые могут понадобиться для работы ваших приложений. Например, для работы с MySQL:
sudo apt install php7.2-mysql
Чтобы узнать доступные расширения, выполните следующую команду:
apt-cache search php7.2
После установки необходимых расширений проверьте их статус с помощью команды php -m, чтобы убедиться, что они загружены.
Конфигурация Apache
Теперь необходимо активировать несколько модулей, которые требуются для настройки работы нескольких версий PHP с Apache. Эти модули необходимы для интеграции PHP FPM и FastCGI с сервером Apache.
a2enmod actions fastcgi alias proxy_fcgi
Настроим Apache VirtualHost для работы с FPM/FastCGI. В этом руководстве мы будем использовать VirtualHost по умолчанию. Отредактируйте конфигурационный файл VirtualHost с помощью текстового редактора. Вы также можете создать новый VirtualHost в соответствии с вашими требованиями, не забудьте его активировать.
sudo vim /etc/apache2/sites-available/000-default.conf
Обновите конфигурацию следующим образом:
Добавьте следующие строки в файл VirtualHost для настройки PHP-FPM:
ServerName yourdomain.com
DocumentRoot /var/www/html
SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost"
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Замените yourdomain.com на ваш домен и php7.4-fpm.sock на сокет соответствующей версии PHP, которую вы используете.
После внесения изменений сохраните файл и выйдите из редактора. Затем проверьте конфигурацию Apache на наличие ошибок с помощью команды:
sudo apachectl configtest
Если ошибок не найдено, перезапустите Apache для применения изменений:
sudo systemctl restart apache2
Теперь ваш Apache настроен для работы с несколькими версиями PHP через FPM/FastCGI.
Настройка PHP-FPM
Конфигурация окружения для обработки PHP-запросов требует внимания к деталям и правильного выбора параметров. Эффективная работа системы во многом зависит от корректного указания значений, которые отвечают за производительность и безопасность веб-приложений.
Первым шагом является редактирование основного конфигурационного файла. Он обычно располагается по пути /etc/php/7.x/fpm/php-fpm.conf. Здесь можно задать общие настройки, такие как путь к сокету и уровень журналирования. Эти параметры позволяют настроить, как именно будет происходить взаимодействие между сервером и обработчиком PHP.
Следующий этап включает настройку пула процессов. Файл /etc/php/7.x/fpm/pool.d/www.conf содержит важные опции, такие как количество процессов, которые будут обрабатывать запросы. Настройки pm, pm.max_children, pm.start_servers и другие определяют, сколько процессов одновременно может быть активным, что критично для обработки большого объема трафика.
Не менее важно настроить параметры безопасности. Опции listen.owner, listen.group и listen.mode гарантируют, что доступ к сокету будет защищен от несанкционированного доступа. Также стоит учитывать настройки php_admin_value и php_value для установки специфических значений конфигурации PHP, таких как upload_max_filesize или post_max_size.
После внесения всех необходимых изменений следует перезапустить сервис, чтобы применить новые настройки. Это можно сделать с помощью команды systemctl restart php7.x-fpm. После этого важно проверить работу системы и убедиться, что все процессы функционируют корректно.
Тестирование установки
После завершения настройки веб-сервера и интерпретатора PHP важно убедиться в корректности их функционирования. Этот этап позволяет выявить возможные ошибки и подтвердить, что все компоненты работают в гармонии. Проведение проверки необходимо для обеспечения надежности работы вашего проекта.
Первым шагом станет создание простого тестового файла, который поможет определить, правильно ли обработка PHP запросов настроена. Для этого откройте текстовый редактор и создайте файл с именем info.php в каталоге, который используется для хранения веб-страниц. Вставьте в него следующий код:
<?php
phpinfo();
?>
Сохраните изменения и перейдите в браузер, введя адрес вашего сервера с добавлением /info.php. Если всё настроено верно, вы увидите страницу с информацией о версии PHP и установленном окружении. Это означает, что система готова к работе с динамическими веб-приложениями.
Также стоит проверить доступность веб-сервера. Для этого откройте браузер и введите IP-адрес или доменное имя вашего сервера. Вы должны увидеть стандартную страницу приветствия, что свидетельствует о правильной настройке веб-сервера.
Если во время тестирования возникнут ошибки, обратите внимание на журналы событий, чтобы выявить причину. Исправление этих проблем позволит обеспечить стабильную и безопасную работу вашего веб-приложения.
Настройка виртуальных хостов
Виртуальные хосты позволяют организовать несколько веб-сайтов на одном сервере, что значительно упрощает управление ресурсами и повышает эффективность использования. Каждый из таких хостов может иметь свои собственные настройки и конфигурации, что обеспечивает гибкость в обслуживании различных проектов.
Для начала потребуется создать файл конфигурации для каждого хоста. Эти файлы размещаются в специальной директории, и их имена обычно заканчиваются на .conf. Основные параметры, которые следует указать, включают ServerName, DocumentRoot и ErrorLog. Первое определяет доменное имя, второе указывает на директорию с файлами сайта, а третье – на место хранения логов ошибок.
После завершения редактирования конфигурационных файлов, необходимо активировать созданные хосты. Это делается с помощью специальной команды, которая включает в себя перезагрузку службы, чтобы изменения вступили в силу. Также важно проверить правильность настроек с помощью специальной утилиты, что поможет избежать потенциальных проблем при запуске.
После выполнения всех этих шагов, ваш сервер будет готов к обслуживанию нескольких веб-сайтов, что позволит эффективно использовать его ресурсы и расширять функциональность при необходимости.

