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

Тестирование и настройка PHP-FastCGI для отдельных сайтов

4 min read PHP Обновлено 20 Nov 2025
Тестирование и настройки PHP-FastCGI
Тестирование и настройки PHP-FastCGI

Важно: все команды в примерах предполагают доступ с правами, достаточными для редактирования файлов веб‑клиента и перезагрузки Apache. Меняйте пути и имена пользователей под вашу систему.

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

Краткая методология тестирования:

  • Убедитесь, что файл доступен по правильному URL и возвращает статус 200.
  • Проверьте строчку Server API — она должна содержать CGI/FastCGI.
  • Проверьте путь к загруженному php.ini и входные параметры PHP (см. ниже).

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

  • URL http://www.example1.com/info.php открывается и отображает страницу phpinfo().
  • Server API = CGI/FastCGI.
  • Отсутствие ошибок при запуске phpinfo().

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

…и укажите директорию с php.ini в переменной 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 — в строке Configuration File (php.ini) Path должен отображаться /var/www/web2/php.ini:

Вывод phpinfo с указанием Configuration File (php.ini) Path = /var/www/web2/php.ini

Notes:

  • PHPRC указывает PHP, где искать конфигурационный файл php.ini. Можно указывать директорию, в которой лежит php.ini.
  • Доступ к php.ini в каталоге сайта позволяет гибко менять настройки под нужды приложения без глобальных изменений.

6 Изменение единичных настроек PHP

Если не требуется целиком новый php.ini, можно изменить отдельную настройку PHP, добавив опцию -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:

/etc/init.d/httpd reload

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

phpinfo: magic_quotes_gpc отображается как Off

Подсказки и варианты:

  • Можно комбинировать PHPRC и опции -d; опции -d имеют приоритет над значениями в php.ini для текущего процесса.
  • Для множества мелких отличий удобно поддерживать единый базовый php.ini и дописывать конкретные флаги через -d.

Чек-лист для ролей

Системный администратор:

  • Проверить, что wrapper-скрипты php-fcgi-starter существуют в /var/www/php-fcgi-scripts//
  • Убедиться, что PHPRC указывает на нужную директорию с php.ini или оставить /etc/
  • Перезагрузить Apache и проверить статус службы
  • Просмотреть phpinfo() для confirmation Server API и пути php.ini

Разработчик / владелец сайта:

  • Создать тестовый info.php с phpinfo()
  • Проверить, что требуемые ini-настройки (memory_limit, display_errors и т. п.) применены
  • Проверить поведение приложения после изменений конфигурации

Короткое руководство (мини-методология)

  1. Скопируйте php.ini в директорию сайта, если нужен отдельный конфиг.
  2. Настройте PHPRC в php-fcgi-starter либо добавьте опции -d для одиночных параметров.
  3. Перезагрузите Apache (/etc/init.d/httpd reload).
  4. Откройте info.php и проверьте Server API, Configuration File Path и конкретные параметры.
  5. Проведите функциональное тестирование сайта.

Замечания по безопасности и конфиденциальности

  • Не используйте phpinfo() на продуктивных сайтах открыто — он выводит информацию о конфигурации, модулях и путях. Удаляйте или ограничивайте доступ к info.php после тестирования.
  • Если у сайта отдельный php.ini, проверьте права доступа к файлу, чтобы тепличные настройки не могли быть изменены неавторизованными пользователями.

Короткий глоссарий

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

7 Ссылки

Сводка

  • PHP через FastCGI позволяет запускать изолированные процессы для отдельных сайтов; это даёт возможность использовать индивидуальные php.ini или задавать настройки через флаги -d.
  • Всегда проверяйте результат через phpinfo() и удаляйте тестовые страницы после проверки.

Конец статьи.

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

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

HashTab: проверка контрольных сумм в Windows
Безопасность

HashTab: проверка контрольных сумм в Windows

Экспорт и импорт списков отправителей в Outlook
Почта

Экспорт и импорт списков отправителей в Outlook

Как проверить трафик и выбрать маршрут в Google Maps
Навигация

Как проверить трафик и выбрать маршрут в Google Maps

Microsoft Cruel Solitaire на Windows 10 — как запустить
Игры

Microsoft Cruel Solitaire на Windows 10 — как запустить

Как задать рабочее время и место в Outlook
Инструкции

Как задать рабочее время и место в Outlook

Стрим с ПК на телевизор по сети — DLNA и Sony
How-to

Стрим с ПК на телевизор по сети — DLNA и Sony