Вместо жесткой проводки некоторых путей в моей конфигурации php.ini я хотел бы настроить их с помощью системных переменных, которые будут использоваться в некоторых других местах, таких как моя конфигурация Apache. Я сделал некоторые поиски и не смог найти правильное сочетание ключевых слов, чтобы узнать, есть ли способ сделать это.
Кто-нибудь знает, можно ли это сделать?
upload_tmp_dir = $SCRATCH_HOME/uploads
Теперь SCRATCH_HOME можно экспортировать в среду как / tmp или / var / scratch или что бы я ни хотел.
Эта функция плохо документирована. Прежде чем начать, я просто хочу указать свои конфигурации: я использую Windows 7-64bit, PHP 5.4.3, Apache HTTP Server 2.2.x, я установил свою переменную окружения PHP_HOME=C:\tools\php-5.4.3
(каталог установки PHP). Я использую переменную в файле httpd.conf
и php.ini
Примечание. Я буду опускать некоторый текст для краткости.
В файле httpd.conf
# For PHP 5 do something like this: LoadModule php5_module "${PHP_HOME}/php5apache2_2.dll" AddType application/x-httpd-php .php # configure the path to php.ini PHPIniDir "${PHP_HOME}"
В файле php.ini
; Directory in which the loadable extensions (modules) reside. ; http://php.net/extension-dir ; extension_dir = "./" ; On windows: extension_dir = "${PHP_HOME}/ext"
Согласно документам PHP , переменные среды действительно могут использоваться в файле конфигурации.
Он ничего не говорит о том, какой синтаксис использовать, но он такой же, как и в файле конфигурации Apache, который использует синтаксис * nix. Например, если вы хотите, чтобы PHP использовал системный temp-каталог, вы должны использовать это:
upload_tmp_dir = ${Temp}
Вы можете подтвердить, что он активен со следующим скриптом:
<?php echo "ini: " . ini_get('upload_tmp_dir') . "\n"; echo "env: " . sys_get_temp_dir() . "\n"; echo "temp: " . getenv('temp') . "\n"; echo "tmp: " . getenv('tmp') . "\n"; ?>
Попробуйте настроить PHP через конфигурационные файлы Apache :
PHP_admin_value upload_tmp_dir $SCRATCH_HOME/uploads
Прекрасно работает для меня. (psst, вы не можете изменить upload_tmp_dir
используя .htaccess)