web-dev-qa-db-ja.com

php.iniファイルでdate.timezoneを設定できません

私はphp5.5を使用しており、PHPで日付関数を使用するたびにこのエラーが発生します:

 Warning: phpinfo(): It is not safe to rely on the system's 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ファイルのアクセス許可を確認しましたが、まだ機能していないため、この問題を解決するためにご案内ください。

20
Edxz

最後に私の問題を解決しました、これは私のロードされた設定ファイルです:

/etc/php5/Apache2/php.ini 

ここでdate.timezoneを変更しましたが、機能していません。

そこで、phpinfo()の「このディレクトリをスキャンして追加の.iniファイルを探す」値を確認します。

/etc/php5/Apache2/conf.d 

次に、そのフォルダ内のすべてのファイルからdate.timezoneを検索しましたが、見つかりませんでした。

これは、phpinfo()で解析された追加の.iniファイルです。

/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/php5/Apache2/conf.d/20-xdebug.iniを変更し、次の行を追加しました。

date.timezone = Asia/Jakarta

非常に奇妙ですが、これは私の問題を解決しました!!!

15
Edxz

これを試して:

date.timezone = "Asia/Jakarta"

編集:

正しいphp.iniを見つけましょう。これをApache/nginx /使用しているWebサーバーで起動します(コマンドラインのバージョンは、使用しているバージョンと異なる場合があるため)。

<?php
phpinfo();
?>

出力の.iniは何ですか?まだ同じ?

編集2:

Php.iniの編集後、Webサーバー(Apacheまたはnginx)を再起動するだけです...

17
Damiano Barbati

どこかに別のものがある場合は、php.inを見つけてチェックアウトする必要があります。

私のために。コマンドラインインターフェイス用のCLIが必要です。

/etc/php5/cli/php.ini
/etc/php5/fpm/php.ini

変更 /etc/php5/cli/php.ini

それは今私のために働いています。

6
temple

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)それは正常に動作します。何らかの理由で、それは間違ってコピーされました。

  • ディストリビューション:Centos 7
  • Webサーバー:Nginx
  • タイプ:EC2インスタンス
3
Andrew Howden

最近、PHP 5.6.4。

  • PHP 5.6.4の動作がおかしい
  • PHP 5.6.11は正常に動作します

構成ファイルの[PHP]セクションの下にdate.timezone構成オプションを配置すると、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にオプションを追加すると、受け入れられた回答の提案のようになります https://stackoverflow.com/a/20731466/21114 このファイルには[PHP]セクション。好奇心から、他のiniファイルを試しましたが、どのファイルでも使用できるようです。

もう一度、問題はPHP 5.6.4でのみ発生しました。サーバーのオプションをPHP 5.6.11で正確に動作させたとき、私が期待したように。

2
Victor Smirnov

私の場合、2 date.timezone=はphp.iniファイルに記録され、最後のファイルは最初のファイルを上書きしていました。それらのいずれかを削除することで問題が解決しました。

また、Webサーバープロセスを再起動する必要があることを忘れないでください。

2
Accountant م

Php.iniの競合する設定を確認してください。同じ問題があり、私の場合は、この問題を引き起こすdate.timezoneの前にxdebug設定が定義されています。詳細については PHP Xdebug issue-date.timezone&session.save_path未定義

1
mukund

Php.iniのdate.timezoneエントリがコメントアウトされていることに気付いたとき、私にとってはうまくいきました。セミコロンを削除した後、タイムゾーンが正しく設定されました。

1
user3922395

PHP 7.3.6。

  1. xampp/php/php.iniを開きます
  2. 1967行に移動します
  3. 行を設定date.timezone=Asia/Jakarta
  4. Apacheを再起動します

enter image description here

質問にお答えください

0
flyingbird013

Mac OS X El Capitanでこれを修正し、フォルダー構造:/ Library/Server/Web/Config/phpを作成し、date.timezoneディレクティブだけでこの新しいphpフォルダー内にphp.iniを作成しました。

0

いくつかのコマンドラインphpアプリケーションインストーラー(symfonyインストーラー、またはphpスクリプトがcliから実行される場合でも)、php-cliディレクトリ内のiniファイルを使用します

/etc/php5/cli/php.ini


これにより、Symfonyのインストール中の依存関係チェックプロセスでの同様の問題が解決されました。

0
minhajul

Php.iniでdate.timezone値を設定しても機能しない場合(つまり、ローカル値とマスター値が異なる場合)、Apache構成ファイルで次のようなものを更新する必要があります。

<IfModule mod_php5.c>
  php_value date.timezone "Europe/Paris"
</IfModule>
0
paralaks