【问题标题】:Symfony - MAMP(windows) - warning timezoneSymfony - MAMP(windows) - 警告时区
【发布时间】:2015-04-20 21:19:55
【问题描述】:

我为 Windows 安装了 MAMP

几个小时以来我一直有这个错误......

    [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 me 
 thods and you are still getting this warning, you most likely misspelled th 
 e timezone identifier. We selected the timezone 'UTC' for now, but please s 
 et date.timezone to select your timezone.

在相关的php.ini (C:/MAMP/conf/php5.5.19/php.ini) 中,我将 DATE 行更改为:

    [Date]
; Defines the default timezone used by the date functions
date.timezone = "Europe/Paris"

在我的phpinfo() 中,加载的路径是:

Loaded Configuration File   C:\MAMP\conf\php5.5.19\php.ini

当我在控制台中执行命令 php --ini 我有这个:

C:\Users\Thomas>php --ini
Configuration File (php.ini) Path: C:\Windows
Loaded Configuration File: (none)
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

为什么Configuration File (php.ini) Path:"C:\Windows" 而不是C:\MAMP\conf\php5.5.19\。我可以更改此路径吗?

我现在不知道该怎么办......

谢谢!

【问题讨论】:

  • 修改后是否重启了apache服务器?
  • @Brewal :我按照说明进行操作,但无事可做。是的,我用 MAMP 重新启动了 apache 服务器。
  • 出现的错误是针对 CLI php,而不是针对 Web 服务器,因此重新启动 Apache 将没有任何意义。您确定您访问的是正确的 PHP 二进制文件吗?
  • 哦,您正在尝试从您的 IDE 中执行此操作....您是否将 IDE 设置为使用 MAMP php 二进制文件? jetbrains.com/phpstorm/help/…

标签: php symfony timezone mamp ini


【解决方案1】:

我有同样的错误。我不知道它来自哪里,但经过反复试验,我发现它与我的 htdocs 文件夹中的特殊字符有关:

htdocs/示例

通过将该字符更改为普通字符(从而更改为 htdocs/Example),我不再收到错误,并且网站可以正常加载。

【讨论】:

    【解决方案2】:

    问题在于您的 xAMP 服务器和 cli 访问使用不同的 php 配置。

    一个是 CLI 的 C:\Windows\php.ini 其次是 C:\MAMP\conf\php5.5.19\php.ini 用于 Web 服务器

    确保您已更新这两个文件。

    其次不要忘记重新启动 xAMP 服务器,因为 apache 不会自动重新加载 libapache2-mod-php5 配置。

    【讨论】:

      【解决方案3】:

      当您在 MAMP 中设置配置时,它只会影响以 Apache 模块处理程序模式加载的 PHP(映射为 Apache 进程中的模块)。如果要设置 PHP CLI,则需要将其与 Web 服务器配置分开设置。

      • 从 Windows 打开命令提示符(cmd.exe 从“开始”按钮)
      • 输入 ECHO %PATH%
      • 此命令将列出您当前的 PATH 变量以及所有路径。例如,像这样:

        C:>回显 %PATH%

        C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\binaries\php\php_runningversion ;C:\ProgramData\Oracle\Java\javapath;C:\Perl\site\bin;C:\Perl\bin ...

      • 现在输入以下命令

        SET PATH=%PATH%;c:\mamp\bin\php\php5.6.0\;

      这将从 MAMP 文件夹添加到 php5.6.0 版本的路径。

      • 您现在可以通过输入以下命令来测试您的 PHP CLI:

        php -v

      • 然后尝试从 MAMP 为 PHP5.6.0 版本文件初始化配置:

        C:>php -c "c:\mamp\conf\php5.6.0\php.ini" --ini

        配置文件 (php.ini) 路径:C:\WINDOWS 加载的配置文件:C:\MAMP\conf\php5.6.0\php.ini 在以下位置扫描其他 .ini 文件:(无) 解析的其他 .ini 文件:(无)

      您可以使用 PHP CLI 中的命令 -c 来设置配置文件的路径;而“c:\mamp\conf\php5.6.0\php.ini”是 5.6.0 版 PHP ini 文件的路径。

      如果您不想总是使用 -c 命令添加配置文件的路径,只需将 php.ini 文件从 C:\MAMP\conf\php5.6.0\ 复制到 C:\MAMP\bin\php\php5。 6.0\

      当然,这只会在当前打开的命令提示符下设置 PHP CLI。要永久添加此路径,您需要修改系统环境变量,或者使用 MAMP PRO,因为它已经在 PHP 选项页面上具有此功能。

      【讨论】:

        【解决方案4】:

        TL:DR - 确保使用正确/批准的 php 时区编辑 ..\MAMPPRO\conf\php[version].ini..\MAMP\bin\php\php[version]\php.ini


        所以在我进行设置时,我遇到了同样的问题。

        我正在查看我的 phpinfo(),它为我提供了位于我的 ..\MAMPPRO\conf\php[version].ini 中的“已加载配置文件”的路径,因此我正在使用来自 http://php.net/manual/en/timezones.php 的批准时区编辑该文件,以确保避免来自http://php.net/manual/en/timezones.others.php

        在几次重新启动但没有成功后,我开始深入挖掘 MAMP Pro 拉那个 ini 的位置。

        我在..\MAMP\bin\php\php[version]\php.ini 中找到了解决方案。如果我编辑此文件除了编辑 MAMP Pro ini 一切正常。

        希望对您有所帮助!

        【讨论】:

          【解决方案5】:

          在 web/app_dev.php 和 web/app.php 的开头你可以添加:

          date_default_timezone_set('Europe/Paris');
          

          【讨论】:

          • 尝试创建新的 symfony 项目文件时可能会发生这种情况。这个答案不能修复错误,它只是绕过它。
          猜你喜欢
          • 1970-01-01
          • 2020-03-14
          • 2017-05-10
          • 1970-01-01
          • 2015-06-01
          • 2023-04-02
          • 1970-01-01
          • 2012-10-05
          相关资源
          最近更新 更多