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

Важно: phpinfo() показывает текущую конфигурацию PHP и помогает убедиться, что сайт использует ожидаемый механизм исполнения.
5 Индивидуальный php.ini для каждого веб‑сайта
Поскольку для каждого сайта используется собственный wrapper‑скрипт php-fcgi-starter, можно назначать разные php.ini для разных сайтов. Для примера скопируем системный php.ini в каталог сайта www.example2.com и зададим владельца:
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И укажите путь /var/www/web2/ в переменной 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Создайте test‑файл phpinfo для www.example2.com:
vi /var/www/web2/web/info.php| |
Откройте http://www.example2.com/info.php — строка Loaded Configuration File должна показывать /var/www/web2/php.ini:

6 Изменение отдельных настроек PHP
Если не хочется передавать целый php.ini, можно менять отдельные параметры прямо в скрипте php-fcgi-starter, добавив ключ -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:
/ect/init.d/httpd reload(Примечание: проверьте правильность пути и прав на файлы.) Затем снова откройте info.php и найдите строку magic_quotes_gpc — она должна показывать Off:

Практическая методология проверки
- Создайте файл info.php в корне сайта и откройте его в браузере.
- Убедитесь, что Server API показывает CGI/FastCGI.
- Проверьте Loaded Configuration File — это должен быть ожидаемый php.ini.
- Для одиночных изменений используйте exec /usr/bin/php-cgi -d option=value в php-fcgi-starter.
- После изменений перезагрузите Apache и очистите кэш браузера.
Критерии приёмки
- phpinfo() отображается без ошибок.
- Server API = CGI/FastCGI.
- Loaded Configuration File указывает на ожидаемый php.ini для данного сайта.
- Изменённые параметры (через -d или php.ini) видимы в выводе phpinfo().
Чек‑лист для администратора
- Скопирован php.ini в каталог web2 и установлены права владельца.
- В php-fcgi-starter указан корректный PHPRC.
- При необходимости добавлены опции -d в exec-команду.
- Перезагружен Apache: /etc/init.d/httpd reload.
- Проверен вывод phpinfo() на целевом сайте.
Факт‑бокс с ключевыми числами
- PHP_FCGI_MAX_REQUESTS обычно устанавливают в тысячи, чтобы избежать утечек памяти процессами.
- PHP_FCGI_CHILDREN устанавливает количество дочерних процессов в режиме prefork для обработки запросов.
(Значения подбирайте под нагрузку и доступные ресурсы сервера.)
Советы по устранению неполадок
- Если phpinfo() не открывается, проверьте логи Apache и права на файл info.php.
- Если Server API не CGI/FastCGI, проверьте, что виртуальный хост использует нужный wrapper‑скрипт.
- Если Loaded Configuration File не совпадает с ожидаемым, убедитесь, что PHPRC указывает на каталог с php.ini и у процесса есть права на чтение.
- После изменения php-fcgi-starter убедитесь, что скрипт исполняемый (chmod +x).
Важно: изменение глобального /etc/php.ini затрагивает все сайты, поэтому для изолированной настройки лучше использовать локальные php.ini или -d опции.
Сравнение подходов
- Отдельный php.ini на сайт: полный контроль, удобно для крупных и изолированных проектов. Минус — дублирование и необходимость поддержки нескольких файлов.
- Параметры через -d: удобно для единичных настроек и быстрого тестирования. Минус — не подходит для большого числа правок.
Ссылки
- mod_fcgid: http://fastcgi.coremail.cn/
- Apache: http://httpd.apache.org/
- PHP: http://www.php.net/
- Fedora: http://fedoraproject.org/
Короткое резюме
Используйте phpinfo() для проверки текущего режима работы PHP и загруженного php.ini. Для каждого сайта можно задать свой php.ini через PHPRC в php-fcgi-starter или поменять отдельные настройки через опцию -d. Всегда проверяйте вывод phpinfo() и логи сервера после изменений.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента