Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
abills:docs:manual:sender:browser [2017/06/29 12:30] anton [Возможные проблемы] |
abills:docs:manual:sender:browser [2017/07/19 12:53] (текущий) anton [Abills::Sender::Browser API] |
||
---|---|---|---|
Строка 4: | Строка 4: | ||
Сервер websoket_backend реализован асинхронно на AnyEvent. | Сервер websoket_backend реализован асинхронно на AnyEvent. | ||
- | ==== Установка сервера WebSocket ==== | + | [[abills:docs:manual:websocket_backend|Установка сервера WebSocket]] \\ |
- | Установить perl модули: | + | |
- | * AnyEvent::Socket | + | |
- | * AnyEvent::Handle | + | |
- | * Protocol::WebSocket | + | |
- | + | ||
- | Установить и включить модули апача: | + | |
- | * mod_proxy | + | |
- | * mod_proxy_wstunnel | + | |
- | + | ||
- | Прописать в конфигурацию apache2 ''abills_httpd'' в секцию VirtualHost биллинга | + | |
- | <code> | + | |
- | ProxyPass "/admin/wss/" "ws://127.0.0.1:19443/wss/admin/" retry=1 | + | |
- | </code> | + | |
- | + | ||
- | Установить и включить сервер вебсокетов | + | |
- | ln -s /usr/abills/misc/websocket_backend.pl /usr/abills/libexec/websocket_backend.pl | + | |
- | chmod +x /usr/abills/libexec/websocket_backend.pl | + | |
- | iptables -I INPUT 1 -p tcp --dport 19443 -j ACCEPT | + | |
- | + | ||
- | **Включать при загрузке** | + | |
- | + | ||
- | === FreeBSD === | + | |
- | # fetch -o /etc/rc.d/abills_websocket http://abills.net.ua/misc/abills_websocket_rc.d | + | |
- | # chmod +x /etc/rc.d/abills_websocket | + | |
- | + | ||
- | === Debian/Ubuntu/CentOS === | + | |
- | **/etc/systemd/system/abills-backend.service** | + | |
- | <code> | + | |
- | [Unit] | + | |
- | Description=ABillS Websocket Server | + | |
- | After=network.target | + | |
- | After=mysql.service | + | |
- | Requires=mysql.service | + | |
- | + | ||
- | [Service] | + | |
- | Type=forking | + | |
- | + | ||
- | PIDFile=/usr/abills/var/log/websocket_backend.pid | + | |
- | + | ||
- | ExecStartPre=/bin/chown -R nobody /usr/abills/var/ | + | |
- | ExecStart=/usr/abills/libexec/websocket_backend.pl -d | + | |
- | ExecReload=/usr/abills/libexec/websocket_backend.pl stop | + | |
- | + | ||
- | [Install] | + | |
- | WantedBy=multi-user.target | + | |
- | </code> | + | |
- | Включить службу | + | |
- | <code> | + | |
- | systemctl enable abills-backend.service | + | |
- | </code> | + | |
- | + | ||
- | ====Возможные проблемы==== | + | |
- | **Не установлен systemd**\\ | + | |
- | Решения: | + | |
- | * установить ''systemd'' | + | |
- | * Использовать ''rc.d'' скрипт | + | |
- | + | ||
- | **Ошибки с mysql.service**\\ | + | |
- | Если в системе есть ''systemd'', а вместо **mysql**, установлена **mariadb**, служба может называться **mariadb.service**, переименуйте зависимую службу.\\ | + | |
- | Если система не поддерживает запуск mysql через systemd, используйте init.d скрипт. | + | |
- | \\ | + | |
** Конфигурация ** | ** Конфигурация ** | ||
Строка 101: | Строка 40: | ||
</code> | </code> | ||
- | Пример запуска внешней команды с уведомлением | + | ==== Запуск внешней команды с уведомлением ==== |
<code> | <code> | ||
use Abills::Sender::Browser; | use Abills::Sender::Browser; | ||
Строка 110: | Строка 49: | ||
TYPE => 'COMMAND', | TYPE => 'COMMAND', | ||
AID => $admin->{AID}, # Кому придёт уведомление | AID => $admin->{AID}, # Кому придёт уведомление | ||
- | PROGRAM => '/usr/bin/ping', # Имя програмы | + | PROGRAM => '/usr/bin/ping', # Имя программы |
- | PROGRAM_ARGS => [ '-c 3', '-q', '192.168.1.1' ], # Масив аргументов для програмы | + | PROGRAM_ARGS => [ '-c 3', '-q', '192.168.1.1' ], # Массив аргументов для программы |
ARGS => { # Аргументы для Abills::Base::cmd | ARGS => { # Аргументы для Abills::Base::cmd | ||
timeout => 5 | timeout => 5 |