【问题标题】:Use php while running mod_wsgi-express with django在使用 django 运行 mod_wsgi-express 时使用 php
【发布时间】:2017-01-03 15:53:02
【问题描述】:

我目前正在我的服务器上运行一个 django 应用程序,一切都很好,但是当我尝试访问位于 /etc/mod_wsgi-express-80/htdocs 中的 phpliteadmin.php 之类的 php 文件时,我只能看到代码,但未执行 php。我可以找到类似的问题,但没有什么真正有用的。我刚开始网络开发,所以我需要一些帮助。

有人说我应该更改 <VirtualHost *:80> 部分,但其中有多个,我的 /etc/mod_wsgi-express-80/httpd.conf 看起来与他们的不同,我认为这是因为他们没有使用“express”版本。

感谢您的帮助!

【问题讨论】:

  • 您需要向我们展示 apache 配置文件中的相关部分。

标签: php django apache mod-wsgi


【解决方案1】:

如果您的 Apache 安装已安装 PHP,如果使用 mod_wsgi-express,只需提供 --with-php5 选项。

我不跟踪 PHP 版本,添加该选项只是为了显示可以完成。如果有较新的 PHP 版本,则需要更新 mod_wsgi-express 以了解它们。如果有多个 PHP 版本,那么可能需要使用单独的 --php-version 选项将其泛化为 --with-php,或者让它自动检测安装了哪个 PHP 版本。

您最好跳上 mod_wsgi 邮件列表来讨论更改。

【讨论】:

  • 我会尝试使用 --with-php5 选项。我正在使用 PHP 5.4.45。
  • 它现在工作正常,但我还必须将 phplib5.so 从 apache/modules 复制到我的 virtualenv。谢谢!
  • 您不应该这样做。您遇到的错误是什么让您认为需要这样做?
  • 它说 phplib5.so 丢失了...无论如何我后来终止了服务器,所以我无法重新创建错误。
【解决方案2】:

我相信你的虚拟主机配置中需要这样的东西

#
# Cause the PHP interpreter to handle files with a .php extension.
#
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

这将告诉 apache 为 php 文件运行 php 解释器。

【讨论】:

  • 因为他们使用的是mod_wsgi-express,所以为他们生成了完整的 Apache 配置。要简单地插入额外的配置,他们需要将其添加到单独的文件中,并使用mod_wsgi-express--include-file 选项。这会将它添加到 Apache 配置的末尾。他们还需要在该文件的开头添加 LoadModule 行以加载 PHP 模块本身。
猜你喜欢
  • 2020-10-11
  • 1970-01-01
  • 2015-03-17
  • 2011-05-14
  • 2016-08-26
  • 2012-08-02
  • 2018-08-21
  • 2020-07-15
  • 2017-01-28
相关资源
最近更新 更多