我有一个简单的PHP脚本,以XML格式输出目录列表。我用它来让flash幻灯片显示可以显示的文件。
我刚刚将Flash添加到由Django提供支持的网站上,PHP文件现在按原样提供,而不是解析。
它位于我的媒体目录下的图像目录中。
我使用的服务器运行plesk,所以我为vhost.conf文件中的每个域执行配置(我认为它包含在主appache中)
看起来像这样:
WSGIScriptAlias / /var/www/vhosts/<domain>/conf/django.wsgi
Alias /media/ /var/www/vhosts/<domain>/httpdocs/media/
我认为这意味着对/下的任何内容的请求都会通过django来处理 除非他们是/ media / ...然后他们通过apache从指定的目录正常服务。
适用于图像,但不解析PHP文件。
我该怎么办?
答案 0 :(得分:3)
也许阅读这个帖子,并将PHP脚本移植到Python:
os.walk() python: xml representation of a directory structure, recursion
答案 1 :(得分:1)
如果你没有配置Apache,那么它知道'/ media'目录下的.php文件应该以某种方式由PHP处理,它们不会。所以,mod_wsgi配置很好,问题可能是你的PHP配置。
您如何配置PHP?你使用mod_php,还是通过fastcgi使用PHP?如何配置Apache以便它知道将.php文件视为PHP以及该配置应用于哪些目录?
答案 2 :(得分:1)
WSGIScriptAlias
指令吞噬了Alias
的网址。交换订单。
答案 3 :(得分:1)
事实证明问题是两件事,很难找到。
感谢Ignacio Vazquez-Abrams,我的排线错误。
一旦解决了这个问题,PHP将无法提供我的文件,因为它位于allowed path(s)
外部符号链接的目录中。我通过关闭此vhost的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