Настройка WSGI
Материал из DiPHOST.Ru wiki system
Schors (Обсуждение | вклад) |
Schors (Обсуждение | вклад) (→Настройка приложения) |
||
Строка 26: | Строка 26: | ||
RewriteEngine On | RewriteEngine On | ||
RewriteRule ^(.*)$ /webapp/$1 [L,QSA] | RewriteRule ^(.*)$ /webapp/$1 [L,QSA] | ||
- | {{info|Если Вы используете локальную установку (в свой домашний каталог НЕ уникальных библиотек (т.е. не разработанных Вами, а публично распространяемых), следует путь к ним добавлять не в конец системного массива как рекомендуют многие руководства: | + | {{info|Если Вы используете локальную установку (в свой домашний каталог НЕ уникальных библиотек (т.е. не разработанных Вами, а публично распространяемых), следует путь к ним добавлять не в конец системного массива как рекомендуют многие руководства:<br/> |
- | '''sys.path.append('путь к библиотеке')''' | + | '''sys.path.append('путь к библиотеке')'''<br/> |
- | ,а в начало его: | + | ,а в начало его:<br/> |
- | '''sys.path.insert({{hl|0,}}'путь к библиотеке')''' | + | '''sys.path.insert({{hl|0,}}'путь к библиотеке')'''<br/> |
Это позволит избежать возможных проблем в том случае, если мы решим поддерживать ту или иную библиотеку штатным образом, но не из той ветки, которая используется вашим приложением.}} | Это позволит избежать возможных проблем в том случае, если мы решим поддерживать ту или иную библиотеку штатным образом, но не из той ветки, которая используется вашим приложением.}} | ||
Версия 18:23, 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='sh' --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)