Не удается установить date.timezone В файле php.ini
Я использую php5.5 и получаю эту ошибку всякий раз, когда я использовал функцию даты в PHP:
Warning: phpinfo(): It is not safe to rely on the system timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /var/www/info.php on line 1
загруженный файл конфигурации находится здесь:
/etc/php5/apache2/php.ini
поэтому я изменил настройку date.timezone на это:
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Jakarta
; http://php.net/date.default-latitude
;date.default_latitude = 31.7667
; http://php.net/date.default-longitude
;date.default_longitude = 35.2333
; http://php.net/date.sunrise-zenith
;date.sunrise_zenith = 90.583333
; http://php.net/date.sunset-zenith
;date.sunset_zenith = 90.583333
Затем я перезапускаю сервер:
sudo /etc/init.d/apache2 restart
но все еще получая эту ошибку, я попытался проверить файл .ini в папке "Дополнительные файлы ini", но ни одна из них не переопределяет параметр date.timezone
Я проверял разрешение файла php.ini, но все еще не работал
пожалуйста, помогите мне решить эту проблему, спасибо..
Ответы
Ответ 1
наконец решил мою проблему,
это мой загруженный файл конфигурации:
/etc/php5/apache2/php.ini
изменил дату .timezone здесь, но он не работает.
Итак, я проверяю значение "Сканировать этот каталог для дополнительных файлов .ini" в phpinfo(), которые указывают на:
/etc/php5/apache2/conf.d
то я ищу date.timezone из всех файлов в этой папке, но не нашел.
это мой дополнительный .ini файл, обработанный значением в phpinfo():
/etc/php5/apache2/conf.d/05-opcache.ini, /etc/php5/apache2/conf.d/10-pdo.ini, /etc/php5/apache2/conf.d/20-json.ini, /etc/php5/apache2/conf.d/20-mysql.ini, /etc/php5/apache2/conf.d/20-mysqli.ini, /etc/php5/apache2/conf.d/20-pdo_mysql.ini, /etc/php5/apache2/conf.d/20-xdebug.ini, /etc/php5/apache2/conf.d/30-mcrypt.ini
Я изменил /etc/php 5/apache2/conf.d/20-xdebug.ini и добавил следующую строку:
date.timezone = Asia/Jakarta
очень странно, но это решило мою проблему!!!
Ответ 2
Попробуйте следующее:
date.timezone = "Asia/Jakarta"
Edit:
Позвольте найти правильный php.ini. Огоньте это в apache/nginx/независимо от того, что вы используете для веб-сервера (потому что версия командной строки может отличаться от используемой им).
<?php
phpinfo();
?>
Что такое .ini в выходе? Все еще то же самое?
Edit2:
После редактирования php.ini просто перезапустите веб-сервер (apache или nginx)...
Ответ 3
Вы должны проверить, найдя php.in, если там где-то есть другой.
для меня. для интерфейса командной строки должен быть CLI:
/etc/php5/cli/php.ini
/etc/php5/fpm/php.ini
измените /etc/php5/cli/php.ini
Теперь это работает для меня.
Ответ 4
Другим решением для меня после компиляции PHP из источника было проверить, действительно ли php.ini загружает файл конфигурации. Из командной строки
php --ini
возвращает
Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File: (none)
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)
Найдите его.
find -name "php.ini" #it was in /usr/local/php/php.ini
cp /usr/local/php/php.ini /usr/local/lib/php.ini
Перезагрузите php (в моем случае, /etc/init.d/php-fpm stop
, /etc/init.d/php-fpm start
), и он отлично работает. По какой-то причине он был скопирован неправильно.
- Distro: Centos 7
- Веб-сервер: Nginx
- Тип: Экземпляр EC2
Ответ 5
Недавно я столкнулся с той же проблемой с PHP 5.6.4.
- PHP 5.6.4 ведет себя странно
- PHP 5.6.11 ведет себя нормально, как ожидалось
Когда я устанавливаю параметр конфигурации date.timezone
в разделе [PHP] в файле конфигурации, он отлично работает для PHP 5.6.4. Например, я добавил параметр в самом начале файла php.ini
[PHP]
date.timezone = "Europe/Stockholm"
Но когда я поставлю опцию конфигурации, как это показано в примере в разделе [Date]
, она не работает должным образом, похоже, что опция игнорируется
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
; this does not work for me for PHP 5.6.4 but works fine for PHP 5.6.11
date.timezone = "Europe/Stockholm"
Когда я добавляю опцию в 20-xdebug.ini
, как это предлагается в принятом ответе fooobar.com/questions/292207/..., эта опция принимается, потому что этот файл имеет только [PHP]
раздел, Из любопытства я попробовал другие включенные ini
файлы, и похоже, что я могу использовать любой.
Еще раз, проблема возникла для меня только с PHP 5.6.4. Когда я изменил параметр на сервере с PHP 5.6.11, он вел себя точно так, как я ожидал.
Ответ 6
Это сработало для меня, когда я заметил, что запись date.timezone в php.ini была закомментирована. После удаления точки с запятой часовой пояс был установлен правильно.
Ответ 7
Проверьте конфликтующие параметры в php.ini, у меня была такая же проблема, и в моем случае параметры xdebug, определенные до даты. timezone, вызывающие эту вещь: Подробнее см. PHP Xdebug issue - date.timezone и session.save_path undefined
Ответ 8
некоторый установщик приложения php для командной строки (например, установщик symfony или даже когда скрипты php запускаются из cli), используйте ini файл внутри каталога php-cli
/etc/php5/cli/php.ini
это решило мою аналогичную проблему в процессе проверки зависимостей при установке Symfony.
Ответ 9
Если вы устанавливаете значение date.timezone в php.ini, но оно не работает (то есть локальное значение и значение мастера различаются), вам может потребоваться обновить что-то вроде этого в файле конфигурации apache:
<IfModule mod_php5.c>
php_value date.timezone "Europe/Paris"
</IfModule>
Ответ 10
Я исправил это в Mac OSX El Captain, создав структуру папок:/Library/Server/Web/Config/php, а затем создав php.ini внутри этой новой папки php только с директивой date.timezone.
Ответ 11
В моем случае у меня было 2 date.timezone=
записей в файле php.ini, а последнее - переопределение первого. удаление одного из них решило мою проблему.
Также не забывайте, что вам необходимо перезапустить процесс веб-сервера.
Ответ 12
Я использую PHP 7.3.6.
- открыть xampp/php/php.ini
- перейти к линии 1967
- установить строку
date.timezone=Asia/Jakarta
- Перезапустите Apache
![enter image description here]()
Надеюсь ответить на ваш вопрос