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

Тестирование и настройка PHP‑FastCGI

• 3 min read • Администрирование • Обновлено 28 Nov 2025
Тестирование и настройка PHP‑FastCGI
Тестирование и настройка PHP‑FastCGI

4 Тестирование

Создаём небольшой тестовый PHP-файл, например в веб-сайте www.example1.com:

vi /var/www/web1/web/info.php

| |

Откройте этот файл в браузере (http://www.example1.com/info.php). Если всё настроено верно, вывод phpinfo() будет похож на изображённый ниже, и в строке Server API вы увидите CGI/FastCGI:

Вывод phpinfo с отметкой Server API: CGI/FastCGI

5 Пользовательский php.ini для каждого сайта

Поскольку для каждого сайта используется собственный скрипт-обёртка 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

И укажите /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

Создайте 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:

Вывод phpinfo: Loaded Configuration File установлен на /var/www/web2/php.ini

6 Изменение отдельных параметров PHP

Вместо передачи целого php.ini можно изменить отдельные параметры, добавив ключ -d к исполняемому php-cgi в скрипте-обёртке (или комбинировать оба подхода). Например, чтобы отключить magic_quotes_gpc для сайта www.example2.com, отредактируйте php-fcgi-starter:

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

Затем снова откройте info.php в браузере (http://www.example2.com/info.php) и найдите строку magic_quotes_gpc — она должна быть Off:

Вывод phpinfo: директива magic_quotes_gpc отображается как Off

7 Ссылки


Важно: после изменения PHPRC или параметров запуска php-cgi всегда перезагружайте веб‑сервер и проверяйте вывод phpinfo() для подтверждения применённых настроек.

Критерии приёмки

  • В phpinfo() в строке Server API показано CGI или FastCGI.
  • Loaded Configuration File указывает на ожидаемый php.ini для сайта.
  • При изменении отдельных директив через -d соответствующая строка в phpinfo() отражает новое значение.

Когда это не сработает

  • Если PHP установлен как модуль Apache (mod_php), php-cgi/PHP-FastCGI не используется и PHPRC игнорируется.
  • Неправильные права доступа к php.ini или каталогу (владелец/группа) мешают загрузке файла.
  • SELinux или AppArmor могут блокировать доступ — проверьте журналы безопасности.
  • Неверный путь в PHPRC или опечатка в скрипте-обёртке.

Альтернативные подходы

  • PHP-FPM: современная и гибкая альтернатива для управления пулами процессов PHP.
  • mod_php: проще в настройке для однородных систем, но не позволяет выделять настройки под сайт.
  • Контейнеризация (Docker): изолированные окружения с собственным php.ini и образами.

Мини‑методология внедрения

  1. Создайте тестовый info.php и откройте в браузере.
  2. Установите PHPRC или добавьте -d в php-fcgi-starter для целевого сайта.
  3. Перезагрузите Apache и проверьте phpinfo() на предмет Loaded Configuration File и нужных директив.
  4. Протестируйте функциональность сайта и логирование ошибок.
  5. Зафиксируйте изменения в системе управления конфигурацией (Ansible/Chef/Puppet).

Чек‑лист по ролям

  • Системный администратор: создать/изменить php-fcgi-starter, установить права, перезагрузить сервер.
  • Разработчик: протестировать поведение приложения при новых настройках, проверить обратную совместимость.
  • QA/Тестировщик: проверить ключевые страницы приложения и убедиться в отсутствии ошибок 500/403.

Глоссарий (одной строкой)

  • PHPRC — переменная окружения, указывающая каталог с php.ini для запуска php-cgi.
  • php-cgi — CGI‑исполняемый файл PHP для запуска в режиме FastCGI/CGI.
  • php.ini — основной файл конфигурации PHP.
  • FastCGI — протокол для взаимодействия веб‑сервера и внешних приложений (например, php-cgi).
  • CGI — общий интерфейс для запуска приложений веб‑сервером.

Краткий итог

Использование PHPRC и опции -d в скриптах php-fcgi-starter даёт гибкую возможность управлять конфигурацией PHP на уровне отдельного сайта. Всегда проверяйте изменения через 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 быстро