Как настроить скрипты Python для работы в Apache 2.0? - PullRequest
18 голосов
/ 07 августа 2008

Я пытался следовать парам руководств по настройке mod_python, но каждый раз терпел неудачу. У вас есть хорошее пошаговое руководство?

Мой dev devbox - OS X, производство - Centos.

Ответы [ 4 ]

12 голосов
/ 07 августа 2008

Существует два основных способа запуска Python на Apache. Самое простое - использовать CGI и писать обычные скрипты Python, а второе - использовать веб-фреймворк, такой как Django или Pylons.

Использование CGI просто. Убедитесь, что в вашем конфигурационном файле Apache настроен cgi-bin. Если нет, следуйте их документации (http://httpd.apache.org/docs/2.0/howto/cgi.html).. На этом этапе все, что вам нужно сделать, это поместить ваши скрипты Python в каталог cgi-bin, и стандартный вывод станет HTTP-ответом. Для получения дополнительной информации обратитесь к документации Python https://docs.python.org/library/cgi.html).

Если вы хотите использовать веб-фреймворк, вам нужно установить mod_python или FastCGI. Эти шаги зависят от того, какую платформу вы хотите использовать. Django предоставляет четкие инструкции о том, как настроить mod_python и Django с Apache (http://www.djangoproject.com/documentation/modpython/)

9 голосов
/ 07 августа 2008

Да, mod_python довольно запутан в настройке. Вот как я это сделал.

В httpd.conf:

LoadModule python_module modules/mod_python.so

<Directory "/serverbase/htdocs/myapp">
  AddHandler mod_python .py
  PythonHandler myapp
  PythonDebug On

и в каталоге вашего приложения:

$ /serverbase/htdocs/myapp$ ls -l
total 16
-r-xr-xr-x 1 root sys        6484 May 21 15:54 myapp.py

Повторите настройку для каждой программы Python, которую вы хотите запустить под mod_python.

5 голосов
/ 07 августа 2008

Вы используете Python в UNIX или Windows?

Альтернативой mod_python и FastCGI является mod_wsgi. Вы можете узнать больше на modwsgi

Я собрал и установил это на Solaris без проблем. Ранее я пробовал mod_python, но столкнулся с проблемами с общими библиотеками как часть сборки. Есть хороших документов для установки .

0 голосов
/ 10 февраля 2013

Проблема для меня не в настройке Apache, а в понимании того, как mod_apache на самом деле использует файлы .py. Операторы уровня модуля (в том числе в разделе if __name__=='__main__') выполняются , а не - я предполагал, что стандартный вывод сценария из командной строки будет выводиться сервером, но это не так работы.

Вместо этого я написал функцию уровня модуля с именем index() и вернул ей в виде строки HTML-код страницы. Также возможно иметь другие функции уровня модуля (например, otherFunction()), к которым можно обращаться как к дополнительным сегментам в URI (например, testScript/otherFunction для файла testScript.py.)

Очевидно, это имеет больше смысла, чем моя первоначальная концепция стандартного вывода. Лучшая возможность реального использования Python в качестве языка сценариев, а не огромного языка разметки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...