警告:date_default_timezone_get()安装Symfony

时间:2014-06-16 20:35:24

标签: php symfony

我试图在XAMPP上安装Symfony并且我不断收到大量错误。

[Symfony\Component\Debug\Exception\ContextErrorException]                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
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 
/Applications/XAMPP/xamppfiles/htdocs/vendor/monolog/monolog/src/Monolog/Logger.php line 233 

然后

Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-
install-cmd event terminated with an exception

最后

[RuntimeException]                                                         
An error occurred when executing the "'cache:clear --no-warmup'" command.

我尝试在我的php.ini文件中更改date.timezone并在尝试安装之前在命令行中使用date_default_timezone_set()函数,似乎没有任何工作。

我已经盯着它看了一会儿,所以感谢任何帮助

5 个答案:

答案 0 :(得分:29)

如果由于某种原因无法在php.ini中正确设置,那么您可以将其设置为AppKernel中的第一件事,就像这样..

class AppKernel extends Kernel
{
    public function __construct($environment, $debug)
    {
        date_default_timezone_set('Europe/London');
        parent::__construct($environment, $debug);
    }

    public function registerBundles()
    {
        $bundles = array(
            ....
        );
    }

    ....
}

答案 1 :(得分:22)

找到了解决此问题的类似方法,而其他方法没有。

  1. 首先检查CLI php.ini所在的位置:

    php -i | grep "php.ini"

  2. 在我的情况下,我最终得到:配置文件(php.ini)Path => /等

  3. 然后cd ..一直回到cd进入/etc,在我的情况下执行ls php.ini没有显示,只有php.ini.default {1}}

  4. 现在,复制名为php.ini的php.ini.default文件:

    sudo cp php.ini.default php.ini

  5. 要进行编辑,请更改文件的权限:

    sudo chmod ug+w php.ini

    sudo chgrp staff php.ini

  6. 打开目录并编辑php.ini文件:

    open .

    提示:如果由于某些权限问题而无法编辑php.ini,请复制'php.ini.default'并将其粘贴到桌面上并将其重命名为'php.ini'然后打开然后在步骤7之后编辑它。然后在/ etc文件夹中移动(复制+粘贴)它。问题将得到解决。

  7. 搜索[日期]并确保以下行格式正确:

    date.timezone = "Europe/Amsterdam"

答案 2 :(得分:3)

WAMP / XAMPP和其他堆栈使用多个php.ini文件非常常见 - 一个用于cli,一个用于网络。

由于您从CLI中了解错误,请尝试以下操作:

php -i | grep "php.ini"

这将输出用于cli的php.ini的位置。在那里编辑date.timezone

对于网络模式,在symfony的“web”目录中创建一个仅包含“

”的文件foo.php
<?php phpinfo(); ?>

并再次找到php.ini使用的位置并编辑date.timezone

答案 3 :(得分:3)

修改您的php.ini(不一定是/etc/php.ini - 使用php -i | grep ini查找您的版本)并添加您的时区。

E.g。对于美国/纽约来说,它将是:

date.timezone = "America/New_York"

请参阅http://php.net/manual/en/timezones.america.php

答案 4 :(得分:0)

已经提到过,但这很简单:

sudo cp /etc/php.ini.default /etc/php.ini

如果无法找到php.ini文件,则无法设置时区!!!!