Настройка WSGI
Материал из DiPHOST.Ru wiki system
Schors (Обсуждение | вклад) |
Schors (Обсуждение | вклад) (→Настройка приложения) |
||
(9 промежуточных версий не показаны.) | |||
Строка 6: | Строка 6: | ||
Для того чтобы запустить WSGI приложение, следует убедиться, что выбранный тариф поддерживает технологию WSGI. На данный момент в ознакомительном режиме WSGI возможно использовать на одном сайте по тарифу [http://diphost.ru/hosting/plans/?hl=PARMA PARMA] и в нормальном режиме на двух сайтах по тарифу [http://diphost.ru/hosting/plans/?hl=CALMA CALMA]. | Для того чтобы запустить WSGI приложение, следует убедиться, что выбранный тариф поддерживает технологию WSGI. На данный момент в ознакомительном режиме WSGI возможно использовать на одном сайте по тарифу [http://diphost.ru/hosting/plans/?hl=PARMA PARMA] и в нормальном режиме на двух сайтах по тарифу [http://diphost.ru/hosting/plans/?hl=CALMA CALMA]. | ||
- | При добавлении сайта в панели управления ([[SitesManagement|Управление сайтами]]) будет предложено выбрать типа сайта "классический сайт" или "WSGI-сайт". Такой же выбор есть в настройках каждого существующего сайта. Следует выбрать WSGI-сайт. Если лимит специализированных сайтов для тарифного плана не превышен - через | + | При добавлении сайта в панели управления ([[SitesManagement|Управление сайтами]]) будет предложено выбрать типа сайта "классический сайт" или "WSGI-сайт". Такой же выбор есть в настройках каждого существующего сайта. Следует выбрать WSGI-сайт. Если лимит специализированных сайтов для тарифного плана не превышен - через несколько минут можно начать работу с WSGI. |
{{warning|WSGI-сайт не поддерживает PHP и CGI. Невозможно использовать PHP, CGI и WSGI в рамках одного сайта.}} | {{warning|WSGI-сайт не поддерживает PHP и CGI. Невозможно использовать PHP, CGI и WSGI в рамках одного сайта.}} | ||
====Настройка приложения==== | ====Настройка приложения==== | ||
У каждого сайта на сервере есть каталог вида: | У каждого сайта на сервере есть каталог вида: | ||
- | /home/<ваш логин>/www/site<номер сайта>/webapp/ | + | : /home/{{hl|<ваш логин>}}/www/site{{hl|<номер сайта>}}/webapp/ |
- | Например: /home/pupkin/www/site1/webapp/ | + | : Например: /home/pupkin/www/site1/webapp/ |
В этом каталоге требуется создать файл именуемый webapp.wsgi. Именно он будет описывать Ваше WSGI-приложение. Это должна быть программа на языке программирования Python, содержащий как минимум функцию именуемую application, являющуюся приложением WSGI. Именно эту функцию будет пытаться вызвать наш сервер при запросах. Например: | В этом каталоге требуется создать файл именуемый webapp.wsgi. Именно он будет описывать Ваше WSGI-приложение. Это должна быть программа на языке программирования Python, содержащий как минимум функцию именуемую application, являющуюся приложением WSGI. Именно эту функцию будет пытаться вызвать наш сервер при запросах. Например: | ||
- | + | <source lang="py"> | |
def my_wsgi_application(environ, start_response): | def my_wsgi_application(environ, start_response): | ||
status = '200 OK' | status = '200 OK' | ||
Строка 22: | Строка 22: | ||
return [output] | return [output] | ||
application = my_wsgi_application | 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 такой вот командой: | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | Обновление приложение | + | |
- | + | ||
- | Технологической особенностью нашего хостинга является то, что наш сервер удерживает операционный код приложения в памяти. Для автоматической перезагрузки кода требуется изменить дату модификации файла webapp.wsgi. Например, из shell такой вот командой: | + | |
+ | <source lang="bash"> | ||
[user@babylon] ~/www/site1/webapp$ touch webapp.wsgi | [user@babylon] ~/www/site1/webapp$ touch webapp.wsgi | ||
- | + | </source> | |
[[Category:WSGI]] | [[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)