Тестирование и настройка PHP-FastCGI для отдельных сайтов
Важно: все команды в примерах предполагают доступ с правами, достаточными для редактирования файлов веб‑клиента и перезагрузки Apache. Меняйте пути и имена пользователей под вашу систему.
4 Тестирование
Создайте небольшой PHP‑файл для теста, например в директории сайта www.example1.com:
vi /var/www/web1/web/info.php| |
Откройте этот файл в браузере: http://www.example1.com/info.php. Если всё настроено верно, вывод phpinfo() будет похож на следующий, и в строке Server API вы увидите CGI/FastCGI:

Краткая методология тестирования:
- Убедитесь, что файл доступен по правильному URL и возвращает статус 200.
- Проверьте строчку Server API — она должна содержать CGI/FastCGI.
- Проверьте путь к загруженному php.ini и входные параметры PHP (см. ниже).
Критерии приёмки:
- URL http://www.example1.com/info.php открывается и отображает страницу phpinfo().
- Server API = CGI/FastCGI.
- Отсутствие ошибок при запуске phpinfo().
5 Индивидуальный php.ini для каждого сайта
Поскольку для каждого сайта запускается собственный wrapper-скрипт php-fcgi-starter, можно указать отдельный файл php.ini для каждого сайта.
Пример: скопируем системный php.ini в директорию сайта /var/www/web2/ и изменим владельца:
cp /etc/php.ini /var/www/web2/
chown web2:web2 /var/www/web2/php.ini(Теперь /var/www/web2/php.ini можно редактировать по необходимости.)
Откройте стартовый скрипт для сайта web2:
vi /var/www/php-fcgi-scripts/web2/php-fcgi-starter…и укажите директорию с php.ini в переменной PHPRC:
| #!/bin/sh PHPRC=/var/www/web2/ export PHPRC export PHP_FCGI_MAX_REQUESTS=5000 export PHP_FCGI_CHILDREN=8 exec /usr/bin/php-cgi |
Перезагрузите Apache:
/etc/init.d/httpd reloadСоздайте файл phpinfo() для www.example2.com:
vi /var/www/web2/web/info.php | |
Откройте http://www.example2.com/info.php — в строке Configuration File (php.ini) Path должен отображаться /var/www/web2/php.ini:

Notes:
- PHPRC указывает PHP, где искать конфигурационный файл php.ini. Можно указывать директорию, в которой лежит php.ini.
- Доступ к php.ini в каталоге сайта позволяет гибко менять настройки под нужды приложения без глобальных изменений.
6 Изменение единичных настроек PHP
Если не требуется целиком новый php.ini, можно изменить отдельную настройку PHP, добавив опцию -d к исполнителю PHP в скрипте-стартере.
Пример: отключим magic_quotes_gpc для сайта www.example2.com.
vi /var/www/php-fcgi-scripts/web2/php-fcgi-starter| #!/bin/sh PHPRC=/etc/ 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/httpd reloadОткройте http://www.example2.com/info.php и найдите строку magic_quotes_gpc — она должна показывать Off:

Подсказки и варианты:
- Можно комбинировать PHPRC и опции -d; опции -d имеют приоритет над значениями в php.ini для текущего процесса.
- Для множества мелких отличий удобно поддерживать единый базовый php.ini и дописывать конкретные флаги через -d.
Чек-лист для ролей
Системный администратор:
- Проверить, что wrapper-скрипты php-fcgi-starter существуют в /var/www/php-fcgi-scripts/
/ - Убедиться, что PHPRC указывает на нужную директорию с php.ini или оставить /etc/
- Перезагрузить Apache и проверить статус службы
- Просмотреть phpinfo() для confirmation Server API и пути php.ini
Разработчик / владелец сайта:
- Создать тестовый info.php с phpinfo()
- Проверить, что требуемые ini-настройки (memory_limit, display_errors и т. п.) применены
- Проверить поведение приложения после изменений конфигурации
Короткое руководство (мини-методология)
- Скопируйте php.ini в директорию сайта, если нужен отдельный конфиг.
- Настройте PHPRC в php-fcgi-starter либо добавьте опции -d для одиночных параметров.
- Перезагрузите Apache (/etc/init.d/httpd reload).
- Откройте info.php и проверьте Server API, Configuration File Path и конкретные параметры.
- Проведите функциональное тестирование сайта.
Замечания по безопасности и конфиденциальности
- Не используйте phpinfo() на продуктивных сайтах открыто — он выводит информацию о конфигурации, модулях и путях. Удаляйте или ограничивайте доступ к info.php после тестирования.
- Если у сайта отдельный php.ini, проверьте права доступа к файлу, чтобы тепличные настройки не могли быть изменены неавторизованными пользователями.
Короткий глоссарий
- PHPRC — переменная окружения, указывающая директорию с php.ini для процесса PHP.
- phpinfo() — функция PHP, выводящая текущую конфигурацию PHP и окружение.
- FastCGI — протокол между веб-сервером и процессами обработки запросов PHP (быстрее, чем классический CGI).
7 Ссылки
- mod_fcgid: http://httpd.apache.org/mod_fcgid/
- Apache: http://httpd.apache.org/
- PHP: http://www.php.net/
- CentOS: http://www.centos.org/
Сводка
- PHP через FastCGI позволяет запускать изолированные процессы для отдельных сайтов; это даёт возможность использовать индивидуальные php.ini или задавать настройки через флаги -d.
- Всегда проверяйте результат через phpinfo() и удаляйте тестовые страницы после проверки.
Конец статьи.
Похожие материалы
HashTab: проверка контрольных сумм в Windows
Экспорт и импорт списков отправителей в Outlook
Как проверить трафик и выбрать маршрут в Google Maps
Microsoft Cruel Solitaire на Windows 10 — как запустить