Найти - Пользователи
Полная версия: Apache и mod_wsgi, как это работает?
Начало » Web » Apache и mod_wsgi, как это работает?
1 2
hippi90
Есть сервер 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, как он работает и как им пользоваться.
pill
http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide ?
а httpd.conf добавить:
WSGIScriptAlias /myapp /usr/local/www/wsgi-scripts/myapp.wsgi
| | |
константа url путь к скрипту

PS: Какие-то кавычки странные…
hippi90
pill
http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide ?
а httpd.conf добавить:
WSGIScriptAlias /myapp /usr/local/www/wsgi-scripts/myapp.wsgi
| | |
константа url путь к скрипту
Спасибо за ссылку, почитаю вечером. Я правильно понял, что доступ к скрипту потом будет через http://localhost/myapp ?
pill
Да.
hippi90
Спасибо, с этим разобрался. Еще вопрос, как из HTML-формы передать данные в скрипт? Например из такой:
<form method=POST action=???>
<input type=text name=text value="Default" size=40>
<input type=submit value="Отправить">
</form>
Подставить в action имя скрипта не прокатывает.
o7412369815963
> Подставить в action имя скрипта не прокатывает.
чем не прокатывает? скрипт вызывается?
hippi90
o7412369815963
> Подставить в action имя скрипта не прокатывает.
чем не прокатывает? скрипт вызывается?
Браузер просто отображает исходный текст скрипта.
o7412369815963
значит wsgi не настроен.
вот рабочий пример apache+wsgi
hippi90
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>
o7412369815963
у тебя скрипт настроен на url: /myapp

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

поэтому он тебе и выдает исходник.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB