Система: 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, будут ли мешающие данные Tv env, но нет.
Не знаю, что делать больше, поэтому любые намеки будут приветствоваться,
thx заранее.
EDIT: Я также пробовал без или одиночных или двойных кавычек, как date.timezone = 'Europe / Berlin', но я все еще получаю «нет значения» в phpinfo.
EDIT2: оба phpinfo () и ниже тестовый скрипт возвращают, что дата.timezone пуста (например, no value):
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 : гул, я думаю, я нашел sthg в php.ini :
Configuration File (php.ini) Path : /usr/local/php533/php.ini Loaded Configuration File : VOID !
Поэтому я должен найти способ убедиться, что Apache ищет правильный php.ini каким-то образом …
Я думаю, что вам не хватает котировок:
date.timezone = "Europe/Berlin"
Значение представляет собой строку в соответствии с: ini.date.timezone на PHP.net, которая должна быть заключена в кавычки.
Надеюсь, он может помочь другим в подобных дистрибутивах:
РЕШИТЬ:
необходимо сообщить 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:
on stackoverflow
руководство по php
askapache