8246
Comment: (м)
|
8646
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
Используемый дистрибутив — Ubuntu 12.04, установка для Debian и других Debian-based дистрибутивов не должна сильно отличаться. Мы будем использовать виртуальное окружение [[http://pypi.python.org/pypi/virtualenv/|virtualenv]], которое позволяет устанавливать библиотеки в выбранный каталог, никак не затрагивая системные версии, не требует прав суперпользователя и при желании позволяет легко удалить установленное приложение без каких-либо последствий. | ## page was renamed from u/Stiletto/bnw/Установка_bnw_на_Linux === Установка BnW на Linux === [[../start|BnW]] — это сервис микроблоггинга, написанный на языке программирования Python. В данной статье мы рассмотрим его установку и настройку для Ubuntu 12.04, установка для Debian и других Debian-based дистрибутивов не должна сильно отличаться. Мы будем использовать виртуальное окружение [[http://pypi.python.org/pypi/virtualenv/|virtualenv]], которое позволяет устанавливать библиотеки в выбранный каталог, никак не затрагивая системные версии, не требует прав суперпользователя и при желании позволяет легко удалить установленное приложение без каких-либо последствий. |
Line 25: | Line 27: |
Line 68: | Line 69: |
||<#FF0000> TODO /!\ Дописать про остальные опции.|| | |
Line 87: | Line 89: |
* Чтобы сервис запускался при старте компьютера, запустите команду:<<BR>> | * Чтобы сервис запускался при старте компьютера, выполните команду:<<BR>> |
Line 89: | Line 91: |
* Чтобы убрать из автозагрузки:<<BR>> | * Чтобы отменить это действие:<<BR>> |
Установка BnW на Linux
BnW — это сервис микроблоггинга, написанный на языке программирования Python. В данной статье мы рассмотрим его установку и настройку для Ubuntu 12.04, установка для Debian и других Debian-based дистрибутивов не должна сильно отличаться. Мы будем использовать виртуальное окружение virtualenv, которое позволяет устанавливать библиотеки в выбранный каталог, никак не затрагивая системные версии, не требует прав суперпользователя и при желании позволяет легко удалить установленное приложение без каких-либо последствий.
Устанавливаем базовые зависимости
TODO Обговорить версии всех необходимых компонентов. |
% sudo apt-get install python-virtualenv git build-essential python-dev1
Создаём виртуальное окружение
Виртуальное окружение будет находиться в домашнем каталоге пользователя. Вы можете поместить его в другое место по желанию. Например, на сервере уместнее будет использовать каталог /srv/.
% cd $HOME
% virtualenv bnw
% cd bnw; source bin/activate
Устанавливаем библиотеки, получаем код
% mkdir src; cd src
% pip install twisted tornado PyRSS2Gen
% pip install -e git+https://github.com/fiorix/mongo-async-python-driver.git#egg=txmongo
% git clone https://github.com/stiletto/bnw.git
% cd bnw; git clone https://github.com/stiletto/linkshit.git
Шаблон конфига находится в файле config.py.example, копируем его:
% cp config.py.example config.py
Устанавливаем и настраиваем MongoDB
% sudo apt-get install mongodb-server
И, в принципе, всё, но желательно ещё проделать следующее:
Установите в файле /etc/mongodb.conf опции bind_ip = 127.0.0.1 и nohttpinterface = true
Перезапускаем mongo:
% sudo /etc/init.d/mongodb restartУдаляем тестовые базы:
% mongo test --eval 'db.dropDatabase()'
% mongo local --eval 'db.dropDatabase()'
Устанавливаем и настраиваем XMPP-сервер
Мы рассмотрим prosody, но вы также можете использовать ejabberd или jabberd2, их настройка во многом аналогична. (Вообще, подойдёт любой сервер, поддерживающий XEP-0114: Jabber Component Protocol, но эти три сервера наиболее популярны и просты в использовании.)
Устанавливаем prosody:
% sudo apt-get install prosody
Возможны два варианта настройки: локальный сервис, который доступен только вам (например, если нужно протестировать какие-то фичи), или сервис общего пользования.
Локальный вариант
Установите в файле /etc/prosody/prosody.cfg.lua в глобальной секции опции:
c2s_interface = "127.0.0.1"
s2s_interface = "127.0.0.1"
legacy_ssl_interface = "127.0.0.1"
(Перед строчкой ----------- Virtual hosts -----------)Отредактируйте файл виртуального хоста /etc/prosody/conf.d/localhost.cfg.lua и добавьте в конец следующие строчки:
Component "bnw.localhost"
component_secret = "пароль для авторизации компонента"
(Вместо bnw вы можете использовать любое имя, главное окончание .localhost)- Перезапускаем prosody:
% sudo /etc/init.d/prosody restart
Сервис общего пользования
TODO |
Устанавливаем и настраиваем HTTP-сервер
TODO |
Настраиваем сервис
Отредактируйте файл конфигурации сервиса config.py, который должен находиться в $HOME/bnw/src/bnw/, если вы точно соблюдали инструкции:
srvc_port в случае prosody надо установить в 5347
srvc_name в случае локального варианта должен быть bnw.localhost (или то имя, которое вы настроили)
srvc_pwd должен совпадать со значением component_secret
TODO Дописать про остальные опции. |
Запускаем сервис
Перейдите в каталог сервиса $HOME/bnw/src/bnw/ и запустите его с помощью:
% twistd -ny instance.tac
Это подходит для тестовых запусков и отладки, но если вам нужно запускать сервис с помощью стандартного механизма стартовых скриптов, неоходимо сделать следующее:
Скопируйте шаблон скрипта в системный каталог:
% sudo cp bnw.init.d.sh /etc/init.d/bnwОтредактируйте переменную BNW_VENV_PATH по необходимости. Это путь до виртуального окружения virtualenv, в нашем случае $HOME/bnw.
Также по желанию отредактируйте переменные USER и GROUP — от этих пользователя и группы будет запускаться сервис. Системный пользователь и одноимённая группа bnw создаются с помощью команды:
% sudo adduser --system --no-create-home --group bnwЛог сервиса будет располагаться по адресу /tmp/bnw.log
Теперь вы можете использовать команды:
% sudo /etc/init.d/bnw start
% sudo /etc/init.d/bnw stop
% sudo /etc/init.d/bnw restart
для запуска, остановки и перезагрузки сервиса соответственно.
Чтобы сервис запускался при старте компьютера, выполните команду:
% sudo update-rc.d bnw defaultsЧтобы отменить это действие:
% sudo update-rc.d -f bnw remove
Прочее
Обратите внимание, что для работы сервиса необходимы как минимум запущенные XMPP и MongoDB сервера. По умолчанию, при установке они добавляются в автозагрузку, но если по какой-то причине один из серверов не загружен, запустите его с помощью механизма стартовых скриптов (% sudo /etc/init.d/server start).
build-essential и python-dev нужны для компиляция сишного bson-модуля mongo-библиотеки для ускорения её работы. (1)