【问题标题】:MAMP / Symfony: MAMP overrides date.timezone setting from php.ini, Symfony failsMAMP / Symfony:MAMP 覆盖 php.ini 中的 date.timezone 设置,Symfony 失败
【发布时间】:2012-11-15 18:21:52
【问题描述】:

我正在尝试在 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() 函数。在 如果你使用了这些方法中的任何一种,你仍然得到这个 警告,您很可能拼错了时区标识符。我们 选择 'America/New_York' 代替 'EST/-5.0/no DST' /Applications/MAMP/htdocs/Symfony/app/SymfonyRequirements.php 上线 434

在解决此问题之前,Symfony 无法显示起始页。解决方案是什么?

谢谢!

【问题讨论】:

    标签: symfony mamp php


    【解决方案1】:

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

    如果这对您不起作用,请尝试在 web/app.phpweb/app_dev.php 文件的开头添加以下行(如错误消息所示):

    date_default_timezone_get('Europe/London');
    

    希望对你有帮助。

    【讨论】:

    • 谢谢Juan,是的,有两个php.ini 文件,一个用于php 5.2,另一个用于php 5.3。 MAMP 运行的是 php5.3,所以我检查了相应的 php.ini 文件,它的 date.timezone 设置正确。我还尝试了按照您描述的方式将 date_default_timezone_get() 函数添加到这两个文件的建议。不走运,保存修改后的文件后,我收到了相同的警告消息。更多见解将不胜感激。
    • 我从未使用过 MAMP,但它应该可以这样工作。尝试使用 phpinfo() 来检查 Apache 使用的是哪个 php.ini 以及是否设置了 date.timezone。确保在编辑 php.ini 后重新启动 Apache。
    • 嗯,Juan,问题是 MAMP 似乎忽略了一些 php.ini 设置并覆盖了它们。事实上,它在 php.ini 文件中是这样写的: [Date] ;定义日期函数使用的默认时区;将由 MAMP 更改为系统时区; date.timezone = "America/New_York" - 如您所见,文本表明 MAMP 覆盖 php.ini,所以我最初的问题是,如何防止 MAMP 这样做...
    • P.S.我按照您的建议重新启动了 Apache,但仍然收到相同的警告。请提供更多想法?
    • P.P.S.我刚刚检查了 phpinfo,我惊恐地发现它包含相同的警告消息:警告:phpinfo() [function.phpinfo]:依赖系统的时区设置是不安全的。您必须使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,您很可能拼错了时区标识符。我们在第 2 行的 /Applications/MAMP/bin/mamp/phpinfo.php 中为“EST/-5.0/no DST”选择了“America/New_York”!请帮忙?
    【解决方案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 的覆盖。

    不过,这是一个可行的解决方案。

    【讨论】:

      【解决方案3】:

      你在命令行吗?因为命令行可能会得到与 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】:

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

        文件 -> 编辑模板

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

        更多信息是here

        【讨论】:

          【解决方案5】:

          在 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】:
            • 复制

            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"

            【讨论】:

              【解决方案7】:

              就像 Pedro Luz 提到的,您必须在 mac 的 php.ini 而不是 MAMP 中设置时区。

              别忘了重启你的mac的apache:

              sudo /usr/sbin/apachectl restart
              

              这个解决方案对我有用:

              [OK]                                          
               Your system is ready to run Symfony2 projects 
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2018-03-29
                • 2013-12-25
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多