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

Настройка PHP-FastCGI: тестирование, отдельные php.ini и изменение настроек

• 4 min read • Инструкции • Обновлено 28 Nov 2025
PHP-FastCGI: тестирование и индивидуальные php.ini
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.

PHP info: 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, что подтверждает использование индивидуального файла конфигурации.

PHP info: 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:

PHP info: 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.

Мини-методология: шаги от настройки до проверки

  1. Подготовьте копию php.ini в каталоге сайта и установите владельца.
  2. Измените PHPRC в php-fcgi-starter на каталог сайта или оставьте системный PHPRC и добавьте -d для отдельных параметров.
  3. Перезагрузите Apache (/etc/init.d/apache2 reload).
  4. Создайте info.php с phpinfo() и откройте его в браузере.
  5. Проверьте Server API, Configuration File Path и нужные параметры.
  6. При проблемах проверьте логи 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).

Полезные ссылки

Резюме

  • Проверяйте работу PHP через phpinfo() для быстрой валидации конфигурации.
  • Для автономных настроек сайтов используйте индивидуальные php.ini и PHPRC.
  • Для мелких коррекций применяйте -d в exec команды php в php-fcgi-starter.
  • Всегда проверяйте права доступа и логи при возникновении проблем.

Ключевые шаги: подготовить php.ini, настроить PHPRC или добавить -d, перезагрузить Apache и подтвердить через phpinfo().

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро