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

Короткое пояснение: phpinfo() выводит текущую конфигурацию PHP, включая путь к php.ini, активные модули и значение Server API. Это самый быстрый способ убедиться, что PHP запускается через нужный механизм (CGI/FastCGI).
5 Индивидуальный php.ini для каждого веб-сайта
Поскольку для каждого сайта запускается свой обёрточный скрипт php-fcgi-starter, можно задать отдельный php.ini для каждого сайта.
Пример: копируем системный php.ini в директорию сайта /var/www/web2/ и назначаем владельца web2:
cp /etc/php5/cgi/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, чтобы интерпретатор PHP использовал этот каталог для поиска php.ini:
| #!/bin/sh PHPRC=/var/www/web2/ export PHPRC export PHP_FCGI_MAX_REQUESTS=5000 export PHP_FCGI_CHILDREN=8 exec /usr/lib/cgi-bin/php |
После изменения перезагрузите Apache:
/etc/init.d/apache2 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, что подтверждает использование индивидуального файла конфигурации.

Когда это полезно
- Разные сайты требуют разных значений memory_limit, upload_max_filesize или timezone.
- Изоляция настроек между клиентами хостинга.
Ограничения
- Если вы используете глобальные модули, изменение php.ini может не отключить расширения, загружаемые через дополнительные ini-файлы в conf.d.
- Следите за правами доступа: PHP-процесс должен иметь возможность читать указанный файл php.ini.
6 Изменение отдельных настроек PHP
Вместо замены целого php.ini можно менять отдельные настройки, добавляя опции -d при запуске PHP в php-fcgi-starter. Это удобно для быстрой корректировки одного параметра.
Пример: отключение magic_quotes_gpc для сайта www.example2.com.
Откройте стартер:
vi /var/www/php-fcgi-scripts/web2/php-fcgi-starter| #!/bin/sh PHPRC=/etc/php5/cgi/ export PHPRC export PHP_FCGI_MAX_REQUESTS=5000 export PHP_FCGI_CHILDREN=8 exec /usr/lib/cgi-bin/php -d magic_quotes_gpc=off |
Перезагрузите Apache:
/etc/init.d/apache2 reloadОткройте http://www.example2.com/info.php и найдите строку magic_quotes_gpc — она должна показывать Off:

Совет: можно комбинировать -d с PHPRC, если нужно установить несколько параметров без полного php.ini.
Проверки и критерии приёмки
- Открыв info.php, в строке Server API должно быть CGI или FastCGI.
- Configuration File (php.ini) Path указывает на ожидаемый файл, если вы настроили PHPRC.
- Конкретные флаги (например, magic_quotes_gpc) отражают значения, заданные через -d или в php.ini.
- Права доступа: владелец и группа файла php.ini соответствуют процессу или пользователю, от имени которого запускается PHP.
Мини-методология: шаги от настройки до проверки
- Подготовьте копию php.ini в каталоге сайта и установите владельца.
- Измените PHPRC в php-fcgi-starter на каталог сайта или оставьте системный PHPRC и добавьте -d для отдельных параметров.
- Перезагрузите Apache (/etc/init.d/apache2 reload).
- Создайте info.php с phpinfo() и откройте его в браузере.
- Проверьте Server API, Configuration File Path и нужные параметры.
- При проблемах проверьте логи Apache и права файлов.
Чек-листы по ролям
Администратор сервера:
- Убедиться, что /usr/lib/cgi-bin/php существует и исполняется.
- Настроить правильные владельца и права для php.ini в каталоге сайта.
- Перезагрузить Apache и проверить логи (/var/log/apache2/error.log).
Разработчик сайта:
- Добавить info.php только временно и удалить после проверки.
- Проверить application error log для предупреждений, связанных с настройками PHP.
- Убедиться, что изменения настроек не влияют на безопасность приложения.
Отладка: типичные проблемы и решения
- PHP не запускается или вы видите пустую страницу: проверьте ошибки в логах Apache и убедитесь, что исполняемый путь к PHP верен.
- Значения не меняются после правок php.ini: возможно, загружаются дополнительные конфигурации из conf.d или используется другой PHPRC.
- Права доступа не позволяют читать php.ini: исправьте владельца и права (chown/chmod).
Полезные ссылки
- mod_fcgid: http://fastcgi.coremail.cn/
- Apache: http://httpd.apache.org/
- PHP: http://www.php.net/
- Debian: http://www.debian.org/
Резюме
- Проверяйте работу PHP через phpinfo() для быстрой валидации конфигурации.
- Для автономных настроек сайтов используйте индивидуальные php.ini и PHPRC.
- Для мелких коррекций применяйте -d в exec команды php в php-fcgi-starter.
- Всегда проверяйте права доступа и логи при возникновении проблем.
Ключевые шаги: подготовить php.ini, настроить PHPRC или добавить -d, перезагрузить Apache и подтвердить через phpinfo().
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента