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/
Seperti yang dinyatakan dalam suntingan saya, arahan
AliasMatch
berfungsi. Daripada dokumentasi, ini membolehkan Apache mengehoskan fail statik, yang saya rasa juga termasuk fail php.