首頁  >  問答  >  主體

如何在同一台伺服器上為flask和php設定apache

我一直在升級/更新的伺服器有使用 php 和 python 的頁面。我使用 Flask 框架重寫了基於 python 的頁面,並使用 wsgi 配置了 apache:

<VirtualHost *:443>
    ServerName my_fake_site
    ...
    AliasMatch ^\/((?:flask_dir1|flask_dir2).*)\.((css|php|png)$((?:\?.*)?)) /var/www/html/app/.
    AliasMatch ^\/(.*)\.(css|html|php|png) /var/www/html/.

    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

在舊伺服器上,指向目錄的 url 預設為 index.php 使用 DirectoryIndex 選項(在另一個conf檔案中設定)。在新伺服器上,我在錯誤日誌中收到“內部伺服器錯誤”訊息和 500 回應代碼。

所以最終的問題是,如何設定 apache 來同時服務由 php 處理的頁面和 python 處理的頁面? (註:flask目錄下有幾個php處理的頁)

編輯:我新增了另一個 AliasMatch 行,似乎可以執行我想要的操作。我還能夠從第二個 AliasMatch 行中刪除“php”:

AliasMatch ^\/((?:flask_dir1|flask_dir2).*)\.((css|php|png)$((?:\?.*)?)) /var/www/html/app/.
AliasMatch ^\/(.*)\.(css|html|png) /var/www/html/.
AliasMatch ^\/((?:php_dir1|php_dir2).*) /var/www/html/

P粉547170972P粉547170972306 天前402

全部回覆(1)我來回復

  • P粉431220279

    P粉4312202792024-01-11 00:36:41

    As mentioned in my edit, the AliasMatch directive worked. From the documentation, this allows Apache to host static files, which I guess also includes php files.

    回覆
    0
  • 取消回覆