如何在同一台服务器上为flask和php配置apache

68bkxrlz  于 2023-01-26  发布在  Apache
关注(0)|答案(1)|浏览(169)

我正在升级/更新的服务器有使用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
qvsjd97n

qvsjd97n1#

正如我的编辑中提到的,AliasMatch指令起作用了,从文档来看,这允许Apache托管静态文件,我猜静态文件也包括php文件。

相关问题