MAMP / Symfony:MAMP覆盖了php.ini中的date.timezone设置,Symfony失败了

时间:2012-11-28 00:48:43

标签: symfony mamp php

我正在尝试在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无法显示启动页面,直到修复完毕。什么是解决方案?

谢谢!

7 个答案:

答案 0 :(得分:2)

检查系统中是否有两个php.ini个文件。您可能会在其中一个中添加date.timezone行,但MAMP正在使用另一个。

如果这对您不起作用,请尝试在web/app.phpweb/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)

如果您的问题是如何在MAMP PRO上的php.ini文件中进行更改,请尝试编辑模板。

档案 - &gt;编辑模板

您可以在MAMP手册中看到page 24

更多信息是here

答案 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