Запустите Python CGI Script в Windows XP - PullRequest
1 голос
/ 09 апреля 2010

У меня машина с Windows XP, на которой установлен Apache через установку VisualSVNServer. Я . пытаясь получить простой скрипт Python CGI для запуска в моем браузере, например http://build.procepts.com.au:8080/hg/cgi-bin/test.cgi. Однако, несмотря на попытки всех рекомендуемых подходов, браузер отображает только простой текст из скрипта cgi. Среди многих других попыток решения я следовал инструкциям, содержащимся здесь . Моя конечная цель - использовать веб-сервер Apache для обслуживания репозиториев из новой установки Mercurial. Видя, что Apache уже установлен из VisualSVNServer, я подумал, что я мог бы также использовать его. Есть какой-то другой прием, чтобы заставить это работать?

Ответы [ 2 ]

1 голос
/ 09 апреля 2010

Apache-сервер, который поставляется с VisualSVNServer, представляет собой минимальную сборку, поддерживающую ровно столько, сколько нужно для обслуживания SVN-репозиториев. Не включает поддержку cgi.

Тем не менее, довольно легко добавить поддержку cgi (или любого другого модуля в этом отношении).

В частности, для поддержки CGI вам необходимо получить «mod_cgi.so», созданный для Apache 2.2 Win32, и поместить его в «C: \ Program Files \ VisualSVN Server \ bin», а затем добавить:

LoadModule cgi_module bin/mod_cgi.so
ScriptAlias /cgi-bin/ cgi-bin/

в "C: \ Program Files \ VisualSVN Server \ conf \ httpd-custom.conf". Перезапустите VisualSVN, и он должен начать работать.

0 голосов
/ 09 апреля 2010

Я не уверен, применимо ли это к VisualSVNServer, но в обычном Apache вам понадобится как минимум следующее:

  1. Раскомментировать загрузку модуля CGI в конфигурации Apache:

    LoadModule cgi_module modules/mod_cgi.so (or similar)
    
  2. Разрешить выполнение скриптов CGI в вашем каталоге и добавить обработчик для скриптов py:

    <Directory /path/to/scripts/directory>
        Options +ExecCGI
        AddHandler cgi-script py
    </Directory>
    
  3. Вставить строку shebang в исполняемый скрипт:

    #!/usr/local/bin/python
    
...