【问题标题】:Symfony / Apache2 / PHP-FPM 7.3 - net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK) in homepage onlySymfony / Apache2 / PHP-FPM 7.3 - net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK) 仅在主页
【发布时间】:2019-08-09 16:06:39
【问题描述】:

这两天一直在寻找答案。似乎没有什么适用的。

  • 错误 net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK) 出现在 Chrome 控制台中。
  • 如果我尝试在浏览器中查看页面源代码,它看起来是空的。
  • 在 Firefox 上没有错误并且页面源看起来不错(存在最终的 </html> 标记)
  • 该错误仅在主页上打印,并且仅在服务器上打印,而不是在本地打印。
  • 页面内容似乎没问题,我用别人的页面内容(静态,无变量)进行测试,在另一条路线上运行良好,但错误仍然存​​在。
  • 我已将路由从 stage.myproject.url 更改为 stage.myproject.url/x 并且错误不再存在,因此它几乎与主 URL 相关。

根据Symfony Docs: Configuring a Web Server 和网站的需要,Apache 配置如下所示:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName stage.myproject.url

    DocumentRoot /var/www/stage.myproject.url/public
    <Directory /var/www/stage.myproject.url/public>
        AllowOverride None
        Require all granted

        FallbackResource /index.php

        AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user

    </Directory>

    <FilesMatch \.php$>
        # Apache 2.4.10+ can proxy to unix socket
        SetHandler "proxy:unix:/var/run/php/php7.3-fpm.sock|fcgi://localhost/"
    </FilesMatch>

    ErrorLog ${APACHE_LOG_DIR}/stage.myproject.error.log
    CustomLog ${APACHE_LOG_DIR}/stage.myproject.access.log combined


    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/stage.myproject.url/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/stage.myproject.url/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/stage.myproject.url/chain.pem

</VirtualHost>
</IfModule>

关于我接下来应该尝试什么的任何提示?

编辑:禁用

FallbackResource /index.php

行删除了错误并破坏了 Symfony 调试工具栏。

【问题讨论】:

  • 您是否从 Symfony 文档中查看过此资源?它对于使用 Symfony 的服务器配置总是有用的:symfony.com/doc/current/setup/web_server_configuration.html
  • 是的,配置是按照 Symfony 文档创建的。仅添加了此特定项目所需的几行。我已经用这些信息更新了这个问题。感谢您指出这一点!

标签: php symfony google-chrome routing apache2


【解决方案1】:

似乎 Apache 中有一个错误,fixed in 2.4.25。服务器有 Ubuntu 16.04,它有 Apache 2.4.18

为了修复它,我从 PPA 升级了 Apache,如下所示:

apt-get install software-properties-common
add-apt-repository ppa:ondrej/apache2
apt-get update

【讨论】:

  • 这对我不起作用。它与 Symfony 分析器有关,但我不知道。
  • 是的,在 Symfony 上下文中,它发生在探查器启动时。该错误在我的第一个链接中描述为:“如果在子请求上执行 FallbackResource,则服务器永远不会发送导致在一些客户中出现了挂起现象。”使用 Symfony,分析器使用子请求。如果升级 Apache 的版本没有修复它,也许它是别的东西。另一种测试是否是此错误的方法是尝试禁用 Apache 配置中的 FallbackResource 指令。如果它解决了问题,那么它可能是这个错误,如果没有,它可能是其他问题。
  • 我修好了:看我的回答:)
【解决方案2】:

我通过在同一索引文件的FallbackResource 之前添加DirectoryIndex 来修复它:

    <Directory /var/www/my-app/public>
        AllowOverride None
        Order Allow,Deny
        Allow from All

        DirectoryIndex /index.php
        FallbackResource /index.php
    </Directory>

【讨论】:

  • 很遗憾,我无法测试并确认您的修复,因为我已经在该服务器上升级了 Apache :)
猜你喜欢
  • 1970-01-01
  • 2016-03-20
  • 2014-05-01
  • 2019-05-04
  • 1970-01-01
  • 2021-09-22
  • 2020-03-15
  • 1970-01-01
  • 2012-11-08
相关资源
最近更新 更多