php5.3.3 date.timezone снова директива php.ini не учитывается - PullRequest
7 голосов
/ 22 июня 2011

Система: Debian Lenny / Apache 2.2 / php5.3.3, скомпилированный из источников

Я борюсь с date.timezone в php.ini.

Я могу определить TZ, используя висходный код PHP, но я хотел бы исправить это сразу в INI-файл.

php код : Ok

date_default_timezone_set('Europe/Berlin');

php.ini : Не учитывается, если не настроен в исходном коде

date.timezone = 'Europe/Berlin'

Я также проверил, что я изменил правильный файл php.ini и вмешался в некоторые php.default.ini файлы.
Я проверил в конфигурации apacheфайлы, будут ли мешающие данные TZ env, но их нет.

Не знаю, что делать дальше, поэтому любые советы будут приветствоваться,

thx заранее.

РЕДАКТИРОВАТЬ: я также пытался без или одинарные или двойные кавычки как date.timezone = 'Europe / Berlin', но я все еще получаю "нет значения" в phpinfo.() и приведенный ниже тестовый скрипт возвращают, что date.timezone пуст (например, без значения):

 date_default_timezone_set('America/Los_Angeles');
 $script_tz = date_default_timezone_get();
 $iniset = ini_get('date.timezone') ;
 if (strcmp($script_tz, $iniset)){
   echo "Script timezone ($script_tz) differs from ini-set timezone ($initset).";
 } else {
   echo "Script timezone ($script_tz) and ini-set timezone match.";
 }

EDIT3 : гул, наверное, я обнаружил в php.ini :

 Configuration File (php.ini) Path : /usr/local/php533/php.ini 
 Loaded Configuration File : VOID !

Поэтому мне нужно найти способ убедиться, что Apache каким-то образом ищет нужный php.ini ...

Ответы [ 2 ]

6 голосов
/ 22 июня 2011

Я думаю, что вам не хватает кавычек:

date.timezone = "Europe/Berlin"

Значение является строкой в ​​соответствии с: ini.date.timezone на PHP.net , который должен быть заключен в кавычки.

2 голосов
/ 22 июня 2011

Надеюсь, что это может помочь другим в дистрибутивах Debian:

решено:
необходимо указать Apache загрузить требуемый php.ini файл

Контекст:
PHP, загруженный как модуль Apache (например, DSO)

Как коротко:
оболочка ENV

PHP_INI_SCAN_DIR=/pathtophpini
export PHP_INI_SCAN_DIR

http.conf

# ...
# DSO Modules: PHP as an Apache module
SetEnv PHPRC /usr/pathtophpini
SetEnv PHP_INI_SCAN_DIR /usr/pathtophpini

LoadModule php5_module /pathtophpmod/libphp5.so
PHPINIDir /pathtophpini
# ...

Оболочка

/etc/init.d/apache2 restart   

Теперь просто проверяем, что загруженный файл конфигурации php.ini является правильным, либо используяphp-cli в командной строке или phpinfo ():

/path/to/your/phpcli/bin/php -i | grep php.ini | tail -n2   
# which gives you the expected answer
Configuration File (php.ini) Path => /pathtophpini/php.ini
Additional .ini files parsed => /pathtophpini/php.ini

Еще немного документации:
по этому конкретному вопросу, при условии, что на эту тему очень мало документов, так какЭто своего рода раздел общей ответственности между apache и php:
в stackoverflow
в php manual
askapache

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...