Один модуль lbweb-client может поддерживать несколько версий личного кабинета. У каждой из этих версий будут свои настройки — например, интеграции с разными платёжными системами.
Пример. Вы оказываете услуги телефонии и интернета от лица разных операторов: «SuperPhone» и «SuperNet». Создайте две версии личного кабинета и настройте их с учётом специфики операторов. Абоненты «SuperPhone» смогут посмотреть статистику по своим учётным записям, а клиенты «SuperNet» — изменить MAC-адрес.
Для создания нескольких версий личного кабинета выполните четыре шага.
Установите lbweb-client на веб-сервер. Об этом подробно написано в инструкциях:
Мы рекомендуем устанавливать модули lbweb-client и LBcore на один сервер. Если вы хотите установить модуль lbweb-client на другой сервер, воспользуйтесь инструкцией.
Для каждой версии личного кабинета нужно настроить конфигурацию 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
Пример конфигурации находится в файле lbweb-client.apache2.sample
. Скопируйте его для каждой версии:
cp /etc/lanbilling/phpclient/apache2/lbweb-client.apache2.sample /etc/httpd/conf.d/client1.conf
cp /etc/lanbilling/phpclient/apache2/lbweb-client.apache2.sample /etc/httpd/conf.d/client2.conf
Разделить личные кабинеты можно двумя способами
Разные домены:
Разные пути на одном домене:
Выберите вариант настройки: первый или второй.
В каждом из скопированных файлов закомментируйте верхние строки и раскомментируйте секцию VirtualHost
. Внесите исправления в эти раскомментированные строки.
ServerName
.SetEnv
./assets/
.ErrorLog
и CustomLog
. Рекомендуем указывать абсолютные пути.Для client1:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName client1.my.site
DirectoryIndex api.php
DocumentRoot /usr/share/lanbilling/phpclient/client/public
<Directory />
SetEnv RUNTIME_PATH /var/lib/lanbilling/phpclient/client1/
Options FollowSymLinks
AllowOverride All
<IfModule !mod_authz_core.c>
Order allow,deny
allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . api.php
</IfModule>
</Directory>
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>
ErrorLog /var/log/httpd/error-client1.log
LogLevel warn
CustomLog /var/log/httpd/access-client1.log combined
</VirtualHost>
Для client2:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName client2.my.site
DirectoryIndex api.php
DocumentRoot /usr/share/lanbilling/phpclient/client/public
<Directory />
SetEnv RUNTIME_PATH /var/lib/lanbilling/phpclient/client2/
Options FollowSymLinks
AllowOverride All
<IfModule !mod_authz_core.c>
Order allow,deny
allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . api.php
</IfModule>
</Directory>
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>
ErrorLog /var/log/httpd/error-client2.log
LogLevel warn
CustomLog /var/log/httpd/access-client2.log combined
</VirtualHost>
Далее настройте конфигурационные файлы.
В каждом из скопированных файлов укажите расположение директории /assets/
.
Для client1:
Alias /client1/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 /client2/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>
Задайте директории для временных файлов с помощью директивы SetEnv
.
Для client1:
Alias /client1 /usr/share/lanbilling/phpclient/client/public/
<Directory /usr/share/lanbilling/phpclient/client/public>
Options FollowSymLinks
AllowOverride All
SetEnv RUNTIME_PATH /var/lib/lanbilling/phpclient/client1/
<IfModule !mod_authz_core.c>
Order allow,deny
allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
<IfModule mod_rewrite.c>
RewriteBase /client1
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . api.php
</IfModule>
</Directory>
Для client2:
Alias /client2 /usr/share/lanbilling/phpclient/client/public/
<Directory /usr/share/lanbilling/phpclient/client/public>
Options FollowSymLinks
AllowOverride All
SetEnv RUNTIME_PATH /var/lib/lanbilling/phpclient/client2/
<IfModule !mod_authz_core.c>
Order allow,deny
allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
<IfModule mod_rewrite.c>
RewriteBase /client2
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . api.php
</IfModule>
</Directory>
Далее настройте конфигурационные файлы.
Создайте директории с файлами конфигурации для каждой версии личного кабинета:
cp -R /etc/lanbilling/phpclient/client/ /etc/lanbilling/phpclient/client1/
cp -R /etc/lanbilling/phpclient/client/ /etc/lanbilling/phpclient/client2/
``
Задайте параметры в конфигурационных файлах каждой из версий. Например, в одной скройте раздел «Телефония», а в другой — «Интернет» и «Телевидение». Чтобы разделить личные кабинеты по операторам, используйте параметр oper_id
в файле main.ini
.
Также вы можете настроить тему — внешний вид личного кабинета.
Действия различаются для разных ОС.
Создайте папки для сериализаций:
mkdir -p /var/lib/lanbilling/phpclient/client1/assets/
mkdir -p /var/lib/lanbilling/phpclient/client2/assets/
``
Измените владельца директорий:
chown -R www-data:www-data /var/lib/lanbilling/phpclient/client1/
chown -R www-data:www-data /var/lib/lanbilling/phpclient/client2/
``
Сериализуйте изменения:
/usr/local/sbin/lbwebcfg -y client /etc/lanbilling/phpclient/client1/ -o=/var/lib/lanbilling/phpclient/client1/config
/usr/local/sbin/lbwebcfg -y client /etc/lanbilling/phpclient/client2/ -o=/var/lib/lanbilling/phpclient/client2/config
``
Подключите виртуальный хост:
a2ensite client1.conf
a2ensite client2.conf
a2enmod rewrite
``
Перезапустите веб-сервер:
systemctl restart apache2
``
Создайте папки для сериализаций:
mkdir -p /var/lib/lanbilling/phpclient/client1/assets/
mkdir -p /var/lib/lanbilling/phpclient/client2/assets/
``
Измените владельца директорий:
chown -R apache:apache /var/lib/lanbilling/phpclient/client1/
chown -R apache:apache /var/lib/lanbilling/phpclient/client2/
``
Сериализуйте изменения:
/usr/local/sbin/lbwebcfg -y client /etc/lanbilling/phpclient/client1/ -o=/var/lib/lanbilling/phpclient/client1/config
/usr/local/sbin/lbwebcfg -y client /etc/lanbilling/phpclient/client2/ -o=/var/lib/lanbilling/phpclient/client2/config
``
Перезапустите веб-сервер:
systemctl restart httpd
``
Настройка завершена — у вас есть два личных кабинета с индивидуальными настройками.
Есть вопросы по документации? Пожалуйста, напишите их