Symfony2プロジェクトがあります。今日、phpを5.5.7に更新し、それ以来、
Warning: date_default_timezone_get(): 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...
Php.iniでデフォルトのタイムゾーンを設定します
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "Europe/Paris";
これが良いphp.iniであることを確認するために、
phpinfo();
そして、私がそこに着く道は私が修正しているものです:
/usr/local/php5.5.7/lib
しかし、そこには、
Default timezone UTC
それは奇妙です。
何か案が?ありがとうございました。
Apacheのphp.ini
で設定しようとしているのかもしれませんが、CLI(コマンドラインインターフェイス)php.ini
が適切ではありません。
次のコマンドでphp.ini
ファイルを見つけます。
php -i | grep php.ini
次に、date.timezone
を検索し、"Europe/Amsterdam"
に設定します。すべての有効なタイムゾーンはここにあります http://php.net/manual/en/timezones.php
別の方法(もう一方が機能しない場合)、AppKernel.php
ファイルを検索します。このファイルは、Symfonyプロジェクトディレクトリのapp
フォルダーの下にある必要があります。クラスAppKernel
で以下の__construct
関数を上書きします。
<?php
class AppKernel extends Kernel
{
// Other methods and variables
// Append this init function below
public function __construct($environment, $debug)
{
date_default_timezone_set( 'Europe/Paris' );
parent::__construct($environment, $debug);
}
}
この問題を修正する同様の方法を見つけました(少なくとも私にとってはそうでした)。
最初にCLI php.ini
の場所を確認します。
php -i | grep "php.ini"
私の場合、設定ファイル(php.ini)パス=>/etc
その後、cd ..
を最後まで戻し、cd
を/etc
に入れます。私の場合、ls
を実行します。php.iniが表示されず、php.ini.defaultのみが表示されます。
次に、php.iniという名前のphp.ini.defaultファイルをコピーします。
Sudo cp php.ini.default php.ini
編集するには、ファイルの権限を変更します。
Sudo chmod ug+w php.ini
Sudo chgrp staff php.ini
ディレクトリを開き、php.iniファイルを編集します。
open .
ヒント:パーミッションの問題のためにphp.iniを編集できない場合は、「php.ini.default」をコピーしてデスクトップに貼り付け、名前を「php.ini」に変更してから開きます。手順7に従って編集します。次に、/ etcフォルダーに移動(コピー+貼り付け)します。問題は解決します。
[日付]を検索し、次の行が正しい形式であることを確認します。
date.timezone = "Europe/Amsterdam"
これがあなたのお役に立てば幸いです。
Crackによって現在受け入れられている回答はSymfony 2.3で廃止され、3.0で削除されます。コンストラクターに移動する必要があります。
public function __construct($environment, $debug) {
date_default_timezone_set('Europe/Warsaw');
parent::__construct($environment, $debug);
}
PHP 5.5以降、CLIインターフェース用の個別のphp.iniファイルがあります。コマンドラインからsymfonyコンソールを使用する場合、この特定のphp.iniが使用されます。
Ubuntu 13.10のチェックファイル:
/etc/php5/cli/php.ini
sasの答え 、PHP 5.4、Symfony 2.8のフォローアップ
ini_set('date.timezone','<whatever timezone string>');
date_default_timezone_set
の代わりに。また、チェックを成功させるために、カスタムini_set
の先頭にweb/config.php
への呼び出しを追加しました。
RedhatまたはCentosでPHP 5.1を使用している場合に問題が発生します