Гид по технологиям

PHP-FastCGI: тестирование и индивидуальные php.ini для сайтов

3 min read PHP Обновлено 01 Oct 2025
PHP-FastCGI: тест и кастомный php.ini
PHP-FastCGI: тест и кастомный php.ini

Важно: выполнять команды от пользователя с правами администратора или через sudo. Всегда делайте резервную копию оригинальных файлов перед изменениями.

4 Тестирование

Теперь создаём простой PHP-файл для тестирования на сайте, например на www.example1.com.

Создайте файл:

vi /srv/www/web1/web/info.php

Вставьте в файл следующее:

Откройте в браузере адрес http://www.example1.com/info.php. При корректной настройке вывод phpinfo() должен показаться похожим на ожидаемый, и в строке Server API вы увидите CGI или FastCGI.

Вывод phpinfo() с указанием Server API: CGI/FastCGI

Если страница не открывается или отсутствует информация о FastCGI, проверьте логи Apache и права на файлы.

5 Индивидуальный php.ini для каждого сайта

Поскольку для каждого сайта используется собственный скрипт-обёртка php-fcgi-starter, можно назначать разные php.ini на сайт. Пример: скопируем системный php.ini в директорию сайта www.example2.com и назначим владельца web2.

cp /etc/php5/fastcgi/php.ini /srv/www/web2/
chown web2:web2 /srv/www/web2/php.ini

Отредактируйте /srv/www/web2/php.ini по своему усмотрению.

Откройте скрипт-обёртку для сайта web2:

vi /srv/www/php-fcgi-scripts/web2/php-fcgi-starter

И укажите путь к директории с php.ini в переменной PHPRC:

#!/bin/sh
PHPRC=/srv/www/web2/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/bin/php-cgi

Перезапустите Apache:

/etc/init.d/apache2 restart

Создайте тестовый phpinfo() для www.example2.com:

vi /srv/www/web2/web/info.php

Откройте http://www.example2.com/info.php и убедитесь, что в строке Loaded Configuration File указан путь /srv/www/web2/php.ini.

Строка Loaded Configuration File указывает на /srv/www/web2/php.ini

6 Изменение отдельных настроек PHP

Если не требуется целый php.ini, можно менять отдельные параметры, добавляя ключ -d к команде запуска php-cgi в скрипте-обёртке. Например, чтобы отключить magic_quotes_gpc для сайта www.example2.com, измените скрипт следующим образом:

vi /srv/www/php-fcgi-scripts/web2/php-fcgi-starter

Содержимое скрипта:

#!/bin/sh
PHPRC=/etc/php5/fastcgi/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/bin/php-cgi -d magic_quotes_gpc=off

Перезапустите Apache снова:

/etc/init.d/apache2 restart

Откройте http://www.example2.com/info.php и проверьте, что magic_quotes_gpc отображается как Off.

Вывод phpinfo() с magic_quotes_gpc = Off

Методология и проверка изменений

Мини-методология:

  1. Создать резервные копии оригинальных файлов конфигурации.
  2. Внести минимальные необходимые изменения в скрипт-обёртку или в локальный php.ini.
  3. Перезапустить веб-сервер.
  4. Проверить phpinfo() и логи на предмет ошибок.
  5. Наблюдать поведение приложения в течение изменения нагрузки.

Критерии приёмки:

  • phpinfo() показывает ожидаемый Server API и/или Loaded Configuration File.
  • Изменённый параметр PHP реально применён (см. вывод phpinfo()).
  • В логах Apache/PHP отсутствуют критические ошибки после изменения.

Контрольные тесты и сценарии приёмки

Тест-кейсы:

  • Открыть /info.php и проверить статус HTTP 200.
  • Убедиться, что Server API равен CGI или FastCGI.
  • Для локального php.ini — проверить Loaded Configuration File указывает на файл в каталоге сайта.
  • Для отдельных параметров — найти в phpinfo() соответствующую строку и подтвердить значение.

Роли и чек-лист по задачам

Для системного администратора:

  • Сделать резервные копии /etc/php5/fastcgi/php.ini и скриптов запуска.
  • Настроить владельца и права доступа для локального php.ini.
  • Перезапустить Apache и проверить логи.

Для разработчика сайта:

  • Проверить совместимость приложения с изменёнными настройками PHP.
  • Протестировать функциональность приложения после переключения php.ini.

Типичные проблемы и пути решения

  • Страница info.php не открывается:

    • Проверьте права на файл и директорию.
    • Посмотрите error_log Apache.
  • PHP не использует локальный php.ini:

    • Убедитесь, что PHPRC указывает на директорию, а не на файл.
    • Проверьте, что скрипт-обёртка исполняем и используется нужным FCGI-процессом.
  • Изменение параметра через -d не применяется:

    • Проверьте синтаксис ключа и значение параметра.
    • Убедитесь, что перезапуск сервера выполнен и нет других перекрывающих настроек.

Факт-бокс

  • Рекомендуемое значение PHP_FCGI_MAX_REQUESTS: наблюдайте и адаптируйте под нагрузку.
  • PHP_FCGI_CHILDREN: стартовое значение 4–8 для большинства небольших сайтов.
  • Обновления PHP могут менять поведение CGI/FastCGI — тестируйте после обновлений.

Ссылки и ресурсы

Итог: используя обёртки php-fcgi-starter и переменную PHPRC или ключ -d, вы можете гибко управлять конфигурацией PHP на уровне каждого сайта. Всегда тестируйте изменения по шагам и следите за логами.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

HDR в Stalker 2 — как включить и настроить
Игры

HDR в Stalker 2 — как включить и настроить

Подсказки слов в стиле смартфона для Windows
Windows

Подсказки слов в стиле смартфона для Windows

Сохранять ссылки из Twitter для чтения позже
Продуктивность

Сохранять ссылки из Twitter для чтения позже

Как майнить Dogecoin на ноутбуке
Криптовалюта

Как майнить Dogecoin на ноутбуке

Разные скорости для тачпада и мыши
Советы

Разные скорости для тачпада и мыши

Исправить Fatal D3D Error 25 в RE4 Remake
Игры

Исправить Fatal D3D Error 25 в RE4 Remake