【问题标题】:Can't install profiler symfony flex无法安装探查器 symfony flex
【发布时间】:2018-04-05 17:29:45
【问题描述】:

运行composer req profiler 后我无法使用 symfony 分析器 我在 4.0 beta 版本中使用 symfony/skeleton,但我记得几个月前在 3.3 版本中测试时遇到了同样的问题。

工具栏不工作,请在此处留言:

加载 Web 调试工具栏时出错。打开网络分析器。

当点击“打开网络分析器”时,出现 404 错误。

如果有人解决了,谢谢你的帮助。如果没有,我会在它仍处于测试阶段时报告一个错误。

关于安装: 使用 composer 创建了一个项目,其中 4.0-beta 版中的 symfony/skeleton 包链接在这里:https://github.com/symfony/skeleton

我的 php 版本是 7.1 ;我尝试从上面的命令安装探查器。

【问题讨论】:

  • 您是如何设置安装项目的?我刚刚制作了一个新的 S4 beta 项目,一切似乎都按预期工作。您是否添加了控制器页面?考虑使用项目安装的详细信息更新您的问题。
  • 更新项目安装

标签: symfony symfony-flex symfony4


【解决方案1】:

OP 已经解决了他的问题,但我想我会评论一下我的经验。就我而言,我使用 Flex 来安装分析器就好了;检查我的应用程序,路线设置正确。我关注了Symfony's guide to webserver configuration 的 Apache 和 PHP-FPM,它非常适合运行 PHP 文件。但是,关于非 PHP 文件的重写规则部分在 mod_php 部分中,在 FPM 部分中不再重复。我在快速阅读时错过了这一点。具体来说,您需要确保您的配置中有 mod_rewrite 块,如下所示(使用 Apache 2.2 或 2.4 设置,而不是两者):

DocumentRoot /var/www/project/public
<Directory /var/www/project/public>
    AllowOverride None

    # Apache 2.2
    Order Allow,Deny
    Allow from All
    # /Apache 2.2

    # Apache 2.4
    Require all granted
    # /Apache 2.4

    <IfModule mod_rewrite.c>
        Options -MultiViews
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]
    </IfModule>
</Directory>

【讨论】:

    【解决方案2】:

    我也遇到了同样的问题。 我使用composer require profiler --dev安装它

    然后我安装了 twig,因为我想返回一个视图而不是 Response 对象,但是分析器没有工作。

    原因是我创建了一个 Twig 模板,它没有扩展 base.html.twig,它只是一个具有 html、body、head 和 title 标签的简单 html 布局。

    所以事实证明,分析器需要您返回的标记响应中的 body 标记。

    所以,我所做的只是在我的新模板顶部添加{% extends 'base.html.twig' %}

    它成功了!

    【讨论】:

      【解决方案3】:

      尝试以下步骤:

      composer create-project -s beta symfony/skeleton:4.0.x s40b1
      cd s40b1
      composer require web-server
      composer require cli
      composer require profiler
      

      添加控制器

      class DemoController extends AbstractController
      {
          public function demoAction()
          {
              $html = <<<EOT
      <!DOCTYPE html>
      <html>
        <head><meta charset="UTF-8"><title>s4b1</title></head>
        <body>Demo Body</body>
      </html>
      EOT;
              return new Response($html);
          }
      }
      

      还有一条路线

      demo:
          path: /demo
          defaults: { _controller: 'App\Controller\DemoController::demoAction' }
      

      然后

      bin/console cache:clear
      bin/console server:run
      

      导航到

      http://127.0.0.1:8000/demo
      

      如果它有效,那么确定你的配置在哪里不同。

      【讨论】:

      • 谢谢您,根据您的建议,我发现问题出在服务器端,现在已解决:)
      猜你喜欢
      • 2019-10-21
      • 2023-03-04
      • 2023-01-30
      • 2021-04-25
      • 1970-01-01
      • 2013-12-12
      • 2017-10-08
      • 2018-05-27
      相关资源
      最近更新 更多