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

Важно: если вместо CGI/FastCGI вы видите Apache модуль (например, Apache 2.0 Handler), это значит, что PHP работает как модуль, а не через FastCGI — проверьте конфигурацию Apache и модуль mod_fcgid.
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Вставьте или поправьте строку PHPRC, чтобы указывать путь к директории с php.ini:
#!/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:
/et c/init.d/httpd reload(если в системе другой путь к скрипту управления службой — используйте соответствующий для вашей ОС).
Создайте аналогичный info.php для 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:

Совет: держите минимально необходимые изменения в локальных php.ini, документируйте их и храните резервные копии.
6 Изменение одной настройки PHP
Если не нужно полностью заменять php.ini, можно изменить отдельные директивы, добавив ключ -d к вызову php-cgi в php-fcgi-starter. Пример: отключим magic_quotes_gpc для сайта web2.
Откройте стартер:
vi /var/www/php-fcgi-scripts/web2/php-fcgi-starterИзмените файл так, чтобы exec запускал php-cgi с нужным параметром:
#!/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:
/et c/init.d/httpd reloadЗатем обновите http://www.example2.com/info.php и найдите строку magic_quotes_gpc — она должна показать Off:

Примечание: ключи -d имеют приоритет над php.ini и удобны для быстрых правок на уровне процесса.
7 Ссылки
- mod_fcgid: http://fastcgi.coremail.cn/
- Apache: http://httpd.apache.org/
- PHP: http://www.php.net/
- CentOS: http://www.centos.org/
Мини-методология: быстрая проверка конфигурации
- Создайте info.php с phpinfo().
- Откройте в браузере и найдите Server API и Configuration File Path.
- При несоответствии проверьте php-fcgi-starter: PHPRC, параметры exec и права доступа к php.ini.
- После правок перезагрузите httpd и очистите кеш браузера.
Чеклист по ролям
Администратор сервера:
- Проверить права владельца и группу на локальные php.ini.
- Убедиться, что PHPRC указывает на директорию с корректным php.ini.
- Логировать перезапуски и изменения.
Разработчик/DevOps:
- Использовать -d для тестовых изменений.
- Хранить копии php.ini в системе контроля версий.
Тестировщик:
- Проверить phpinfo() и конкретные директивы (timezone, memory_limit, display_errors).
- Описать шаги по воспроизведению в баг-репорте.
Когда это не работает — типичные причины
- Неправильные права доступа к /var/www/webX/php.ini. Проверьте владельца и права.
- PHPRC указывает на директорию, но внутри нет php.ini или файл не читается.
- Apache продолжает использовать модульный PHP (libapache2-mod-php) — отключите его, если нужен только FastCGI.
- Параметры в скрипте стартер некорректны (опечатки, неправильный путь к php-cgi).
Рекомендации по безопасности
- Не храните чувствительные данные (пароли, ключи) в php.ini в открытом виде; используйте защищённые хранилища.
- Устанавливайте минимально необходимые права доступа на файлы конфигурации (например, 640 или 600 при необходимости).
- Ограничьте количество дочерних процессов и максимальное число запросов (PHP_FCGI_CHILDREN, PHP_FCGI_MAX_REQUESTS) под нагрузку сервера.
Краткий словарь
- PHPRC — переменная окружения, указывающая директорию, где искать php.ini.
- php-fcgi-starter — wrapper-скрипт, запускающий php-cgi с нужными параметрами для сайта.
- -d
= — ключ для передачи одиночной директивы PHP при запуске.
Критерии приёмки
- На странице info.php видно Server API: CGI/FastCGI.
- Configuration File (php.ini) Path указывает на ожидаемый локальный файл.
- Изменённые директивы отражаются в выводе phpinfo().
Итог
Используя отдельные php-fcgi-starter скрипты и PHPRC, вы можете гибко управлять конфигурацией PHP для каждого сайта. Для мелких правок удобно применять ключ -d, а для более серьёзных — локальный php.ini. Всегда проверяйте права доступа и перезапускайте веб-сервер после изменений.
Важно: документируйте изменения и тестируйте на этапе разработки перед деплоем в продакшен.
Похожие материалы
Как сбросить Logitech G Pro Wireless
Отключить виджеты в Windows 11 — 3 способа
Отключить автозапуск видео в Facebook (Android/iOS)
Скопировать TWRP‑резервные копии на ПК
FTP в Linux: подключение, команды и безопасность