Уведомления

Группа в Telegram: @pythonsu

#1 Май 24, 2011 14:56:54

hippi90
От:
Зарегистрирован: 2011-04-06
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Apache и mod_wsgi, как это работает?

Есть сервер Apache с установленным mod_wsgi, есть пример простого скрипта, взятый из книги:

import cgi
def subscribe_app(environ, start_response):
fields = cgi.FieldStorage(environ['wsgi.input'],
environ=environ)

name = fields.getvalue(“name”)
email = fields.getvalue(“email”)
status = “200 OK”
headers = [(‘Content-type’,’text/plain’)]
start_response(status, headers)

response = [
'Hi %s. Thank you for subscribing.' % name,
'You should expect a response soon.'
]
return (line.encode(‘utf-8’) for line in response)
Как сделать так, чтобы данный скрипт выполнялся сервером?
P.S. Я знаю, что есть Django, web.py, Cherry.py и другие фреймворки. Я хочу разобраться пока в самом WSGI, как он работает и как им пользоваться.



Офлайн

#2 Май 24, 2011 16:31:01

pill
От:
Зарегистрирован: 2010-08-27
Сообщения: 223
Репутация: +  0  -
Профиль   Отправить e-mail  

Apache и mod_wsgi, как это работает?

http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide ?
а httpd.conf добавить:
WSGIScriptAlias /myapp /usr/local/www/wsgi-scripts/myapp.wsgi
| | |
константа url путь к скрипту

PS: Какие-то кавычки странные…



Отредактировано (Май 24, 2011 16:50:42)

Офлайн

#3 Май 24, 2011 16:51:51

hippi90
От:
Зарегистрирован: 2011-04-06
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Apache и mod_wsgi, как это работает?

pill
http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide ?
а httpd.conf добавить:
WSGIScriptAlias /myapp /usr/local/www/wsgi-scripts/myapp.wsgi
| | |
константа url путь к скрипту
Спасибо за ссылку, почитаю вечером. Я правильно понял, что доступ к скрипту потом будет через http://localhost/myapp ?



Офлайн

#4 Май 24, 2011 16:55:22

pill
От:
Зарегистрирован: 2010-08-27
Сообщения: 223
Репутация: +  0  -
Профиль   Отправить e-mail  

Apache и mod_wsgi, как это работает?

Да.



Офлайн

#5 Май 24, 2011 22:08:45

hippi90
От:
Зарегистрирован: 2011-04-06
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Apache и mod_wsgi, как это работает?

Спасибо, с этим разобрался. Еще вопрос, как из HTML-формы передать данные в скрипт? Например из такой:

<form method=POST action=???>
<input type=text name=text value="Default" size=40>
<input type=submit value="Отправить">
</form>
Подставить в action имя скрипта не прокатывает.



Офлайн

#6 Май 25, 2011 04:36:08

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Apache и mod_wsgi, как это работает?

> Подставить в action имя скрипта не прокатывает.
чем не прокатывает? скрипт вызывается?

Офлайн

#7 Май 25, 2011 09:45:52

hippi90
От:
Зарегистрирован: 2011-04-06
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Apache и mod_wsgi, как это работает?

o7412369815963
> Подставить в action имя скрипта не прокатывает.
чем не прокатывает? скрипт вызывается?
Браузер просто отображает исходный текст скрипта.



Офлайн

#8 Май 25, 2011 10:57:01

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Apache и mod_wsgi, как это работает?

значит wsgi не настроен.
вот рабочий пример apache+wsgi

Офлайн

#9 Май 25, 2011 23:42:48

hippi90
От:
Зарегистрирован: 2011-04-06
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Apache и mod_wsgi, как это работает?

o7412369815963
значит wsgi не настроен.
вот рабочий пример apache+wsgi
Вот конфиг из /etc/apache2/sites-available/default, вроде как в примере, может я чего не так сделал:
<VirtualHost *:80>

ServerName www.mytest.com
ServerAlias mytest.com
ServerAdmin webmaster@mytest.com

DocumentRoot /var/www/mytest.com

<Directory /var/www/mytest.com>
WSGIProcessGroup main
WSGIApplicationGroup %{GLOBAL}
Order allow,deny
Allow from all
</Directory>

WSGIDaemonProcess main user=www-data group=www-data processes=1 threads=5
WSGIScriptAlias /myapp /var/www/mytest.com/wsgi-scripts/myapp.wsgi

<Directory /var/www/mytest.com/wsgi-scripts>
WSGIProcessGroup main
WSGIApplicationGroup %{GLOBAL}
Order allow,deny
Allow from all
</Directory>

</VirtualHost>
index.html:
<html>
<head><title>mytest.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
<body><h1>The First Page</h1>
<form method=POST action=/wsgi-scripts/myapp.wsgi>
<input type=text name=text value="Default" size=40>
<input type=submit value="Отправить">
</form>
</body></html>



Офлайн

#10 Май 26, 2011 06:14:56

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Apache и mod_wsgi, как это работает?

у тебя скрипт настроен на url: /myapp

а отправляешь пост запрос на /wsgi-scripts/myapp.wsgi

поэтому он тебе и выдает исходник.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version