【问题标题】:php curl module calling apache wsgi applicationphp curl模块调用apache wsgi应用程序
【发布时间】:2011-12-11 05:13:24
【问题描述】:

我已经使用 mod-wsgi 和 apache 设置了一个 django 应用程序。这个应用程序已经过测试,并且在 linux curl 模块中运行良好。但是,当 php 代码通过 curl 库调用此应用程序时,我得到的响应为 "\x1f\x8b\b" ,而不是预期的 xml 响应。 p>

php 和 python 应用程序都运行在具有不同端口的同一台机器上。

我曾尝试在线搜索帮助,但没有用,因为我不了解 apache 在这种情况下的行为方式。 对此的任何帮助表示赞赏。如果需要任何进一步的细节,请告诉我。

更新: 我已将问题缩小到更少的参数。我已经完全消除了在 8000 端口上运行的 apache/django/wsgi 应用程序。现在通过 80 端口运行的 php 应用程序只是尝试(php curl)通过端口 8000 检索静态文本文件。

即使在这种情况下,问题仍然存在,返回的响应字符串仍然是相同的 "\x1f\x8b\b" 。需要注意的一件奇怪的事情是,在这两种情况下(django 应用程序或静态文件) 返回的http响应码是200。我尝试加载一个不存在的静态文件,并注意到响应代码为 404,并且响应仍然相同。

Apache 正在监听 80 和 8000 端口。

netstat -antp | grep "80"

tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      4348/python     
tcp6       0      0 :::80                   :::*                    LISTEN      1183/apache2    
tcp6       0      0 :::8000                 :::*                    LISTEN      1183/apache2    

所以应该是我缺少的 apache 的一些问题。请帮忙。

谢谢。

【问题讨论】:

    标签: php django apache curl wsgi


    【解决方案1】:

    我解决了这个问题。问题基本上是我正在使用的 php curl 调用以 gzip 格式获取响应。这在 linux curl 调用中没有发生,因为它在写出之前会自动解压缩响应。

    我只需要在 apache 中禁用 deflate 模块。

    a2dismod deflate
    

    它就像一个魅力。现在静态文件和 django/wsgi 应用程序运行顺利。

    谢谢。

    【讨论】:

      猜你喜欢
      • 2011-12-14
      • 1970-01-01
      • 2014-07-27
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多