Skip to content

MJJ 必备自建 IDC 系统 WHMCS V8.13.1 开心版 圆你一个老板梦

前言

WHMCS 是我们买 VPS 的最常见到的 IDC 系统,最近为了写 VPS 库存监控脚本,自己搭了一个 WHMCS 用来测试,顺便分享一下如何搭建属于自己的 WHMCS,圆你一个老板梦。WHMCS 开心版仅限学习、开发使用,商业用途请前往官网购买官方授权。

下载链接:夸克网盘 / UC 网盘(已更新 V8.13.1)

准备工作

本文基于 1Panel 面板进行搭建,你也可以使用其他面板,例如宝塔等等,也可以直接手搓,只要有 PHP + MySQL 环境即可。

PHP 环境

创建 PHP 运行环境,建议使用 PHP 7,我测试下来 PHP 8 安装 ioncube_loader 不成功

新版 1Panel 可以安装 PHP 8.1,扩展里有带 ioncube_loader

至少需要包含以下扩展 : mbstring,curl,pdo_mysql,bcmath,gmp,gd,ioncube_loader,如需更多功能,请参考官方扩展页面

创建运行环境
创建运行环境

MySQL 数据库

创建 MySQL 数据库

MySQL 数据库
MySQL 数据库

网站

创建网站,选择刚才创建好的运行环境

创建网站
创建网站

安装 WHMCS

上传

首先将下载好的 WHMCS 压缩包上传到网站根目录并解压

上传至网站目录
上传至网站目录

替换 License

接着还要替换授权文件,进入 /vendor/whmcs/whmcs-foundation/lib/ 目录将自带的 License.php 删除,然后将下载到的 License-8.10.1.php 重命名为 License.php 上传到该目录

安装

如果你用的也是 1Panel 的话,上传 WHMCS 和 License 之后,还需要在网站设置中的“运行用户/组”点一下保存,否则可能导致网站访问 Access denied 错误。

运行用户/组
运行用户/组

进入 https://example.com/install/install.php 开始安装程序,一路下一步,来到填写数据库信息的界面

  • Database Host:数据库地址
    • 如果是 1Panel 安装的 MySQL 填写 MySQL 的容器名,例如 1Panel-mysql-xxxx
    • 如果是宿主机安装的 MySQL 则填写 host.docker.internal,同时还需要在 PHP 运行环境中添加上 host.docker.internal 映射 host-gateway
主机映射
主机映射
  • License Key:随意填写
数据库信息
数据库信息

创建管理员账户

创建管理员账户
创建管理员账户

收尾工作

看到下面这个界面就说明 WHMCS 已经安装完成了,但还需要根据提示做一些收尾工作

  1. 删除 /install/ 文件夹,非常的简单,直接删除即可
  2. 修改以下文件/文件夹权限
    • /configuration.phpCHMOD 400 (Readable)
    • /attachmentsCHMOD 777 (Writable)
    • /downloadsCHMOD 777 (Writable)
    • /templates_cCHMOD 777 (Writable)
  3. 定时运行 /usr/local/bin/php -q /www/sites/example.com/index/crons/cron.php

提示

由于我们是容器运行的 PHP,因此第三步的命令需要在容器内执行,并且由于容器内的文件路径也有点不同,最终命令需要移除开头的 /www/

sh
/usr/local/bin/php -q sites/example.com/index/crons/cron.php

添加好计划任务,每 5 分钟执行一次

计划任务
计划任务
完成安装
完成安装

效果展示

前台页面
前台页面
后台管理
后台管理

安装 Lagom 主题

由于 WHMCS 自带的主题比较丑,目前最流行的主题是 Lagom,网盘中提供的版本较老,可能和最新版的 WHMCS 有些不兼容,不过体验一下 UI 还是没什么问题的,商用请购买官方授权 官方演示站

  1. 建议在开始之前先备份一下整个网站目录,避免安装失败

  2. 将 templates 和 modules 中的所有文件,上传至 WHMCS 对应文件夹中,并赋予 /templates/lagom2/core/styles/ 目录写入权限

  3. 按照 Lagom 官方指导,在 WHMCS 后台将其启用