Description du problème:
Lorsque je charge 127.0.0.1/cgi-bin/test.cgi
dans mon navigateur, mon test.cgi
est traité comme un fichier texte au lieu d'un fichier python.
Éliminer la possibilité que l'erreur soit liée au code python:
Je ne peux pas obtenir d'erreur 500 intentionnelle, quoi que je fasse avec le code python.
Et j'ai rendu le fichier cgi exécutable via Sudo chmod +x
.
Je l'ai déjà fait dans les versions précédentes d'Ubuntu sans problème.
Théorie:
Je crois que le problème réside dans ma configuration. Ci-dessous ma configuration de deux fichiers, Apache2.conf
et 000-default
.
J'ai collé différentes choses pour que mes fichiers de configuration fonctionnent, chaque fois que j'en ai l'occasion. Ceci est juste un aperçu de ce à quoi ressemblent ces deux fichiers au moment de la rédaction de cet article.
Merci d'avance!
/etc/Apache2/Apache2.conf
:
Mutex file:${Apache_LOCK_DIR} default
PidFile ${Apache_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${Apache_RUN_USER}
Group ${Apache_RUN_GROUP}
HostnameLookups Off
ErrorLog ${Apache_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory /home/isaac/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
/etc/Apache2/sites-available/000-default
:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/isaac/www
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>
ScriptAlias /cgi-bin/ /home/isaac/www/cgi-bin/
<Directory "/home/isaac/www/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
AddHandler cgi-script .py
AddHandler default-handler .html .htm
</Directory>
Le premier problème serait que le module CGI n'a pas été activé. Apache ne traite donc rien en tant que CGI. Activez-le:
Sudo a2enmod cgi
Dans Apache2.4, la configuration a été considérablement nettoyée et les éléments de la définition de site default
ont été déplacés vers les fichiers de configuration dans conf-available
. Entre autres choses, cela inclut également les lignes de configuration liées à CGI figurant dans le site default
des versions antérieures. Ceux-ci ont été déplacés vers /etc/Apache2/conf-available/serve-cgi-bin.conf
, qui contient:
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
Cela cause le deuxième problème. Modifiez ce fichier ou désactivez cette configuration:
Sudo a2disconf serve-cgi-bin