Bagaimana untuk mengkonfigurasi apache untuk flask dan php pada pelayan yang sama
P粉547170972
P粉547170972 2024-01-10 17:18:45
0
1
421

Pelayan yang saya telah naik taraf/kemas kini mempunyai halaman menggunakan php dan python. Saya menulis semula halaman berasaskan python menggunakan rangka kerja Flask dan mengkonfigurasi apache menggunakan wsgi:

<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

Pada pelayan lama, url yang menunjuk ke direktori lalai kepada pilihan index.php 使用 DirectoryIndex (ditetapkan dalam fail conf lain). Pada pelayan baharu, saya mendapat mesej "Ralat Pelayan Dalaman" dan kod respons 500 dalam log ralat.

Jadi persoalan utama ialah, bagaimana untuk mengkonfigurasi apache untuk menyampaikan kedua-dua halaman yang diproses oleh php dan halaman yang diproses oleh python? (Nota: Terdapat beberapa halaman yang diproses PHP dalam direktori kelalang)

Edit: Saya menambah satu lagi baris AliasMatch 行,似乎可以执行我想要的操作。我还能够从第二个 AliasMatch untuk mengalih keluar "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粉547170972
P粉547170972

membalas semua(1)
P粉431220279

Seperti yang dinyatakan dalam suntingan saya, arahan AliasMatch berfungsi. Daripada dokumentasi, ini membolehkan Apache mengehoskan fail statik, yang saya rasa juga termasuk fail php.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan