запуск скрипта Python из cgi-bin в другом месте

Насколько я понимаю, один из способов запуска скриптов Python на веб-сервере - это определить каталог cgi-bin, а затем поместить туда мой script.cgi. Это может привести к чему-то вроде http://example.com/cgi-big/script.cgi.

Но что, если мне нужно вызвать этот сценарий из другого места? Я имею в виду, скажем, цель этого скрипта - создать веб-страницу, и я хочу, чтобы эта страница была доступна по адресу http://example.com/the/other/cute/location/. Как мне тогда действовать?

Это единственный способ использовать SSI через index.html, который будет включать что-то вроде этого:

<!--#exec cmd="../../../script.cgi" -->

Или есть другие решения?


person user3095238    schedule 12.12.2013    source источник


Ответы (2)


Есть много способов запустить ваш скрипт в любом месте, которое вам нравится; в основном это делается через конфигурацию вашего веб-сервера. Я предполагаю, что вы используете apache, но будет способ делать все это и на других веб-серверах. Ключевые директивы будут выглядеть примерно так:

Опции ExecCGI SetHandler cgi-скрипт

Для того, что вы пытаетесь сделать, modpython также звучит как простое решение для того, что вас интересует. Прочтите это: http://modpython.org/python10/

Дело в том, что вы можете настроить apachehandler для прослушивания запросов в определенном каталоге или конкретном типе файла (или обоих) и обработать их с помощью modpython.

Если вас больше интересуют сценарии, рассматриваемые как традиционные cgi, это все еще вариант, довольно хорошо задокументированный здесь: http://httpd.apache.org/docs/2.0/howto/cgi.html Аналогично тому, как вы выполняете сканирование, укажите apachehandler modpython для работы в зависимости от типа файла или местоположения, вы можете сделать то же самое для обработчика cgi (или perl, или php - вы можете понять, почему эта модульность имеет смысл).

... для полноты я также отмечу WSGI, который, хотя он все еще новый и меняется, вероятно, ближе к направлению вещей в будущем, когда речь идет о серверных скриптах: http://en.wikipedia.org/wiki/Web_Server_Gateway_Interface Сначала вам будет сложнее понять WSGI, я бы начал с один из двух предыдущих вариантов.

Я совершенно уверен, что не рассмотрел все способы запуска python на веб-сервере ... но я думаю, что заставил вас приблизиться к тому, что вы хотели знать.

person pacifist    schedule 12.12.2013

Что ж, это один способ запуска скриптов Python, но не очень хороший способ. Существует множество лучших способов запуска скриптов Python на веб-сервере, лучший из которых - (микро) фреймворк, работающий через WSGI.

Однако, чтобы ответить на ваш вопрос, вы должны использовать директиву Alias в вашей конфигурации Apache для сопоставления вашего URL-адреса с местоположением вашего скрипта. Также обратите внимание, что в каталоге cgi-bin нет ничего волшебного: любой каталог может использоваться для исполняемых сценариев, если вы установите флаг ExecCGIAddHandler) в директиве Options для этого каталога.

person Daniel Roseman    schedule 12.12.2013