Der Server, den ich aktualisiert/aktualisiert habe, verfügt über Seiten, die PHP und Python verwenden. Ich habe die Python-basierte Seite mit dem Flask-Framework umgeschrieben und Apache mit wsgi konfiguriert:
<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
Auf dem alten Server war die URL, die auf das Verzeichnis verweist, standardmäßig auf die Option index.php
使用 DirectoryIndex
eingestellt (in einer anderen Konfigurationsdatei festgelegt). Auf dem neuen Server erhalte ich die Meldung „Interner Serverfehler“ und den Antwortcode 500 im Fehlerprotokoll.
Die ultimative Frage ist also, wie man Apache so konfiguriert, dass sowohl von PHP verarbeitete Seiten als auch von Python verarbeitete Seiten bereitgestellt werden. (Hinweis: Es gibt mehrere PHP-verarbeitete Seiten im Flask-Verzeichnis)
Bearbeiten: Ich habe eine weitere AliasMatch
行,似乎可以执行我想要的操作。我还能够从第二个 AliasMatch
-Zeile hinzugefügt, um „php“ zu entfernen:
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/
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.