2012-01-18 2 views
1

У меня есть стандартная установка Apache2 на сервере Ubuntu. В настройках по умолчанию используйте ScriptAlias для отправки /cgi-bin/ на номер /usr/lib/cgi-bin/. Если я положу сценарий CGI Python в /usr/lib/cgi-bin/, он будет выполнен.Выполнение CGI Python из/cgi-bin/folder

Я создал /var/www/cgi-bin/ с соответствующими разрешениями, убрана ScriptAlias линии, изменила Directory записи в файле default для сайта, переместил файл CGI в /var/www/cgi-bin/ и перезапустить Apache2, но я не был в состоянии получить скрипт для запуска. Он отображался как текстовый файл в браузере, а не был выполнен. HTML-файл, вызывающий скрипт, относится к /cgi-bin/SCRIPT, поэтому я оставил его неизменным. Я пробовал варианты в /cgi-bin и /var/www/cgi-bin в конфигурационных файлах без успеха. Как я могу получить файл CGI Python для запуска от/var/www/cgi-bin?

ответ

4

Если вы удалили ScriptAlias директиву, вы, вероятно, следует добавить следующие строки в основной конфигурации для каталога или в .htaccess файл:

Options +ExecCGI 
AddHandler cgi-script py 
+0

Мои сценарии CGI заканчиваются на .cgi, поэтому я предполагаю, что это ... 'cgi-script cgi' в моем случае? Я проверю это сейчас. – SabreWolfy

+0

Я заметил, что эти строки не работают, если я поместил их в раздел 'Directory' в файле' default'; они работали, когда я помещал их в основную часть этого файла. Я предполагаю, что было бы лучше разместить их в файле .htaccess, чтобы их эффекты были локальными только в этой папке? – SabreWolfy

+0

@SabreWolfy, ну, я обычно сам помещаю их в '.htaccess', где мне нужно =) Но у меня есть другие директивы' AddHandler' в разделах 'VirtualHost', поэтому оба они должны работать. – newtover

0

пожалуйста, убедитесь, что:

  1. файл вам имеют собственное разрешение
  2. Файл, который вы вызываете, имеет расширение, которое находится в файле .htaccess (см. ответ newtover)
  3. укажите, как вы хотите запустить скрипт в первой строке файла. Если вы вызываете foo.pl, убедитесь, что #!/Usr/bin/perl находится в первой строке.