【问题标题】:Trouble with symfony2 installationsymfony2 安装问题
【发布时间】:2014-08-30 19:35:53
【问题描述】:

我正在尝试安装 Symfony2。我在做什么在这里描述http://symfony.com/doc/current/quick_tour/the_big_picture.html

  1. 卷曲-sS https://getcomposer.org/installer | php
  2. sudo mv composer.phar /usr/local/bin/composer

(这总结了作曲家的安装)

  1. 作曲家创建项目 symfony/framework-standard-edition 。 '~2.5'

输入所有参数后(安装的最后一步),我在控制台中收到此错误(我安装 symfony2 的路径是 - /vagrant/webroot/pavel - 在我的虚拟机上):

PHP Fatal error:  Interface 'Psr\Log\LoggerInterface' not found in /vagrant/webroot/pavel/vendor/monolog/monolog/src/Monolog/Logger.php on line 28
Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-install-cmd event terminated with an exception



  [RuntimeException]
  An error occurred when executing the "'cache:clear --no-warmup'" command.



create-project [-s|--stability="..."] [--prefer-source] [--prefer-dist] [--repository-url="..."] [--dev] [--no-dev] [--no-plugins] [--no-custom-installers] [--no-scripts] [--no-progress] [--keep-vcs] [--no-install] [package] [directory] [version]

所以有两个错误:1关于LoggerInterface,另一个关于缓存清除。我不知道他们是否有关系。 安装后,我转到我的 localhost/app_dev.php 并再次收到第一个错误,但现在在浏览器中:

Fatal error: Interface 'Psr\Log\LoggerInterface' not found in /vagrant/webroot/pavel/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Log/LoggerInterface.php on line 25

我真的需要帮助,因为我想“正确”地完成 symfony2 的每个部分,而不依赖于任何自定义操作。

更新(有些人让我发布作曲家)

我是通过我在这篇文章中解释过的命令安装的,所以作曲家是自行生成的,这意味着它不是由我创建的,它应该可以工作。但无论如何:

{
    "require": {
        "symfony/symfony": "2.5.*"
    },
    "autoload": {
        "files": ["model.php","controllers.php"]
    }
}

【问题讨论】:

  • 请添加composer.json

标签: php symfony installation


【解决方案1】:

一个常见问题是 app/cache 和 app/logs 目录必须对 Web 服务器和命令行用户都可写。在 UNIX 系统上,如果您的 Web 服务器用户与命令行用户不同,则必须对文件夹进行 chmod 以确保正确设置权限。

如果仍然无法使用设置为 755 或 777 的权限(仅用于在开发环境中测试),请尝试在浏览器中看到此消息时清除缓存和日志

sudo rm -rf app/cache/* app/logs/*

【讨论】:

  • 不,这不是问题所在。我已经清除了缓存。另外,这与 Symfony 找不到课程有什么关系?
  • 如果您无权访问日志和缓存文件夹,则找不到该类。试试这个: $ sudo chmod +a "www allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs $ sudo chmod +a "whoamiallow delete,write,append,file_inherit,directory_inherit" app/cache应用程序/日志
  • chmod +a 在 unix 上失败。我读过它似乎是特定于 mac 的命令。
  • 我已经尝试了所有可能的用户和 777 权限。没有任何效果。
  • 在尝试了这个和那个之后,我开始思考我通过 composer 安装的方式......帮助我的是在没有 sudo 的情况下使用 composer 安装。只使用标准的 unix 用户。它有帮助,现在它可以工作了。我会把这个答案标记为正确的,因为问题的根源已经得到了正确的解释。
【解决方案2】:

看起来像是文件夹权限的问题。可能 Symfony 想要在安装后清除缓存。 (我不确定,但这是我要检查的第一件事。

您还可以检查 composer 是否有最新版本。

【讨论】:

  • 如果您阅读了我采取的步骤,您会看到我使用 curl -sS getcomposer.org/installer | 安装了 composer php,它不能老。
猜你喜欢
  • 1970-01-01
  • 2013-04-25
  • 2013-08-26
  • 2012-05-24
  • 1970-01-01
  • 2015-08-29
  • 1970-01-01
  • 1970-01-01
  • 2021-05-31
相关资源
最近更新 更多