Le serveur que j'ai mis à niveau/mis à jour a des pages utilisant php et python. J'ai réécrit la page basée sur Python en utilisant le framework Flask et configuré Apache en utilisant 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
Sur l'ancien serveur, l'url pointant vers le répertoire était par défaut l'option index.php
使用 DirectoryIndex
(définie dans un autre fichier de configuration). Sur le nouveau serveur, je reçois un message « Erreur de serveur interne » et un code de réponse 500 dans le journal des erreurs.
La question ultime est donc de savoir comment configurer Apache pour qu'il serve à la fois les pages traitées par php et les pages traitées par python ? (Remarque : il existe plusieurs pages traitées par PHP dans le répertoire flask)
Edit : J'ai ajouté une autre AliasMatch
行,似乎可以执行我想要的操作。我还能够从第二个 AliasMatch
ligne pour supprimer "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/
Comme mentionné dans mon montage, la directive
AliasMatch
a fonctionné. D'après la documentation, cela permet à Apache d'héberger des fichiers statiques, qui, je suppose, incluent également des fichiers php.