我正在升级/更新的服务器有使用php和python的页面,我已经使用Flask框架重写了基于python的页面,并且使用wsgi配置了apache:
<VirtualHost *:443>
ServerName my_fake_site
...
AliasMatch ^\/((?:flask_dir1|flask_dir2).*)\.((css|php|png)$((?:\?.*)?)) /var/www/html/app/$1.$2
AliasMatch ^\/(.*)\.(css|html|php|png) /var/www/html/$1.$2
WSGIDaemonProcess main_proc processes=8 python-home=/var/www/html/venv
WSGIScriptAlias / /var/www/html/wsgi.py
<Directory /var/www/html/>
WSGIProcessGroup main_proc
WSGIApplicationGroup %{GLOBAL}
Require all granted
</Directory>
SSLEngine on
...
</VirtualHost>
WSGIPythonPath /var/www/html
WSGIPythonHome /var/www/html/venv
在旧服务器上,使用DirectoryIndex
选项(在另一个conf文件中设置),指向目录的url默认为index.php
,在新服务器上,我得到一个“内部服务器错误”消息,错误日志中有一个500响应代码。
所以最终的问题是,我如何配置apache来同时为php处理的页面和python处理的页面提供服务?(注意:在flask目录中有一些由php处理的页面)
**EDIT:*我添加了另一个AliasMatch
行, 似乎 * 做了我想做的事情。我还可以从第二个AliasMatch
行中删除'php':
AliasMatch ^\/((?:flask_dir1|flask_dir2).*)\.((css|php|png)$((?:\?.*)?)) /var/www/html/app/$1.$2
AliasMatch ^\/(.*)\.(css|html|png) /var/www/html/$1.$2
AliasMatch ^\/((?:php_dir1|php_dir2).*) /var/www/html/$1
1条答案
按热度按时间qvsjd97n1#
正如我的编辑中提到的,
AliasMatch
指令起作用了,从文档来看,这允许Apache托管静态文件,我猜静态文件也包括php文件。