我正在尝试在MAMP中配置Symfony2框架。
在php.ini
我已正确设置date.timezone
,但是,MAMP似乎以某种方式覆盖了设置并改为使用系统时间。
因此,Symphony的config.php
页面发出此警告:
警告:date_default_timezone_get() [function.date-default-timezone-get]:依靠它是不安全的 系统的时区设置。您必需才能使用 date.timezone设置或date_default_timezone_set()函数。在 如果你使用了这些方法中的任何一种,你仍然会得到这个 警告,你很可能拼写错误的时区标识符。我们 在'EST / -5.0 / no DST'中选择'America / New_York'代替 /Applications/MAMP/htdocs/Symfony/app/SymfonyRequirements.php在线 434
Symfony无法显示启动页面,直到修复完毕。什么是解决方案?
谢谢!
答案 0 :(得分:2)
检查系统中是否有两个php.ini
个文件。您可能会在其中一个中添加date.timezone
行,但MAMP正在使用另一个。
如果这对您不起作用,请尝试在web/app.php
和web/app_dev.php
文件的开头添加以下行(如错误消息所示):
date_default_timezone_get('Europe/London');
希望它有所帮助。
答案 1 :(得分:2)
我仍然在研究MAMP为什么以及如何覆盖php.ini date.timezone设置,但是,我已经在Symfony php文件中找到了快速修复解决方案,这解决了这个问题,至少目前如此。
我添加了以下代码:
date_default_timezone_set ('America/New_York');
- 位于Symfony的config.php和app_dev.php文件的顶部,紧接在打开php标记之后,位于脚本的最顶层。这删除了警告消息,让Symfony在MAMP上工作。
我预见必须将相同的代码添加到Symfony内的其他一些php文件中,因为我一直在攻击它,这应该不是问题。或者我可以弄清楚如何覆盖MAMP的覆盖。
不过,这是一个可行的解决方案。
答案 2 :(得分:1)
cp /etc/php.ini.default /etc/php.ini
chmod -R 775 /etc/php.ini
sudo vi /etc/php.ini
date.timezone
并将其更改为(示例): date.timezone = "Europe/London"
答案 3 :(得分:0)
你在命令行吗?因为命令行可能会获得与MAMP不同的php.ini。
要从命令行查看哪个是php.ini,您可以执行以下操作:
$ php -i | grep 'Configuration File'
(参考:How to find the php.ini file used by the command line?)
尝试在“/etc/php.ini”中设置“date.timezone”,或者在php.ini文件中设置。
您还可以更改php.ini文件:
$ php -help | grep "php.ini"
-c <path>|<file> Look for php.ini file in this directory
...一样
$ php -c /Applications/MAMP/conf/php5.5.14/php.ini ...
例如:
$ php -c /Applications/MAMP/conf/php5.5.14/php.ini -i | grep 'Configuration File'
答案 4 :(得分:0)
答案 5 :(得分:0)
在MAMP 3.0.1中,您使用的相应php文件夹版本中的php.ini文件具有在分号后声明的值date.timezone,后者将其转换为注释而不是命令。在C:\ MAMP \ conf \ php5.5.12(或您的php版本)中的php.ini中,删除第703行中的分号,并根据指南http://php.net/manual/en/timezones.php定义当地时间。
希望这适合你:)
答案 6 :(得分:0)
就像Pedro Luz提到的那样,你必须在mac的php.ini中设置时区而不是MAMP。
别忘了重新启动mac的apache:
sudo /usr/sbin/apachectl restart
这个解决方案对我有用:
[OK]
Your system is ready to run Symfony2 projects