2013-08-22 2 views
2

В моей конфигурации Apache (2.2) virtualHost я хотел бы отправить мой журнал ошибок в другом месте.Получить переменную среды в PHP-скрипте

<VirtualHost *:80> 

    .... 

    SetEnv toPhp hello 
    ErrorLog "|php /var/www/error.php >>/var/www/logs/vialora.log" 

    .... 

</VirtualHost> 

Однако, в то время как переменная toPhp теперь доступна на сайте это VirtualHost для, он отсутствует в error.php. Как получить доступ к этой переменной среды, если ее значение является динамическим?

+0

так что 'echo $ _SERVER [" toPhp "]' ничего не показывает? Какая у вас ошибка.php? –

+0

'$ stdin = fopen ('php: // stdin', 'r'); ob_implicit_flush (true); var_dump (phpinfo()); ', который красиво var_dumps phpinfo(), но значение toPhp не установлено. – Lg102

+0

Имеются ли какие-либо серверные вары на выходе phpinfo()? Или PHP эффективно вызывается из командной строки через запись ErrorLog в конфигурации vhost? Даже тогда, если я делаю ручной 'export toPhp = hello', за которым следует' php /srv/site/phpinfo.php | grep toPhp', я все еще вижу, что значение toPhp установлено в $ _SERVER –

ответ

0

Из моего виртуального хоста я поставил:

<VirtualHost *:80> 
... 
SetEnv APPLICATION_ENV development 
... 
</VirtualHost> 

Тогда из PHP скрипт внутри этого виртуального хоста я пишу:

// Display errors (just in case) 
ini_set("display_errors", E_ALL | E_STRICT); 

// Define application environment 
defined('APPLICATION_ENV') || 
     define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production')); 

Работая как шарм.

+0

Проблема заключается в том, что вызванный php-скрипт не обрабатывается, как в виртуальном хосте. – Lg102

Смежные вопросы