我试图在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()函数,似乎没有任何工作。
我已经盯着它看了一会儿,所以感谢任何帮助
答案 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)
找到了解决此问题的类似方法,而其他方法没有。
首先检查CLI php.ini所在的位置:
php -i | grep "php.ini"
在我的情况下,我最终得到:配置文件(php.ini)Path => /等
然后cd ..
一直回到cd
进入/etc
,在我的情况下执行ls
php.ini没有显示,只有php.ini.default
{1}}
现在,复制名为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"
答案 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"
答案 4 :(得分:0)
已经提到过,但这很简单:
sudo cp /etc/php.ini.default /etc/php.ini
如果无法找到php.ini文件,则无法设置时区!!!!