Сведения о вопросе

SOON

16:03, 1st July, 2020

Теги

python   apache   apache2    

Как настроить Python скриптов для работы в Apache 2.0?

Просмотров: 580   Ответов: 4

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

Моя коробка работает на ОС Х, производство - Centos.



  Сведения об ответе

davran

18:03, 1st July, 2020

Есть два основных способа запуска 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/ )


  Сведения об ответе

nYU

18:03, 1st July, 2020

Да, 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.


  Сведения об ответе

VCe znayu

18:03, 1st July, 2020

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

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

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


  Сведения об ответе

DINO

18:03, 1st July, 2020

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

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться