Настройка WSGI
Материал из DiPHOST.Ru wiki system
Schors (Обсуждение | вклад) |
Schors (Обсуждение | вклад) (→Настройка приложения) |
||
(11 промежуточных версий не показаны.) | |||
Строка 3: | Строка 3: | ||
<meta name="title" content="Настройка WSGI"></meta> | <meta name="title" content="Настройка WSGI"></meta> | ||
- | [[ | + | ====Добавление сайта==== |
+ | Для того чтобы запустить WSGI приложение, следует убедиться, что выбранный тариф поддерживает технологию WSGI. На данный момент в ознакомительном режиме WSGI возможно использовать на одном сайте по тарифу [http://diphost.ru/hosting/plans/?hl=PARMA PARMA] и в нормальном режиме на двух сайтах по тарифу [http://diphost.ru/hosting/plans/?hl=CALMA CALMA]. | ||
+ | |||
+ | При добавлении сайта в панели управления ([[SitesManagement|Управление сайтами]]) будет предложено выбрать типа сайта "классический сайт" или "WSGI-сайт". Такой же выбор есть в настройках каждого существующего сайта. Следует выбрать WSGI-сайт. Если лимит специализированных сайтов для тарифного плана не превышен - через несколько минут можно начать работу с WSGI. | ||
+ | {{warning|WSGI-сайт не поддерживает PHP и CGI. Невозможно использовать PHP, CGI и WSGI в рамках одного сайта.}} | ||
+ | |||
+ | ====Настройка приложения==== | ||
+ | У каждого сайта на сервере есть каталог вида: | ||
+ | : /home/{{hl|<ваш логин>}}/www/site{{hl|<номер сайта>}}/webapp/ | ||
+ | : Например: /home/pupkin/www/site1/webapp/ | ||
+ | В этом каталоге требуется создать файл именуемый webapp.wsgi. Именно он будет описывать Ваше WSGI-приложение. Это должна быть программа на языке программирования Python, содержащий как минимум функцию именуемую application, являющуюся приложением WSGI. Именно эту функцию будет пытаться вызвать наш сервер при запросах. Например: | ||
+ | <source lang="py"> | ||
+ | def my_wsgi_application(environ, start_response): | ||
+ | status = '200 OK' | ||
+ | output = 'Hello World!' | ||
+ | response_headers = [('Content-type', 'text/plain')] | ||
+ | start_response(status, response_headers) | ||
+ | return [output] | ||
+ | application = my_wsgi_application | ||
+ | </source> | ||
+ | Обращения к приложению должны происходить по URL '''''<nowiki>http://<один из доменов сайта>/webapp/*</nowiki>''''' Содержимое же корня сайта как и в обычных сайтах по прежнему расположено в каталоге ''/home/<ваш логин>/www/site<номер сайта>/public_html/'' на сервере. Если требуются другие пути - измените их при помощи Rewrite-правил в файле .htaccess ([http://httpd.apache.org/docs/2.2/rewrite/ документация на сайте веб-сервера apache]) Например, для того чтобы обращения к сайту от корня обрабатывались wsgi-приложением, положите в каталог ''/home/<ваш логин>/www/site<номер сайта>/public_html/'' файл .htaccess со следующим содержанием: | ||
+ | RewriteEngine On | ||
+ | RewriteRule ^(.*)$ /webapp/$1 [L,QSA] | ||
+ | {{info|Если Вы используете локальную установку (в свой домашний каталог НЕ уникальных библиотек (т.е. не разработанных Вами, а публично распространяемых), следует путь к ним добавлять не в конец системного массива как рекомендуют многие руководства:<br/> | ||
+ | '''sys.path.append('путь к библиотеке')'''<br/> | ||
+ | ,а в начало его:<br/> | ||
+ | '''sys.path.insert({{hl|0,}}'путь к библиотеке')'''<br/> | ||
+ | Это позволит избежать возможных проблем в том случае, если мы решим поддерживать ту или иную библиотеку штатным образом, но не из той ветки, которая используется вашим приложением.}} | ||
+ | |||
+ | ====Обновление приложение==== | ||
+ | Технологической особенностью нашего хостинга является то, что наш сервер удерживает операционный код приложения в памяти. Для автоматической перезагрузки кода требуется изменить дату модификации файла '''webapp.wsgi'''. Например, из shell такой вот командой: | ||
+ | |||
+ | <source lang="bash"> | ||
+ | [user@babylon] ~/www/site1/webapp$ touch webapp.wsgi | ||
+ | </source> | ||
+ | |||
+ | [[Category:WSGI]] |
Текущая версия на 18:29, 3 апреля 2010
Добавление сайта
Для того чтобы запустить WSGI приложение, следует убедиться, что выбранный тариф поддерживает технологию WSGI. На данный момент в ознакомительном режиме WSGI возможно использовать на одном сайте по тарифу PARMA и в нормальном режиме на двух сайтах по тарифу CALMA.
При добавлении сайта в панели управления (Управление сайтами) будет предложено выбрать типа сайта "классический сайт" или "WSGI-сайт". Такой же выбор есть в настройках каждого существующего сайта. Следует выбрать WSGI-сайт. Если лимит специализированных сайтов для тарифного плана не превышен - через несколько минут можно начать работу с WSGI.
ВНИМАНИЕ! WSGI-сайт не поддерживает PHP и CGI. Невозможно использовать PHP, CGI и WSGI в рамках одного сайта. |
Настройка приложения
У каждого сайта на сервере есть каталог вида:
- /home/<ваш логин>/www/site<номер сайта>/webapp/
- Например: /home/pupkin/www/site1/webapp/
В этом каталоге требуется создать файл именуемый webapp.wsgi. Именно он будет описывать Ваше WSGI-приложение. Это должна быть программа на языке программирования Python, содержащий как минимум функцию именуемую application, являющуюся приложением WSGI. Именно эту функцию будет пытаться вызвать наш сервер при запросах. Например:
Process '/usr/local/bin/highlight --fragment --style=jedit --syntax='py' --style-outfile='/home/dipwiki/tmp/highlight.css'' failed to start?
You need to specify a language like this: <source lang="html">...</source>
Supported languages for syntax highlighting:
(error loading support language list)Обращения к приложению должны происходить по URL http://<один из доменов сайта>/webapp/* Содержимое же корня сайта как и в обычных сайтах по прежнему расположено в каталоге /home/<ваш логин>/www/site<номер сайта>/public_html/ на сервере. Если требуются другие пути - измените их при помощи Rewrite-правил в файле .htaccess (документация на сайте веб-сервера apache) Например, для того чтобы обращения к сайту от корня обрабатывались wsgi-приложением, положите в каталог /home/<ваш логин>/www/site<номер сайта>/public_html/ файл .htaccess со следующим содержанием:
RewriteEngine On RewriteRule ^(.*)$ /webapp/$1 [L,QSA]
Обновление приложение
Технологической особенностью нашего хостинга является то, что наш сервер удерживает операционный код приложения в памяти. Для автоматической перезагрузки кода требуется изменить дату модификации файла webapp.wsgi. Например, из shell такой вот командой:
Process '/usr/local/bin/highlight --fragment --style=jedit --syntax='bash' --style-outfile='/home/dipwiki/tmp/highlight.css'' failed to start?
You need to specify a language like this: <source lang="html">...</source>
Supported languages for syntax highlighting:
(error loading support language list)