Как стать автором
Обновить

Комментарии 10

Прошу прощения за резкость, но только мне показалось что статья ниочем?
Может быть, но когда я это делал по написанным мануалам ничего не работало и приходилось очень долго читать логи апача и гуглить, чтобы понять что на этот раз не так. Я просто хотел дать инструкцию для других, что бы они не тратили своё время там, где его уже потратил я.
Вы молодец, что разобрались и запустили, но подобных статей — валом и их всё равно никто не читает. Я так говорю, потому что в каждой статье в комметариях талдычать про virtualenv, про pip, но всё равно, каждый раз, «с помощью configure && make && make install любой дистрибутив превращается в слакварь».
Простите за безграмотность, но сейчас действительно нет времени гуглить, как с помощью virtualenv и pip можно установить mod_wsgi из исходников? А нам это нужно (и об этом в статье написано), так как тот, который есть в репозитории не поддерживает python 3.2+ и гугление подсказывает (это не единственная ссылка, из за которой я принялся за компиляцию), что только компиляция из исходников может нам помочь.
Всё, что я нашёл в гугле, это как с помощью virtualenv и pip поставить джангу, но пост был не об этом.
Я не большой спец в дебиане, но логика подсказывает, что если вам нужен bleeding edge, то наверное не стоит связываться со stable дистрибутивами. Потому что, например, в убунте 13.10 uwsgi-plugin вроде бы
поддерживает python 3.3
pavel@laptop ~ $ apt-cache depends uwsgi-plugin-python3 
uwsgi-plugin-python3
  Depends: libc6
  Depends: libpython3.3
  Depends: uwsgi-core
  Suggests: python3-uwsgidecorators
  Conflicts: uwsgi-plugin-python3:i386
pavel@laptop ~ $ apt-cache policy uwsgi-plugin-python3
uwsgi-plugin-python3:
  Installed: (none)
  Candidate: 1.2.3+dfsg-5build3
  Version table:
     1.2.3+dfsg-5build3 0
        500 http://archive.ubuntu.com/ubuntu/ raring/universe amd64 Packages


Соответственно, можно попробовать поставить этот пакет из raring репозитория.
На всякий случай, очередной how-to «Как поставить в убунте пакет из другого репозитария».
  1. У нас есть Ubuntu LTS (на момент написания это 12.04 precise) и мы хотим поставить пару пакетов из современного репозитария (на момент написания это saucy). В нашем случае, в репозитарии есть uwsgi-core версии 1.0, мы хотим минимум 1.6.
  2. Добавляем репозитарий
    /etc/apt/sources.list.d/saucy.list
    deb http://ru.archive.ubuntu.com/ubuntu saucy main universe
  3. Понижаем его приоритет до минимума
    /etc/apt/preferences.d/saucy_pin
    Package: *
    Pin: release n=saucy
    Pin-Priority: -10
  4. Обновляем кэш репозиториев
    root@host:/tmp# aptitude update
  5. Устанавливаем uwsgi-сервер и плагин питона
    Скрытый текст
    root@host:/tmp# aptitude install -t saucy uwsgi uwsgi-plugin-python
    The following NEW packages will be installed:
      sqlite3{a} uwsgi uwsgi-core{a} uwsgi-plugin-python 
    0 packages upgraded, 4 newly installed, 0 to remove and 328 not upgraded.
    Need to get 0 B/557 kB of archives. After unpacking 1 750 kB will be used.
    Do you want to continue? [Y/n/?] 
    Selecting previously unselected package sqlite3.
    (Reading database ... 25902 files and directories currently installed.)
    Unpacking sqlite3 (from .../sqlite3_3.7.17-1ubuntu1_i386.deb) ...
    Selecting previously unselected package uwsgi-core.
    Unpacking uwsgi-core (from .../uwsgi-core_1.9.13-4build1_i386.deb) ...
    Selecting previously unselected package uwsgi.
    Unpacking uwsgi (from .../uwsgi_1.9.13-4build1_i386.deb) ...
    Selecting previously unselected package uwsgi-plugin-python.
    Unpacking uwsgi-plugin-python (from .../uwsgi-plugin-python_1.9.13-4build1_i386.deb) ...
    Processing triggers for man-db ...
    Processing triggers for ureadahead ...
    Setting up sqlite3 (3.7.17-1ubuntu1) ...
    Setting up uwsgi-core (1.9.13-4build1) ...
    Setting up uwsgi (1.9.13-4build1) ...
     * Starting app server(s) uwsgi                                             [ OK ] 
    Setting up uwsgi-plugin-python (1.9.13-4build1) ...
  6. Проверяем, что получилось
    root@host:/tmp# uwsgi --version
    1.9.13-debian
Крайне неудобный вариант развертывания для «потестировать». Ну ладно хоть python не из исходников собирали.

Лучше ведь на nginx + uwsgi/gunicorn развернуть их хотя бы руками перезагружать при каждом чихе не придется.

А еще пакеты в python принято устанавливать через pip и желательно в virtualenv
Крайне неудобный вариант развертывания для «потестировать». Ну ладно хоть python не из исходников собирали.
Лучше ведь на nginx + uwsgi/gunicorn развернуть их хотя бы руками перезагружать при каждом чихе не придется.

У меня уже был сервер на Apache с PHP и когда я начинал всё это дело я и представить не мог на сколько это всё затянется, а потом уже хотелось довести дело до конца :)
Сервер с apache и php никак не мешает описанной мной (наиболее часто используемой) схеме. Более того nginx часто ставят даже перед апачом в качестве кеширующего и раздающего статику — он это делает эффективнее апапча.
Ставить через setup.py это моветон.
Ставить питоновские пакеты в «системный» питон — еще хуже.

Для этого есть virtualenv и pip.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории