Не настроен параметр ini файла date timezone
Я использую php5.5 и получение этой ошибки всякий раз, когда я использовал функцию даты в PHP:
загруженный файл конфигурации находится здесь:
поэтому я изменил дату.установка часового пояса в это:
затем я перезапускаю сервер:
но все равно получаю эту ошибку, я попытался проверить .ini-файл в дополнительном расположении ini-файла, но ни один из них не переопределяет дату.настройка часового пояса
Я проверил php.разрешение ini-файла, но все еще не работает пожалуйста, направьте меня, чтобы решить эту проблему, спасибо..
давайте найдем правильный php.ini. Запустите это в apache / nginx / любом веб-сервере, который вы используете (потому что версия командной строки может отличаться от используемой ею).
чем .ini на выходе? Все тот же?
после php.ini edit, просто перезапустите веб-сервер (apache или nginx).
наконец-то решил мою проблему, это мой загруженный файл конфигурации:
изменена дата.часовой пояс здесь, но он не работает.
Итак, я проверяю " сканировать этот dir для дополнительного .ini-файлы " значения в phpinfo (), которые указывают на:
затем я ищу дату.часовой пояс у всех файлов в этой папке, но не нашел.
Это мой дополнительный .ini-файл проанализировал значение в phpinfo ():
Я изменил файл /etc/php5 с/apache2 не/конф.d / 20-xdebug.ini, и добавил эту строку:
очень странно, но это решило мою проблему .
вы должны проверить, найдите php.в, если где-то есть еще один.
для меня. там должен быть CLI для интерфейса командной строки:
это работает для меня сейчас.
другим решением для меня после компиляции PHP из исходного кода было проверить php.ini фактически загружал файл конфигурации. Из командной строки
перезапустить PHP (в моем случае /etc/init.d/php-fpm stop , /etc/init.d/php-fpm start ) и он отлично работает. По какой-то причине он был скопирован неправильно.
- Дистрибутив: Centos 7
- Веб-Сервер: Nginx
- тип: экземпляр EC2
недавно я столкнулся с той же проблемой с PHP 5.6.4.
- в PHP 5.6.4 ведет себя странно
- в PHP 5.6.11 ведет себя нормально, как и ожидалось
когда я ставлю date.timezone опция конфигурации в разделе [PHP] в файле конфигурации отлично работает для PHP 5.6.4. Например я добавил опцию в самом начале
но когда я поставил настройки, как это показано в Примере под [Date] раздел он работает не так, как ожидалось, похоже, что опция игнорируется
еще раз, проблема произошла для меня только с PHP 5.6.4. Когда я изменил опцию на сервере с PHP 5.6.11, она вела себя точно так, как я ожидал.
проверьте наличие конфликтующих настроек в php.ini, у меня была такая же проблема, и в моем случае настройки xdebug определены до даты.часовой пояс, вызывающий эту вещь: для более подробной информации см.:PHP Xdebug issue - дата.часовой пояс и сеанс.save_path undefined
Он работал для меня, когда я заметил, что дата.запись часового пояса в PHP.ini был прокомментирован. После удаления точки с запятой часовой пояс был установлен правильно.
некоторые установщики приложений php командной строки (например, установщик symfony или даже когда PHP-скрипты запускаются из cli) используют ini-файл внутри каталога php-cli
это решило мою аналогичную проблему в процессе проверки зависимостей при установке Symfony.
я исправил это в Mac OSX El Captain, создав структуру папок: / Library/Server/Web/Config / php, а затем создав php.ini внутри этой новой папки php только с датой.директива часового пояса.
Если вы установили дату.значение часового пояса в PHP.ini но он не работает (т. е.. локальное значение и основное значение разные), то вам может потребоваться обновить что-то вроде этого в файле конфигурации apache:
в моем случае у меня было 2 date.timezone= записи в php.ini-файл и последний был переопределен первым. удаление одного из них решило мою проблему.
I'm using php5.5 and getting this error whenever I used the date function in PHP:
so I changed the date.timezone setting into this:
Then I restart the server:
but still getting this error, I tried to check the .ini file in the Additional ini file location but none of it is overriding the date.timezone setting
I've checked the php.ini file permission, but still not working please guide me to solve this problem, thanks..
Note: the php-cli 's php.ini file is different then apache2 's php.ini file. I suggest symbolic linking one to another to keep them in sync and avoid confusion!
12 Answers 12
Let's locate the correct php.ini. Fire this within apache / nginx / whatever web server deamon your using (because the command line version may be different by the one used by it).
What's the .ini in the output? Still the same?
After the php.ini edit, just restart the webserver (apache or nginx) .
finally solved my problem, this is my Loaded Configuration File:
modified the date.timezone here but it's not working.
So, I check the "Scan this dir for additional .ini files " values in phpinfo() which point to:
then I search date.timezone from all files in that folder but found none.
this is my Additional .ini file parsed value in phpinfo():
I modified /etc/php5/apache2/conf.d/20-xdebug.ini, and appended this line:
very weird but this solved my problem .
I also wanted to add that I found an .ini file in my "additional .ini files" directory called 99-liip-developer.ini, not sure how it got there but it had date.timezone = Europe/Zurich and was driving me nuts, deleted and my code in the php.ini file worked properly
You should check out by locate php.in, if there somewhere has another one.
for me. there should have CLI for command line interface:
change the /etc/php5/cli/php.ini
It works for me now.
Another solution for me after compiling PHP from source was to check php.ini was actually loading a config file. From command line
Restart php (in my case, /etc/init.d/php-fpm stop , /etc/init.d/php-fpm start ) and it works fine. For some reason it got copied wrong.
- Distro: Centos 7
- Web Server: Nginx
- Type: EC2 Instance
(on macOS Sierra here): Note that in my installation, php -i | grep php.ini was telling me that my php.ini was /etc/php.ini. Yet, when i ran php --ini , I was able to see that my php.ini was actually loading from /usr/local/etc/php/5.6/php.ini. I don't know why php cli shows 2 values, but in case this helps someone.
I've faced the same issue recently with PHP 5.6.4.
- PHP 5.6.4 behaves strange
- PHP 5.6.11 behaves normally as expected
When I put the date.timezone configuration option under [PHP] section in the configuration file it works fine for PHP 5.6.4. For example I've added the option at the very beginning of the php.ini file
But when I put the configuration option how this is shown in the example under [Date] section it does not work as expected, it looks like the option is ignored
One more time, the issue happened for me only with PHP 5.6.4. When I changed the option on the server with PHP 5.6.11 it behaved exactly like I expected.
As I am trying to install Roundcube which requires to set date.timezone, I would like to set date.timezone by filling the date.timezone field in php.ini.
Server Configuration
- Debian 9 (Stretch)
- PHP 7.0.19-1 (cli) (built: May 11 2017 14:04:47) ( NTS )
- Apache/2.4.25 (Debian)
What I tried
And I always restarted Apache after any change.
Nothing change in phpinfo, the date.timezone field is always set to "no value" and the first step of the installation of Roundcube, date.timezone is NOT OK.
I read many pretty old posts about this type of issue but the different solutions did not work for me. Any idea?
EDIT
According to phpinfo():
Configuration File (php.ini) Path
Loaded Configuration File
Scan this dir for additional .ini files
Additional .ini files parsed
/etc/php/7.0/apache2/conf.d/10-mysqlnd.ini, /etc/php/7.0/apache2/conf.d/10-opcache.ini, /etc/php/7.0/apache2/conf.d/10-pdo.ini, /etc/php/7.0/apache2/conf.d/15-xml.ini, /etc/php/7.0/apache2/conf.d/20-calendar.ini, /etc/php/7.0/apache2/conf.d/20-ctype.ini, /etc/php/7.0/apache2/conf.d/20-curl.ini, /etc/php/7.0/apache2/conf.d/20-dom.ini, /etc/php/7.0/apache2/conf.d/20-exif.ini, /etc/php/7.0/apache2/conf.d/20-fileinfo.ini, /etc/php/7.0/apache2/conf.d/20-ftp.ini, /etc/php/7.0/apache2/conf.d/20-gd.ini, /etc/php/7.0/apache2/conf.d/20-gettext.ini, /etc/php/7.0/apache2/conf.d/20-iconv.ini, /etc/php/7.0/apache2/conf.d/20-imagick.ini, /etc/php/7.0/apache2/conf.d/20-imap.ini, /etc/php/7.0/apache2/conf.d/20-intl.ini, /etc/php/7.0/apache2/conf.d/20-json.ini, /etc/php/7.0/apache2/conf.d/20-mbstring.ini, /etc/php/7.0/apache2/conf.d/20-mcrypt.ini, /etc/php/7.0/apache2/conf.d/20-memcache.ini, /etc/php/7.0/apache2/conf.d/20-mysqli.ini, /etc/php/7.0/apache2/conf.d/20-pdo_mysql.ini, /etc/php/7.0/apache2/conf.d/20-pdo_sqlite.ini, /etc/php/7.0/apache2/conf.d/20-phar.ini, /etc/php/7.0/apache2/conf.d/20-posix.ini, /etc/php/7.0/apache2/conf.d/20-pspell.ini, /etc/php/7.0/apache2/conf.d/20-readline.ini, /etc/php/7.0/apache2/conf.d/20-recode.ini, /etc/php/7.0/apache2/conf.d/20-shmop.ini, /etc/php/7.0/apache2/conf.d/20-simplexml.ini, /etc/php/7.0/apache2/conf.d/20-snmp.ini, /etc/php/7.0/apache2/conf.d/20-sockets.ini, /etc/php/7.0/apache2/conf.d/20-sqlite3.ini, /etc/php/7.0/apache2/conf.d/20-sysvmsg.ini, /etc/php/7.0/apache2/conf.d/20-sysvsem.ini, /etc/php/7.0/apache2/conf.d/20-sysvshm.ini, /etc/php/7.0/apache2/conf.d/20-tidy.ini, /etc/php/7.0/apache2/conf.d/20-tokenizer.ini, /etc/php/7.0/apache2/conf.d/20-wddx.ini, /etc/php/7.0/apache2/conf.d/20-xmlreader.ini, /etc/php/7.0/apache2/conf.d/20-xmlrpc.ini, /etc/php/7.0/apache2/conf.d/20-xmlwriter.ini, /etc/php/7.0/apache2/conf.d/20-xsl.ini
Я использую php5.5 и получаю эту ошибку всякий раз, когда использую функцию даты в PHP:
загруженный файл конфигурации находится здесь:
поэтому я изменил настройку date.timezone на это:
Затем перезапускаю сервер:
но по-прежнему получаю эту ошибку, я попытался проверить файл .ini в дополнительном расположении файла ini, но ни один из них не отменяет настройку date.timezone
Я проверил разрешение файла php.ini, но все еще не работает, пожалуйста, помогите мне решить эту проблему, спасибо ..
Примечание: в php-cli «S php.ini файла отличается то apache2 » s php.ini файл. Я предлагаю символически связать друг с другом, чтобы синхронизировать их и избежать путаницы!
Найдите правильный файл php.ini. Запустите это в apache / nginx / на любом веб-сервере, который вы используете (поскольку версия командной строки может отличаться от используемой ею).
Какой .ini на выходе? Все тот же?
После редактирования php.ini просто перезапустите веб-сервер (apache или nginx) .
наконец решил мою проблему, это мой загруженный файл конфигурации:
изменил date.timezone здесь, но он не работает.
Итак, я проверяю значения «Сканировать этот каталог на наличие дополнительных файлов .ini» в phpinfo (), которые указывают на:
затем я ищу date.timezone во всех файлах в этой папке, но не нашел.
это мое значение дополнительного анализа файла .ini в phpinfo ():
Я изменил /etc/php5/apache2/conf.d/20-xdebug.ini и добавил эту строку:
очень странно, но это решило мою проблему .
Я также хотел добавить, что я нашел файл .ini в моем каталоге "дополнительных файлов .ini" под названием 99-liip-developer.ini, не знаю, как он туда попал, но он сводил date.timezone = Europe/Zurich меня с ума, удалил и мой код в файл php.ini работал правильно
Вы должны проверить, найдя php.in, если где-то есть еще один.
для меня. там должен быть CLI для интерфейса командной строки:
У меня это работает сейчас.
Еще одно решение для меня после компиляции PHP из исходников - проверить, действительно ли php.ini загружает файл конфигурации. Из командной строки
Перезагрузите php (в моем случае /etc/init.d/php-fpm stop , /etc/init.d/php-fpm start ), и он отлично работает. По какой-то причине скопировали неправильно.
- Дистрибутив: Centos 7
- Веб-сервер: Nginx
- Тип: Экземпляр EC2
(здесь на macOS Sierra): обратите внимание, что в моей установке php -i | grep php.ini мне говорилось, что мой php.ini был /etc/php.ini . Тем не менее, когда я запустился php --ini , я смог увидеть, что мой php.ini на самом деле загружается из /usr/local/etc/php/5.6/php.ini . Я не знаю, почему php cli показывает 2 значения, но на случай, если это кому-то поможет.
Недавно я столкнулся с той же проблемой с PHP 5.6.4.
- PHP 5.6.4 ведет себя странно
- PHP 5.6.11 работает нормально, как ожидалось
Когда я помещаю параметр date.timezone конфигурации в раздел [PHP] файла конфигурации, он отлично работает с PHP 5.6.4. Например, я добавил опцию в самом начале php.ini файла
Но когда я помещаю параметр конфигурации, как это показано в примере в [Date] разделе, он не работает должным образом, похоже, что параметр игнорируется
Еще раз проблема возникла у меня только с PHP 5.6.4. Когда я изменил опцию на сервере с PHP 5.6.11, он вел себя так, как я ожидал.
Я запускаю phpinfo () в MAMP, и результирующая таблица показывает «нет значения» в обоих столбцах строки date.timezone.
Кроме того, на странице отображается следующее:
Предупреждение: phpinfo () [function.phpinfo]: полагаться на настройки часового пояса системы небезопасно. Вам необходимо использовать параметр date.timezone или функцию date_default_timezone_set (). Если вы использовали какой-либо из этих методов и по-прежнему получаете это предупреждение, вы, скорее всего, неправильно написали идентификатор часового пояса. Мы выбрали America / New_York для EST / -5.0 / no DST вместо в /Applications/MAMP/bin/mamp/phpinfo.php
Однако в файле php.ini настройка выглядит следующим образом:
date.timezone = Америка / Нью-Йорк
Я предвижу рекомендацию проверить правильность пути к php.ini - я уже сделал это, и путь действительно правильный: /Applications/MAMP/conf/php5.3/php.ini - это файл, который имеет установленное значение.
Как я могу решить проблему? Что мне не хватает?
Буду признателен за помощь знающего человека.
Если вы недавно установили часовой пояс в ini-файле, перезапустили ли вы также сервер? Это необходимо для того, чтобы изменения вступили в силу.
Вы убедились, что используете правильный php.i --- ой. Проклятие. Ты уверен ? Обычно в этом виноват. Вы меняли значение, или все было так с самого начала? Если вы его изменили, перезапускали ли вы службу?
@Charles Исправьте php.ini, несколько раз изменив значения, чтобы посмотреть, не изменится ли что-нибудь, каждый раз перезагружайте серверы. Все-таки «не имеет значения» и предупреждение.
Я знаю, что могу немного опоздать с ответом на этот вопрос, но на нескольких сайтах я вижу, что вы спрашиваете об установке правильного часового пояса в MAMP.
Следует отметить, что есть два места для файла php.ini для той версии php, которую вы используете. MAMP может загружать его с другого пути, чем тот, который вы редактируете.
Например, допустим, мы используем php 5.3. Вот два местоположения файла php.ini, которые могут запутать кого-то, где редактировать.
Кажется, вы редактируете его в этом месте ниже:
Редактирование часового пояса во втором пути у меня не сработало, но изменение часового пояса в первом сработало. Возможно, вы редактируете не тот файл, даже если он выглядит одинаково. Я тестировал это на своей версии. Запуск в файле php и проверка пути к файлу php.ini всегда будет показывать правильный путь.
Также, чтобы указать, использование двойных кавычек вокруг значения date.timezone будет работать. Например, в моем файле php.ini работает следующее.
Также значение по умолчанию было заключено в двойные кавычки.
Я также использовал MAMP версии 2.1.1 при тестировании.
Не уверен, почему (a) MAMP переопределяет ваш параметр php.ini, (b) PHP не выдает уведомление / предупреждение при использовании переменной env TZ, даже если он говорит, что это будет, но это решение сработало для меня с использованием MAMP 2.0.5 с PHP 5.3.6.
Убедитесь, что вы редактируете правильный файл php.ini, в зависимости от вашей настройки их может быть больше одного! Используйте "php -i | grep php.ini", чтобы знать наверняка
Обратите внимание, что в папке / Applications / MAMP / conf . Вы должны проверить, какую версию вы используете, в MAMP -> Настройки -> Вкладка «PHP».
Если установлено значение 5.4.4, вы должны получить доступ к /Applications/MAMP/conf/php5.4.4/php.ini
Запустите в Терминале это:
Спасибо, Бруно. Да, есть разные версии, и да, как я написал в теле своего вопроса, я трижды проверил путь к php.ini, и он правильный. Более того, путь указывается в таблице phpinfo () в следующем виде: Путь к файлу конфигурации (php.ini) /Applications/MAMP/conf/php5.3 Загруженный файл конфигурации /Applications/MAMP/conf/php5.3/php. ini
Извините за свою ошибку, исправляю. Можете ли вы запустить функцию phpinfo () на странице и найти загруженные файлы php.ini? Не запускайте его в терминале, версия PHP отличается от веб-сервера.
О, я вижу. Создана страница test_php.php, содержащая код. Неудивительно, что это привело к получению точной копии таблицы phpinfo, которую я видел раньше, включая предупреждение, отсутствующие значения и уже упомянутые правильные пути к php.ini: Configuration File (php.ini) Path / Applications / MAMP / conf /php5.3 Загруженный файл конфигурации /Applications/MAMP/conf/php5.3/php.ini?>
Если эта ошибка проявляется при использовании PHP в интерфейсе командной строки терминала, это может быть проблемой из-за коллизии нативного PHP и MAMP.
MacOS X поставляется с предустановленной собственной версией PHP, которая запускается в оболочке при вводе текста php . Конфигурация PHP MAMP отличается от предустановленной конфигурации PHP: изменение настройки часового пояса PHP MAMP не влияет на то, что вы видите в CLI, поэтому ошибка часового пояса сохраняется. Быстрый способ проверить - запустить which php - если вы не видите путь, начинающийся с, /Applications/MAMP/. вам необходимо настроить среду.
Для этого отредактируйте .profile текстовый файл (или файл bash RC) и добавьте в него эту строку:
Измените указанный выше путь так, чтобы он указывал на желаемую установку MAMP PHP. Затем запустите:
Это немедленно применит изменение PATH (в противном случае вам нужно будет открыть новое окно терминала, чтобы применить изменения). Вторая команда - это просто команда очистки кеша командной строки bash.
В качестве последней проверки запустите, which php чтобы проверить, какой путь установки PHP используется. Надеюсь это поможет!
Читайте также: