web-dev-qa-db-fra.com

Apache2.4.7 sur Ubuntu 14.04 n'exécutera pas le fichier cgi Python. Le site affiche plutôt le code python

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>
7
Isaac

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
9
muru