26

谁能告诉我为什么在安装了最新 MAMP 的全新格式化 macbook 中运行 app/console 时出现此错误?

警告:date_default_timezone_get():依赖系统的时区设置是不安全的。您需要*使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,您很可能拼错了时区标识符。我们在 /../Logger.php 第 112 行中为“EEST/3.0/DST”选择了“Europe/Helsinki”

我检查了 php.ini 的路径并标出了date.timezone = "Europe/Athens"

还多次重新启动 MAMP/apache。

4

10 回答 10

22

在 AppKernel.php 写:

public function init() {
    date_default_timezone_set( 'Europe/Lisbon' );
    parent::init();
}

由于init()已弃用(并将在 Symfony2 3.0 中删除),因此建议在构造函数中移动代码,如下例所示:

public function __construct($environment, $debug) {
    parent::__construct($environment, $debug);
    // get rid of Warning: date_default_timezone_get(): It is not safe to rely on the system's timezone
    date_default_timezone_set( 'Europe/Paris' );
}
于 2014-05-05T14:50:34.717 回答
21

OS X 中的默认值php.ini位于:

/private/etc/php.ini

无论如何,您可以告诉 CLI php加载 MAMP 设置,或者使用MAMP 命令本身的别名

于 2012-09-22T11:39:22.403 回答
8

你没有编辑好的 php.ini 文件

您可以使用以下方法获取完整的 phpinfo():

php -i 

而且,在那里,使用了 php.ini 文件:

$ php -i | grep 'Configuration File'
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
于 2012-09-22T11:21:00.677 回答
6

我遇到了同样的问题,确实有一个命令行,并且在 Yosemite 上运行 MAMP/Native Mac PHP 服务,当我尝试按照此页面上的说明进行操作时,似乎没有一个对我有用。

当我运行 php 命令时:

$ php -i | grep 'Configuration File'
Configuration File (php.ini) Path => /etc
Loaded Configuration File => <em>(Blank)</em>

我意识到 CLI 使用的 php.ini 实际上是 php.ini.default 文件。我创建了一个指向该文件的符号链接作为 php.ini 并且一切正常。

My-MacPro:/etc/$ ln -s php.ini.default php.ini

于 2015-01-01T19:49:45.237 回答
4

我确实遵循了您的答案,但就我而言,它们都不起作用。我决定去更改 logger.php文件date_default_timezone_get() 中的内容。

我替换为我的时区设置(“欧洲/柏林”),一切顺利!

老派的解决方案,但仍然是一个解决方案。

于 2013-11-05T10:40:38.520 回答
4

我的 SF2 安装遇到了完全相同的问题。

要解决此问题,只需进入您的php.ini文件/etc/php.ini并将文件更改为如下所示(调整您的时区以适合您的本地时区):

;;;;;;;;;;;;;;;;;;; ; Module Settings ; ;;;;;;;;;;;;;;;;;;;

[Date] 
; Defines the default timezone used by the date functions 
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone 
date.timezone = Europe/London
于 2014-02-28T17:45:09.170 回答
3

您在 Mac OSX 中的默认 php.in 位于与文件/etc/php.ini完全相同的位置/private/etc/php.ini

你应该知道你有可能使用两个并行运行的 php 版本。我遇到了这个问题,因为我使用的是本机 mac osx php,但是我必须通过 homebrew 安装一个 php 包,然后我通过 homebrew 获得了另一个版本的 php。虽然我的php.ini文件中已经配置了时区/etc/php.ini,但我仍然遇到同样的问题,所以我运行:

php -i | grep 'Configuration File'

为了配置正确的文件,我得到了:

Configuration File (php.ini) Path => /usr/local/etc/php/5.3
Loaded Configuration File => /usr/local/etc/php/5.3/php.ini
PHP Warning:  Unknown: 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 
'America/Buenos_Aires' for 'ART/-3.0/no DST' instead in Unknown on line 0

然后我知道我必须编辑/usr/local/etc/php/5.3/php.ini文件。

在那之后,一切顺利。我没有那个问题了。

我希望它能帮助你解决这个问题。

于 2013-09-26T17:50:32.720 回答
1

通常,CLI 和 Apache 有单独php.ini的文件。确保您已编辑所需的内容。

于 2012-09-22T11:16:09.677 回答
1

默认情况下,Mac 在控制台中使用位于以下位置的 PHP:

/private/etc/php.ini

你应该使用这个,因为 MAMP 总是取消设置时区变量,你总是会得到那个错误。

于 2013-05-10T06:14:18.047 回答
1

我在 OS X 10.9 上遇到了类似的问题。我的问题php.ini/etc. 我通过创建php.ini包含以下内容的文件解决了这个问题:

date.timezone = Europe/Athens
于 2013-11-06T14:54:10.277 回答