WHMCS (Web Host Manager Complete Solution) - система автоматизації для хостинг-компаній і провайдерів інтернет-послуг. Вона пропонує функціонал для керування клієнтами, виставлення рахунків, підтримки та автоматизації процесів. Далі наведемо інструкцію зі встановлення цього модуля.
Завантаження модуля на сервер через командний рядок за допомогою scp:
scp /path/to/local/module-whmcs-billmanager.zip
username@remote_server:/path/to/remote/directory
Приклад якщо ви вже перебуваєте в папці з файлом:
scp module-whmcs-billmanager.ziproot@77.92.122.212:/var/www/www-root/data/www/data-hub.online/
Потім буде потрібно ввести пароль від сервера.
Після завантаження файлу на сервер підключіться до сервера по SSH і розпакуйте файл
ssh user@remote_server
Буде потрібно ввести пароль від сервера.
Потім потрібно перейти в папку вашого проєкту і куди ви завантажили файл
cd /var/www/path/to/destination/
Архів потрібно розпакувати в корінь проєкту
unzip module-whmcs-billmanager.zip
У цьому архіві є 3 версії модуля, які відповідають версії php, на якій працює whmcs, щоб дізнатися свою версію php, перейдіть в Utilities/System/PHP info
Потім вам потрібно ще раз розпакувати архів версії яку підтримує ваш whmcs.
Для версії php 7.1, php 7.2, php 7.4 введіть
unzip version7.1|7.2|7.4.zip
Для версії php 8.1 введіть
unzip version8.1
Для версії php 8.2 введіть
unzip version8.2
Потім потрібно (обов'язково) видати права файлам, зробити це можна перебуваючи в папці проєкту, ввести команду
chmod -R 755 modules/servers/PQH
Модуль завантажено.
Або Завантаження модуля на сервер через FileZilla
На своєму комп'ютері розпакувати файл module-whmcs-billmanager.zip
Потім вам потрібно ще раз розпакувати архів версії, яку підтримує ваш whmcs:
Для версии php 7.1, php 7.2, php 7.4 архив version7.1|7.2|7.4.zip
Для версии php 8.1 архив version8.1
Для версии php 8.2 архив version8.2
Потім підключитися до свого сервера за допомогою filezilla
Перенести файли в кореневу папку сайту з архіву відповідної вашої версії php (як на скріншоті нижче).
Потім потрібно (обов'язково) видати права папці і файлам, зробити це можна, перейшовши в папку modules/servers, клацнувши правою кнопкою миші по папці PQH, вибрати пункт атрибути файлу, у спливаючому вікні прописати в полі числове значення 755 і поставити галочку на recurse into subdirectories (як на скріншоті нижче).
Модуль завантажено.
На нашому shared-хостингу, підтримка IonCube і його версія залежить від обраної для користувача версії PHP. Це актуально для будь-якої лінійки тарифних планів хостингу, а також для віртуальних/виділених серверів зі встановленою панеллю ISPManager.
Якщо у Вас сервер без будь-якої панелі керування, Ви можете зіткнутися з необхідністю ручного встановлення IonCube.
Процес встановлення може відрізнятися залежно від Вашої ОС. Незалежно від ОС, першим кроком завжди є підключення по SSH і отримання root доступу.
Для встановлення IonCube потрібна машина з активним і працюючим веб сервером, Apache або Nginx, а також встановлена версія PHP зі списку підтримуваних IonCube Loader.
Важливо: значення команд, які використовуються під час встановлення IonCube Loader, варіюються залежно від деяких змінних: версії PHP на сервері, локації PHP-директорії та версії архітектури сервера. Тут і надалі ми будемо виділяти значення цих змінних. Замість них, під час встановлення, необхідно буде підставити відповідні значення для Вашого сервера.
1. Підключіться до сервера по SSH.
2. Перевірте архітектуру поточного сервера:
uname -m
Exit
x86_64
Як бачимо з x86_64, наш поточний сервер працює на 64-бітній архітектурі. Значення виду i686 вказували б на зворотне - 32-х бітну архітектуру.
Далі, переходимо до директорії tmp і завантажуємо необхідний архів:
Для 64-бітних систем:
cd /tmp
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
Для 32-бітних систем:
cd /tmp
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
Після завантаження архіву необхідно його розархівувати:
Оскільки в прикладі в нас використовується 64-х бітна архітектура, ми завантажили і розпаковуємо саме такий архів.
tar -zxvf ioncube_loaders_lin_x86-64.tar.gz
5. Переходимо в директорію ioncube і переглядаємо список файлів.
cd ioncube/
ls -l
Висновок
total 39260
-rw-rw-r-- 1 507 507 472192 Sep 9 2023 ioncube_loader_lin_4.1.so
-rw-rw-r-- 1 507 507 471968 Sep 9 2023 ioncube_loader_lin_4.2.so
-rw-rw-r-- 1 507 507 472768 Sep 9 2023 ioncube_loader_lin_4.3.so
-rw-rw-r-- 1 507 507 490752 Sep 9 2023 ioncube_loader_lin_4.3_ts.so
-rw-rw-r-- 1 507 507 475840 Sep 9 2023 ioncube_loader_lin_4.4.so
-rw-rw-r-- 1 507 507 494880 Sep 9 2023 ioncube_loader_lin_4.4_ts.so
-rw-rw-r-- 1 507 507 483360 Sep 9 2023 ioncube_loader_lin_5.0.so
-rw-rw-r-- 1 507 507 497632 Sep 9 2023 ioncube_loader_lin_5.0_ts.so
-rw-rw-r-- 1 507 507 1116768 Sep 9 2023 ioncube_loader_lin_5.1.so
-rw-rw-r-- 1 507 507 1155744 Sep 9 2023 ioncube_loader_lin_5.1_ts.so
-rw-rw-r-- 1 507 507 1139936 Sep 9 2023 ioncube_loader_lin_5.2.so
-rw-rw-r-- 1 507 507 1176704 Sep 9 2023 ioncube_loader_lin_5.2_ts.so
-rw-rw-r-- 1 507 507 1222328 Sep 9 2023 ioncube_loader_lin_5.3.so
-rw-rw-r-- 1 507 507 1275512 Sep 9 2023 ioncube_loader_lin_5.3_ts.so
-rw-rw-r-- 1 507 507 1512960 Sep 9 2023 ioncube_loader_lin_5.4.so
-rw-rw-r-- 1 507 507 1599584 Sep 9 2023 ioncube_loader_lin_5.4_ts.so
-rw-rw-r-- 1 507 507 1520056 Sep 9 2023 ioncube_loader_lin_5.5.so
-rw-rw-r-- 1 507 507 1602040 Sep 9 2023 ioncube_loader_lin_5.5_ts.so
-rw-rw-r-- 1 507 507 1485192 Sep 9 2023 ioncube_loader_lin_5.6.so
-rw-rw-r-- 1 507 507 1549640 Sep 9 2023 ioncube_loader_lin_5.6_ts.so
-rw-rw-r-- 1 507 507 1254608 Sep 9 2023 ioncube_loader_lin_7.0.so
-rw-rw-r-- 1 507 507 1316080 Sep 9 2023 ioncube_loader_lin_7.0_ts.so
-rw-rw-r-- 1 507 507 1355080 Sep 9 2023 ioncube_loader_lin_7.1.so
-rw-rw-r-- 1 507 507 1438760 Sep 9 2023 ioncube_loader_lin_7.1_ts.so
-rw-rw-r-- 1 507 507 1407568 Sep 9 2023 ioncube_loader_lin_7.2.so
-rw-rw-r-- 1 507 507 1489008 Sep 9 2023 ioncube_loader_lin_7.2_ts.so
-rw-rw-r-- 1 507 507 1316800 Sep 9 2023 ioncube_loader_lin_7.3.so
-rw-rw-r-- 1 507 507 1386880 Sep 9 2023 ioncube_loader_lin_7.3_ts.so
-rw-rw-r-- 1 507 507 1363392 Sep 9 2023 ioncube_loader_lin_7.4.so
-rw-rw-r-- 1 507 507 1430848 Sep 9 2023 ioncube_loader_lin_7.4_ts.so
-rw-rw-r-- 1 507 507 1401736 Sep 9 2023 ioncube_loader_lin_8.1.so
-rw-rw-r-- 1 507 507 1506216 Sep 9 2023 ioncube_loader_lin_8.1_ts.so
-rw-rw-r-- 1 507 507 1439016 Sep 9 2023 ioncube_loader_lin_8.2.so
-rw-rw-r-- 1 507 507 1546568 Sep 9 2023 ioncube_loader_lin_8.2_ts.so
-rw-r--r-- 1 507 507 10768 Aug 5 2022 LICENSE.txt
-rw-r--r-- 1 507 507 181104 Aug 15 2022 loader-wizard.php
-rw-r--r-- 1 507 507 4070 Sep 9 2023 README.txt
-rw-r--r-- 1 507 507 39548 Sep 9 2023 USER-GUIDE.pdf
-rw-r--r-- 1 507 507 11269 Sep 9 2023 USER-GUIDE.txt
Як бачимо, в архіві була присутня безліч різних версій модуля для різних версій PHP. Необхідно дізнатися, який із цих файлів потрібен нам для подальшого встановлення.
6. Знаючи свою версію PHP (з першого кроку), Наступним кроком, визначаємо локацію директорії, в яку необхідно буде встановлювати IonCube Loader.
php -i | grep extension_dir
Висновок
extension_dir => /usr/lib/php/20210902 => /usr/lib/php/20210902
Локація /usr/lib/php/20210902 знадобиться нам у подальшому процесі встановлення. В ОС із гілки Centos така папка може мати вигляд /usr/lib64/php/modules.
7. Копіюємо файли IonCube у потрібну директорію.
sudo cp /tmp/ioncube/ioncube_loader_lin_8.1.so /usr/lib/php/20210902
8. Тепер необхідно внести правки в файли конфігурації php.ini. У різних конфігураціях сервера у них може варіюватися локація:
sudo nano /etc/php/8.1/cli/php.ini #для PHP CLI
sudo nano /etc/php/8.1/fpm/php.ini #для PHP-FPM & Nginx
sudo nano /etc/php/8.1/apache2/php.ini #для Apache2
Вставте рядок такого вигляду в самий початок php.ini:
zend_extension = /usr/lib/php/20210902/ioncube_loader_lin_8.1.so
9. Виконайте рестарт вебсервера:
Apache Ubuntu/Debian
sudo systemctl restart apache2
Apache Centos/Rocky/Alma
sudo systemctl restart httpd
Nginx/PHP-FPM
sudo systemctl restart nginx
sudo systemctl restart php-fpm
10. Перевірте правильність встановлення командою:
php -v
Якщо встановлення успішне, рядок з інформацією про поточну версію IonCube відображатиметься так:
Висновок
PHP 8.1.2-1ubuntu2.17 (cli) (built: May 1 2024 10:10:07) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with the ionCube PHP Loader v13.0.2, Copyright (c) 2002-2023, by ionCube Ltd.
with Zend OPcache v8.1.2-1ubuntu2.17, Copyright (c), by Zend Technologies
Заходимо в панель адміністратора.
System Settings/Servers
Натискаємо додати новий сервер (Add New Server)
Заповнюємо форму як на скріншоті нижче
У полі Module знаходимо: PQH
У полі Hostname or IP Address вводимо: client.the.hosting
Далі вводимо свої дані акаунта (логін, пароль) від client.the.hosting
І натискаємо continue.
Далі на наступній сторінці потрібно ввести ім'я сервера (на ваш вибір) і натискаємо Save Changes
Потрібно створити нового адміністратора.
Це можна зробити перейшовши в settings/manage admins
Потім натиснути на кнопку Add New Administrator
Роль: Full administrator
Username (обов'язково!): apisystem
Решта даних на ваш вибір
Приклад (скріншот нижче)
Такі поля, як вибір операційної системи під час купівлі, можна налаштувати, перейшовши в settings/system settings/Configurable Options
Натиснути на кнопку Create a New Group, далі на свій розсуд задати ім'я групи
і натиснути кнопку Save Changes, потім натиснути на кнопку яка з'явиться Add New Configurable Option
Потім у спливаючому вікні ввести в поле Option Name: "VM Template"
Потім додаємо значення в поле Add Options.
Ось список усіх підтримуваних значень:
VM6_ISPsystem_Alma-Linux-8
VM6_ISPsystem_Alma-Linux-9
VM6_ISPsystem_Astra-Linux-CE
VM6_ISPsystem_CentOS-8-Stream
VM6_ISPsystem_CentOS-9-Stream
VM6_ISPsystem_Debian-10
VM6_ISPsystem_Debian-11
VM6_ISPsystem_Debian-12
VM6_ISPsystem_FreeBSD-12
VM6_ISPsystem_FreeBSD-13
VM6_ISPsystem_Oracle-Linux-8
VM6_ISPsystem_Rocky-Linux-8
VM6_ISPsystem_Ubuntu-18.04
VM6_ISPsystem_Ubuntu-20.04
VM6_ISPsystem_Ubuntu-22.04
VM6_ISPsystem_VzLinux-8
Натиснути Save Changes і в цій вкладці, і у вкладці Configurable Option Groups.
Перейти в Settings/System settings/ Products,Services
Створити нову групу натисканням на кнопки Create a New Group.
Далі заповніть поля на свій розсуд
Збережіть і перейдіть знову в Settings/System settings/ Products,Services
Решту заповніть на ваш розсуд
Після збереження, вам доступно налаштувати цей продукт
У вкладці Details (скріншот нижче) ви можете налаштувати продукт на свій розсуд (Product Name, Product Tagline, Product Short Description, Product Description).
Checkbox у значенні Require Domain варто прибрати.
Не забудьте зберегти налаштування продукту
У вкладці Pricing (скріншот нижче) ви можете налаштувати оплату за продукт. Не забудьте зберегти налаштування продукту
У вкладці Module Settings (скріншот нижче)
Виберіть (обов'язково) Module Name: PQH
Потім виберіть дата центр і тариф, який буде відповідати цьому продукту.
Не забудьте зберегти налаштування продукту
У вкладці Custom Fields (скріншот нижче) ОБОВ'ЯЗКОВО в поле Field Name вставте значення "VMid"
Решту вкладок налаштуйте на свій розсуд.
Далі для спрощення процесу додавання продуктів ми можете їх дублювати (скріншот нижче)
Створіть користувача, поповніть йому рахунок і спробуйте замовити послугу з тестового акаунта. При замовленні користувачем модуль передасть в BILLmanager всі параметри, замовить сервер автоматичний і в разі активації сервера на стороні BILLmanager, активується і послуга на стороні WHMCS.