Назад | Перейти на главную страницу

Apache2.4 и HHVM как FastCGI - разные настройки для каждого VHost?

Мне только что удалось настроить сервер Apache 2.4 с использованием HHVM в режиме FastCGI, используя эту директиву ProxyPassmatch. Проблема в том, что теперь я могу установить другой корневой путь для каждого хоста, но я не могу установить какие-либо другие параметры конфигурации для каждого VHost, такие как include_path, error_log или другие классические настройки PHP ...

Файл VHost:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName host1.local
    DocumentRoot /var/www/host1/root

    ErrorLog ${APACHE_LOG_DIR}/host1_error.log
    CustomLog ${APACHE_LOG_DIR}/host1_access.log combined

    ProxyPassMatch (.php)$ fcgi://127.0.0.1:9000/var/www/host1/root

    # php_value include_path ".:/var/www/host1/includes"
    # php_value error_log "/var/www/host1/log/php_error.log"

    <Directory /var/www/host1/root>
        AllowOverride All
    </Directory>
</VirtualHost>

Есть некоторые отчеты о том, что я также могу настраивать виртуальные хосты в HHVM, но, поскольку Fast-CGI, похоже, устарел. И даже тогда мне пришлось бы предоставить настройки VHost в отдельном файле в дополнение к моему файлу Apache VHost.

Итак ... Как я могу предоставить HHVM разные конфигурации для каждого виртуального хоста?


Обновить Seems I discuvered a Bug (or missing feature) of HHVM while using the FcgidInitialEnv (or fastcgi_param on Nginx) approach described in the answer.

https://github.com/facebook/hhvm/issues/3730

Вы можете передавать параметры через переменную среды PHP_VALUE.

В Apache вы должны использовать FcgidInitialEnv директива (которая применима к виртуальным хостам) для определения всех параметров в одной строке.

FcgidInitialEnv PHP_VALUE "include_path=.:/var/www/host1/includes \n error_log=/var/www/host1/log/php_error.log"