Python CGI-скрипт загружается вместо запуска - PullRequest
0 голосов
/ 23 октября 2018

Я работаю на Ubuntu 16.04LTS с apache2.Я работаю над выполнением простого скрипта CGI Python "hello.py".Но вместо того, чтобы выполнить файл, он загружается.Если я изменю расширение с «.py» на «.cgi», код отобразится в моем браузере.

Мой CGI-скрипт сохранен в каталоге / var / www / cgi-bin и записан ниже

import cgitb
cgitb.enable()    
print("Content-Type: text/html;charset=utf-8")

print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word - First CGI Program</title>'
print '</head>'
print '<body>'
print '<h2>Hello Word! This is my first CGI program</h2>'
print '</body>'
print '</html>'

Я следовал CGI-учебник .Это руководство следует методу ScriptAlias ​​для настройки apache2.Согласно этому уроку, я добавил приведенный ниже код в конец файла apche2.conf

#########     Adding capaility to run CGI-scripts #################
ServerName localhost
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
Options +ExecCGI
AddHandler cgi-script .cgi .pl .py

И я изменил свой файл conf-available / serve-cgi-bin.conf в форму ниже

<IfModule mod_alias.c>
        <IfModule mod_cgi.c>
                Define ENABLE_USR_LIB_CGI_BIN
        </IfModule>

        <IfModule mod_cgid.c>
                Define ENABLE_USR_LIB_CGI_BIN
        </IfModule>

        <IfDefine ENABLE_USR_LIB_CGI_BIN>
                ScriptAlias /cgi-bin/ /var/www/cgi-bin/
                <Directory "/var/www/cgi-bin">
                        AllowOverride None
                        Options +ExecCGI
                        #Require all granted
                </Directory>
        </IfDefine>
</IfModule>

Тем не менее мой CGI-скрипт загружается, а не запускается.Как решить эту проблему?

1 Ответ

0 голосов
/ 23 октября 2018

Я исправил это.После редактирования файлов конфигурации, есть еще один шаг, который нужно сделать. В каталоге /etc/apache2/mods-available вы можете увидеть установленные модули apache2.cgi.load - модуль для файлов CGI.Это не включено по умолчанию.Используйте эти команды для их включения.

$ cd /etc/apache2/mods-enabled
$ sudo ln -s ../mods-available/cgi.load

Затем перезагрузите сервер

$ sudo service apache2 reload
...