LINUX.ORG.RU

Bottle + Apache = Deploy?

 ,


0

1

Как задеплоить на Debian?

Поставил libapache2-mod-wsgi-py3. Написал собственно сайт + wsgi-скрипт и положил в www. Написал конфиг апача. Сколько не бился, показывает просто список файлов, в логах ошибок нет. Следовал вот этому http://bottlepy.org/docs/dev/deployment.html и похожим гайдам.

Структура следующая.

blog.py - пачка @route + пара функций, run убран.

blog.wsgi:

import sys, os, bottle

sys.path = ['/var/www/blog/'] + sys.path
os.chdir(os.path.dirname(__file__))

import blog # This loads your application

application = bottle.default_app()

Всё это добро лежит в /var/www/blog.

Конфиг апача. Емнип ничего в нем не трогал, только в sites-avaliable добавил с симлинком в sites-enabled файл blog:

<VirtualHost *>
        ServerName myveryownserver.com/blog

        WSGIDaemonProcess blog user=www-data group=www-data processes=1 threads=5
        WSGIScriptAlias / /var/www/blog/blog.wsgi

        <Directory /var/www/blog>
                WSGIProcessGroup blog
                WSGIApplicationGroup %{GLOBAL}
                Order deny,allow
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel debug

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

error.log апача:

[Fri Mar 07 16:02:58 2014] [warn] mod_wsgi: Compiled for Python/3.2.2rc1.
[Fri Mar 07 16:02:58 2014] [warn] mod_wsgi: Runtime using Python/3.2.3.
[Fri Mar 07 16:02:58 2014] [notice] Apache/2.2.22 (Debian) mod_wsgi/3.3 Python/3.2.3 configured -- resuming normal operations
[Fri Mar 07 16:02:58 2014] [info] mod_wsgi (pid=12474): Attach interpreter ''.

Хм, если убрать симлинк default из sites-enabled, то скрипт запускается, но:

[Fri Mar 07 16:27:44 2014] [info] mod_wsgi (pid=12644, process='blog', application=''): Loading WSGI script '/var/www/blog/blog.wsgi'.
[Fri Mar 07 16:27:44 2014] [error] mod_wsgi (pid=12644): Target WSGI script '/var/www/blog/blog.wsgi' cannot be loaded as Python module.
[Fri Mar 07 16:27:44 2014] [error] mod_wsgi (pid=12644): Exception occurred processing WSGI script '/var/www/blog/blog.wsgi'.
[Fri Mar 07 16:27:44 2014] [error] Traceback (most recent call last):
[Fri Mar 07 16:27:44 2014] [error]   File "/var/www/blog/blog.wsgi", line 1, in <module>
[Fri Mar 07 16:27:44 2014] [error]     import sys, os, bottle
[Fri Mar 07 16:27:44 2014] [error] ImportError: No module named bottle

Хотя модуль лежит рядом.

Gregon ()

всю жизнь использовал proxy_pass и ничуть не парился по этому поводу

feofil ()
Ответ на: комментарий от Gregon

Смотри что происходит. Ты сначала импортируешь sys, os, bottle - он и валится, потому что по стандартным путям боттла нет. А потом ты уже добавляешь в path папку с боттлом.

import sys, os

sys.path = ['/var/www/blog/'] + sys.path
os.chdir(os.path.dirname(__file__))

import blog, bottle # This loads your application

application = bottle.default_app()

Попробуй так.

Kesha_Molchanov ()
Ответ на: комментарий от Kesha_Molchanov

Спасибо. Решение проблемы практически приснилось. Поправил — заработало. Захожу на форум — тоже самое решение. Спасибо))

Gregon ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.