Php 如何使用composer.phar安装修复问题

Php 如何使用composer.phar安装修复问题,php,date,symfony,datetime,Php,Date,Symfony,Datetime,我正在尝试将composer安装与symfony2一起使用。但我一次又一次地碰到这个问题 当我跑步时: php composer.php安装 我发现以下错误,我不知道如何修复: 错误1 [Symfony\Component\Debug\Exception\ContextErrorException] 警告:日期\默认\时区\获取:依赖系统的时区设置是不安全的。您需要使用date.timezone设置或date\u default\u timezone\u set功能。如果您使用了这些方法中的任何

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

当我跑步时:

php composer.php安装

我发现以下错误,我不知道如何修复:

错误1

[Symfony\Component\Debug\Exception\ContextErrorException] 警告:日期\默认\时区\获取:依赖系统的时区设置是不安全的。您需要使用date.timezone设置或date\u default\u timezone\u set功能。如果您使用了这些方法中的任何一种,但仍然收到此警告,则很可能是您拼错了时区标识符。我们暂时选择了时区“UTC”,但请设置date.timezone以选择您的时区。在/Applications/MAMP/htdocs/ffss/vendor/jms/serializer bundle/jms/serializer bundle/DependencyInjection/Configuration.php第66行中

错误2

Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache处理安装后cmd事件时异常终止

错误3

[运行时异常] 执行“缓存:清除-无预热”命令时出错

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

->scalarNode'default\u timezone'->defaultValuedate\u default\u timezone\u get->end

我不知道在哪里设置它请求的时区。 我甚至不知道从哪里开始修复这个错误:Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache处理安装后cmd事件以异常终止 这甚至意味着什么:执行“cache:clear-no warmup”命令时出错。 谢谢你的帮助

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


所有其他错误都由第一个错误触发,并且在完成所需的PHP设置后不应触发。

在本文中找到了解决方案:

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


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

只需在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');
    }
 }

修正时区可能会修正这些错误的其余部分,这些错误是最初异常的连锁反应。这是我的php.ini文件中带有时区设置的行:date.timezone=Europe/Berlin。它没有注释。不确定symfony在它已经存在的情况下为什么要请求它。Composer通过PHP CLI执行。在许多系统上,CLI使用与web不同的php.ini。检查php-i,如下所示,以确保您看到的是正确的php.ini。我已将系统中的每个php.ini文件更改为现在的date.timezone=UTC,但仍然会出现错误。这是一行:date.timezone=Europe/berlin现在应该告诉我什么?你加了这条线,它还能用吗?您发现了这一行,并想知道它为什么已经存在了?它没有被注释掉,在我运行php composer.phar安装时它是活动的。我不知道为什么会出现原始错误,因为我的php.ini文件中有date.timezone设置。现在明白了吗?我不知道。我不知道Symfony为什么要告诉我使用一个已经存在的设置。重新启动Apache不会有任何作用,因为您使用的不是其中包含的PHP,而是一个完全独立的PHP版本,即CLI版本的命令行界面。这个PHP使用的PHP.ini文件与ApachePHP不同,因为可能需要对它们进行不同的配置。你没有让我相信你知道这件事并编辑了正确的文件。