Запустить несколько версий личного кабинета на одном сервере

Один модуль lbweb-client может поддерживать несколько версий личного кабинета. У каждой из этих версий будут свои настройки — например, интеграции с разными платёжными системами.

Пример. Вы оказываете услуги телефонии и интернета от лица разных операторов: «SuperPhone» и «SuperNet». Создайте две версии личного кабинета и настройте их с учётом специфики операторов. Абоненты «SuperPhone» смогут посмотреть статистику по своим учётным записям, а клиенты «SuperNet» — изменить MAC-адрес.

Для создания нескольких версий личного кабинета выполните четыре шага.

  1. Установка lbweb-client
  2. Настройка сервера
  3. Настройка конфигурационных файлов
  4. Сериализация

Установка lbweb-client

Установите lbweb-client на веб-сервер. Подробнее об этом читайте в инструкции по установке для вашей операционной системы.

Мы рекомендуем устанавливать модули lbweb-client и LBcore на один сервер. Если вы хотите установить модуль lbweb-client на другой сервер, воспользуйтесь инструкцией.

Настройка сервера

  1. Для всех версий личного кабинета нужно настроить конфигурацию Apache. Пример конфигурации можно взять из файла lbweb-client.apache2.sample. Скопируйте пример для каждой версии:

    cp /etc/lanbilling/phpclient/apache2/lbweb-client.apache2.sample /etc/apache2/sites-available/client1.conf
    cp /etc/lanbilling/phpclient/apache2/lbweb-client.apache2.sample /etc/apache2/sites-available/client2.conf
    

    ``

  2. В параметрах VirtualHost задайте директории для временных файлов с помощью директивы SetEnv.

    Для client1:

    SetEnv RUNTIME_PATH /var/lib/lanbilling/phpclient/client1
    

    ``

    Для client2:

    SetEnv RUNTIME_PATH /var/lib/lanbilling/phpclient/client2
    

    ``

  3. Отредактируйте секцию, описывающую директорию assets.

    Для client1:

    Alias /assets/ /var/lib/lanbilling/phpclient/client1/assets/
    <Directory /var/lib/lanbilling/phpclient/client1/assets>
    	Options FollowSymLinks
    	AllowOverride None
    	<IfModule !mod_authz_core.c>
    		Order allow,deny
    		allow from all
    	</IfModule>
    	<IfModule mod_authz_core.c>
    		Require all granted
    	</IfModule>
    </Directory>
    

    ``

    Для client2:

    Alias /assets/ /var/lib/lanbilling/phpclient/client2/assets/
    <Directory /var/lib/lanbilling/phpclient/client2/assets>
    	Options FollowSymLinks
    	AllowOverride None
    	<IfModule !mod_authz_core.c>
    		Order allow,deny
    		allow from all
    	</IfModule>
    	<IfModule mod_authz_core.c>
    		Require all granted
    	</IfModule>
    </Directory>
    

    ``

Настройка конфигурационных файлов

  1. Создайте директории с файлами конфигурации для каждой версии личного кабинета:

    cp -R /etc/lanbilling/phpclient/client /etc/lanbilling/phpclient/client1
    cp -R /etc/lanbilling/phpclient/client /etc/lanbilling/phpclient/client2
    

    ``

  2. Задайте параметры в конфигурационных файлах каждой из версий. Например, в одной скройте раздел «Телефония», а в другой — «Интернет» и «Телевидение». Чтобы разделить личные кабинеты по операторам, используйте параметр oper_id в файле main.ini.

    Взаимодействие с разными процессами LBcore
  3. Также вы можете настроить тему — внешний вид личного кабинета.

Сериализация

  1. Создайте папки для сериализаций:

    mkdir -p /var/lib/lanbilling/phpclient/client1/assets
    mkdir -p /var/lib/lanbilling/phpclient/client2/assets
    

    ``

  2. Измените владельца директорий.

    chown -R www-data:www-data /var/lib/lanbilling/phpclient/client1
    chown -R www-data:www-data /var/lib/lanbilling/phpclient/client2
    
    chown -R apache:apache /var/lib/lanbilling/phpclient/client1
    chown -R apache:apache /var/lib/lanbilling/phpclient/client2
    
  3. Сериализуйте изменения:

    lbwebcfg client /etc/lanbilling/phpclient/client1 -o=/var/lib/lanbilling/phpclient/client1/config
    lbwebcfg client /etc/lanbilling/phpclient/client2 -o=/var/lib/lanbilling/phpclient/client2/config
    

    ``

  4. Перезапустите веб-сервер.

Настройка завершена — у вас есть два личных кабинета с индивидуальными настройками.