【问题标题】:How to fix an issue using composer.phar install如何使用 composer.phar install 解决问题
【发布时间】:2014-08-28 14:04:45
【问题描述】:

我正在尝试将 composer install 与 symfony2 一起使用。但我一次又一次地遇到这个问题。

我跑步时:

php composer.php 安装

我收到以下不知道如何修复的错误:

错误 #1

[Symfony\Component\Debug\Exception\ContextErrorException]
警告:date_default_timezone_get():依赖系统的时区设置是不安全的。您需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,您很可能拼错了时区标识符。我们现在选择时区“UTC”,但请设置 date.timezone 以选择您的时区。在 /Applications/MAMP/htdocs/ffss/vendor/jms/serializer-bundle/JMS/SerializerBundle/DependencyInjection/Configuration.php 第 66 行

错误 #2

Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache 处理 post-install-cmd 事件因异常而终止

错误 #3

[运行时异常]
执行“'cache:clear --no-warmup'”命令时出错。

这是第一个错误中提到的文件的第 66 行:

->scalarNode('default_timezone')->defaultValue(date_default_timezone_get())->end()

  1. 我不知道在哪里设置它请求的时区。
  2. 我什至不知道从哪里开始修复此错误:Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache 处理 post-install-cmd 事件并以异常终止
  3. 这是什么意思:执行“'cache:clear --no-warmup'”命令时出错。

感谢您的帮助!

【问题讨论】:

  • 修复时区可能会修复其余的错误,这些错误是最初异常的连锁反应。 stackoverflow.com/questions/16765158/…
  • 这是我的 php.ini 文件中带有时区设置的行: date.timezone = "Europe/Berlin" 。它没有注释。不知道为什么 symfony 在它已经存在的时候会请求这个。
  • Composer 通过 PHP CLI 执行。在许多系统上,CLI 使用的 php.ini 与 Web 不同。按照下面的建议检查php -i,以确保您查看的是正确的 php.ini。
  • 我已将系统上的每个 php.ini 文件更改为 date.timezone = UTC,但我仍然收到错误。

标签: php date symfony datetime


【解决方案1】:

只需在 app/AppKernel.php 文件中设置默认时区,如下所示:

  <?php

    use Symfony\Component\HttpKernel\Kernel;
    use Symfony\Component\Config\Loader\LoaderInterface;

    // setting the default time zone
    date_default_timezone_set('UTC');


    class AppKernel extends Kernel
    {
       // what ever bundles registered
     }

    public function registerContainerConfiguration(LoaderInterface $loader)
    {
    $loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
    }
 }

【讨论】:

    【解决方案2】:

    在这篇文章中找到了解决方案:Link to the solution

    我尝试在我的系统上编辑每个人的 php.ini 文件并重新启动 apache/MAMP,但没有成功。

    这是我唯一可以开始工作的事情。

    【讨论】:

    • 重新启动 Apache 将无济于事,因为您使用的不是其中包含的 PHP,而是完全独立的 PHP 版本,即 CLI 版本(命令行界面)。此 PHP 确实使用与 Apache PHP 不同的 php.ini 文件,因为可能需要对它们进行不同的配置。你没有让我相信你知道这件事并编辑了正确的文件。
    【解决方案3】:

    请运行php -i 并在输出中获取提到的php.ini 文件的位置。该文件需要添加的错误消息中提到的设置。可能已经有一些带有此名称的注释行。

    所有其他错误均由第一个错误触发,一旦完成所需的 PHP 设置,则不应触发。

    【讨论】:

    • 这是那一行:date.timezone = "Europe/Berlin"
    • 现在应该告诉我什么?您添加了该行并且有效?你找到了那条线,想知道为什么它已经在那里了?
    • 它不想被注释掉,当我运行“php composer.phar install”时它是活跃的。我不知道为什么会收到原始错误,因为我的 php.ini 文件有 date.timezone 设置。现在明白了吗?我不。我不知道为什么 Symfony 告诉我使用已经存在的设置。
    猜你喜欢
    • 1970-01-01
    • 2019-07-29
    • 2022-01-14
    • 1970-01-01
    • 2021-09-08
    • 2016-01-01
    • 2019-12-29
    • 2020-03-12
    • 2020-08-24
    相关资源
    最近更新 更多