Mikbill stat Личный кабинет HTML5

Mikbill - личный кабинет

В данный момент Mikbill полностью перешел на новый HTML5 кабинет с старого написанного на Flash. 

Плюсы: 
- открытый исходный код. Можно дополнять и исправлять функционал.

- широкие настройки, доступные прямо из админки биллинга.




- переопределение меню или отдельного словосочетания по своему вкусу (кастомизация).

- возможность настройки авторизации по IP (Автовход в ЛК)

- настройка локализации кабинета. Из коробки русский, украинский, английский языки. Возможность самим сделать перевод на любой язык.
Автоопределение языка - автоопределение локали на основе данных браузера
Меню выбора языка - внизу страницы ЛК отображаются меню выбора языкаЯзык по умолчанию - язык который будет по умолчанию в ЛК (по умолчанию значение ru_RU)
- переопределение файлов шаблона, CSS стилей.

- функция восстановления пароля по СМС

- функция СМС регистрации абонента в биллинге средствами hotspot 

Из минусов можно упомянуть некоторый незначительный функционал, не перешедший из старого кабинета в следствии его малого спроса. Нет поддержки php 5.2

Настройка домена, IP, порта личного кабинета

Все настройки доступа в файле конфигурации /etc/nginx/conf.d/stat.conf

Пример файла:

server {
    listen *:80;
    server_name stat.ispnet.demo;
    rewrite ^  https://$server_name/$1 permanent;
}

server {
    listen *:443;
    server_name stat.ispnet.demo;

    ssl                     on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;
    ssl_certificate         /etc/nginx/conf.d/ssl/ca.crt;
    ssl_certificate_key     /etc/nginx/conf.d/ssl/ca.key;

    access_log /var/log/nginx/stat_access.log;
    error_log /var/log/nginx/stat_error.log;
    root /var/www/mikbill/stat;

    index main.php;
    location / {
        root   /var/www/mikbill/stat;
        index  main.php;
        try_files $uri $uri/ /index.php?$args;
    }
    
    location ~* ^(/app/|/sys/).*\.(php|sh|xml|log|txt)$ {deny all;}

    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass  unix:/var/run/php-worker-socket;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/mikbill/stat/$fastcgi_script_name;
    }
}

Меняем stat.ispnet.demo на свой домен или IP. Можно добавлять домены/IP через пробел.
Внимание! При заходе в админку и в кабинет по IP с одного браузера будет сообщать ошибку "Role 187" или подобную. Это не ошибка админки/кабинета, это в браузере кеш так себя ведет.  Так что совет, делать домены, хотя бы локальные.
listen *:80; - настройка порта. Следует учесть, что настройка ssl делается только для 443 порта
 ssl                     on;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 ssl_ciphers HIGH:!aNULL:!MD5;
 ssl_prefer_server_ciphers   on;
 ssl_certificate         /etc/nginx/conf.d/ssl/ca.crt;
 ssl_certificate_key     /etc/nginx/conf.d/ssl/ca.key;
Для других портов можно просто выключить ssl
 ssl                     off;

Если хотим сделать кабинет доступным по 80 порту без редиректа меняем секцию
server {
    listen *:80;
    server_name stat.ispnet.demo;
    rewrite ^  https://$server_name/$1 permanent;
}
На
server {
    listen *:80;
    server_name stat.ispnet.demo;

    access_log /var/log/nginx/stat_access.log;
    error_log /var/log/nginx/stat_error.log;
    root /var/www/mikbill/stat;

    index main.php;
    location / {
        root   /var/www/mikbill/stat;
        index  main.php;
        try_files $uri $uri/ /index.php?$args;
    }
    
    location ~* ^(/app/|/sys/).*\.(php|sh|xml|log|txt)$ {deny all;}

    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass  unix:/var/run/php-worker-socket;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/mikbill/stat/$fastcgi_script_name;
    }
}

После всех изменений не забываем перезагрузить конфиг в Nginx
  • service nginx reload
Или перезапустить сервис Nginx (При перезапуске в случае ошибок Nginx не стартанет)
  • service nginx restart
Не забываем прописать домен в /etc/hosts, иначе при заходе в личный кабинет будет выбивать ошибку "Ошибка сетевого транспорта. Попробуйте зайти позже..."
  • mcedit /etc/hosts
Добавляем в конец строчку (меняем домен на свой)
127.0.0.1 stat.ispnet.demo
 И проверяем

  • ping stat.ispnet.demo


Переход на новый кабинет со старого:

HTTP-сервер Apache

Редактируем файл /var/www/mikbill/stat/.htaccess
  • mcedit /var/www/mikbill/stat/.htaccess
Находим предпоследнюю строчку
DirectoryIndex index.php
Меняем на
DirectoryIndex main.php
Новый кабинет станет доступным сразу, без перезапуска httpd.

HTTP-сервер Nginx

Редактируем файл конфигурации Nginx /etc/nginx/conf.d/stat.conf

  • mcedit /etc/nginx/conf.d/stat.conf

До изменения:
index index.php;
    location / {
        root   /var/www/mikbill/stat;
        index  index.php;
        try_files $uri $uri/ /index.php?$args;
    }

После изменений:
index main.php;
    location / {
        root   /var/www/mikbill/stat;
        index  main.php;
        try_files $uri $uri/ /index.php?$args;
    }
Сохраняем, перезапускаем Nginx.

  • service nginx restart


Настройка авторизации по IP абонентов (Автовход)
Данный функционал предусматривает вход в личный кабинет минуя форму ввода логина и пароля, посредством механизма сравнивания IP адреса абонента (с которого поступил запрос), с IP адресами которые есть в карточках абонентов.
Главным условием данного функционала является чтобы сервер биллинга видел абонентов по его индивидуальному IP, иначе кабинет не сможет его идентифицировать.

Проверить это можно командой с компьютера абонента:
http://stat.my/main.php?action=getip
Если возвращает внешний IP - правим NAT на NAS, так, чтобы из правила NAT исключался dst IP кабинета.

Настройка:

  • mcedit /var/www/mikbill/stat/app/etc/config.xml
Установить следующие значения:
<doauthbyip>1</doauthbyip>
<doauthbyframedip>1</doauthbyframedip>
<doauthbyonlineip>1</doauthbyonlineip>

Описание настроек:
doauthbyip - значение 1 включает "автовход" абонента под зафиксированным в билинге его "локальным ip"
doauthbyframedip - значение 1 включает "автовход" абонента под зафиксированным в биллинге его "Выдаваемом ip" 
doauthbyonlineip - значение 1 включает "автовход" абонента под "ip" который числиться в ONLINE 
doauthonlypass - значение 1 включает вход только по паролю

Также проверить конфиг nginx:

  • mcedit /etc/nginx/nginx.conf

ignore_invalid_headers        off;
в секции http {

Частая ошибка при заходе в личный кабинет
Ошибка сетевого транспорта. Попробуйте зайти позже...

1. Проверить есть ли пинг с сервера на stat.isp.demo (stat.isp.demo заменить на вашу ссылку)

2. Если пинга нет то прописать в /etc/hosts:
127.0.0.1 stat.isp.demo
(stat.isp.demo заменить на вашу ссылку)

И тут еще важно, что ip должен быть с конфига nginx кабинета

3. Проверить пароль в кабинете к MySQL
файл /var/www/mikbill/stat/app/etc/config.xml 
<password>PASSWORD</password>

Комментарии

Популярные сообщения из этого блога

Accel-ppp команды

mikbill расшифровка завершений сессий

Zabbix agent установка и настройка