1

我有一个简单的 PHP 脚本,它以 XML 格式输出目录列表。我用它来让 Flash 幻灯片知道可以显示哪些文件。

我刚刚将 Flash 添加到由 Django 提供支持的网站中,并且 PHP 文件现在按原样提供,而不是解析。

它在我的媒体目录下的图像目录中。

我使用的服务器运行 plesk,所以我在 vhost.conf 文件中为每个域进行配置(我认为它包含在主 appache conf 中)

它看起来像这样:

WSGIScriptAlias / /var/www/vhosts/<domain>/conf/django.wsgi
Alias /media/ /var/www/vhosts/<domain>/httpdocs/media/

我认为这意味着对 / 下的任何内容的请求都会被 django 处理。
除非它们用于 /media/...,否则它们将由 apache 从指定的目录正常服务。

这适用于图像,但不解析 PHP 文件。

我该怎么办?

4

4 回答 4

3

也许阅读这个线程,并将您的 PHP 脚本移植到 Python:

os.walk() python: 目录结构的 xml 表示,递归

于 2010-01-29T03:08:54.617 回答
1

如果您没有配置 Apache 以便它知道 '/media' 目录下的 .php 文件应该由 PHP 以某种方式处理,它们将不会被处理。所以,mod_wsgi 配置没问题,问题很可能是你的 PHP 配置。

你是如何配置PHP的?你是在使用 mod_php,还是通过 fastcgi 使用 PHP?如何配置 Apache 以便它知道将 .php 文件视为 PHP 以及该配置应用于哪些目录?

于 2010-01-29T04:17:40.293 回答
1

那里的WSGIScriptAlias指令吞噬了用于Alias. 交换订单。

于 2010-01-29T04:24:13.983 回答
1

所以事实证明问题是两件事,很难找到。

感谢 Ignacio Vazquez-Abrams,我的台词弄错了。

一旦解决了这个问题,PHP 就不会为我的文件提供服务,因为它位于一个从allowed path(s). 我通过关闭此虚拟主机的 open_basedir 限制来解决此问题。我的新品vhost.conf如下。

<Directory /var/www/vhosts/<domain>/httpdocs>
    php_admin_flag engine on
    php_admin_value open_basedir none
</Directory>

Alias /media/ /var/www/vhosts/<domain>/httpdocs/media/

WSGIScriptAlias / /var/www/vhosts/<domain>/conf/django.wsgi
于 2010-02-13T04:27:40.120 回答