静看光阴荏苒
不管不顾不问不说也不念

Debian13安装WHMCS 8.13.1开心版

WHMCS和开心授权文件下载:https://whmcsfull.com/,目前的最新版是8.13.1。

由于WHMCS官方不推荐使用NGINX,所以这篇文章中使用的Web服务器软件是Apache2。其实要用NGINX应该也没什么问题,就是要转换一下.htaccess里面的规则,主要还是考虑到安全问题,NGINX规则没写好可能会泄漏一些敏感目录和数据。。

另外由于Debian13官方存储库内的PHP版本已经是8.4了,而WHMCS目前最高只支持到8.3,所以我添加了SURY的存储库来安装PHP8.3。这波属于是反向升级了=-=我其实不喜欢WHMCS,我更看好目前开源的Paymenter,奈何周边生态还不太行,像什么模块、支付接口都没什么人开发=-=

安装PHP8.3:

apt install curl apt-transport-https ca-certificates lsb-release
curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
dpkg -i /tmp/debsuryorg-archive-keyring.deb
sh -c 'echo "deb [signed-by=/usr/share/keyrings/debsuryorg-archive-keyring.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
apt update
apt install php8.3 php8.3-{common,fpm,cli,curl,gd,imap,mysql,xml,bcmath,gmp,intl,mbstring,soap,zip}

由于我这个系统内原本就安装了PHP8.4,所以这里还需要切换一下版本:

update-alternatives --config php

输入对应数字即可切换:

WHMCS还需要用到ionCube,首先下载ionCube:

wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar -xzvf ioncube_loaders_lin_x86-64.tar.gz
cd ioncube/

查找PHP8.3的扩展目录:

php -i | grep extension_dir

回显类似内容:

extension_dir => /usr/lib/php/20230831 => /usr/lib/php/20230831

将对应PHP版本的ionCube扩展复制到刚才的目录内:

cp ioncube_loader_lin_8.3.so /usr/lib/php/20230831

编辑PHP-FPM的php.ini配置文件:

nano /etc/php/8.3/fpm/php.ini

新增如下内容,注意是新增不要把现有的zend_extension配置删除或者替换掉:

zend_extension = /usr/lib/php/20230831/ioncube_loader_lin_8.3.so

WHMCS官方不建议在运行环境中使用OPcache,所以顺便还是在这个配置文件内关闭OPcache:

opcache.enable=0

[可选]也可以顺便在这个配置文件内修改一下如下配置,优化WHMCS运行时的性能:

date.timezone=Asia/Shanghai
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 50M
post_max_size = 50M

别忘了还有PHP-CLI的php.ini配置:

nano /etc/php/8.3/cli/php.ini

也是一样新增如下内容:

zend_extension = /usr/lib/php/20230831/ioncube_loader_lin_8.3.so

关闭OPcache:

opcache.enable=0

重启PHP-FPM服务使更改生效:

systemctl restart php8.3-fpm.service

验证ionCube模块是否正常加载:

php -m | grep ionCube

有类似回显说明正常:

ionCube Loader
the ionCube PHP Loader

安装Apache2/Certbot/Mariadb数据库:

apt install apache2 python3-certbot-apache mariadb-server unzip

检查当前的Apache2运行模式,有两种模式:Event、Prefork,前者性能更好:

a2query -M

如果回显是Event就不用管了,如果回显是Prefork则执行如下命令进行切换:

a2dismod mpm_prefork
a2enmod mpm_event

配置Apache2使用FPM与PHP进行通信,同时启用伪静态重写功能:

a2enmod proxy_fcgi setenvif rewrite

Debian的Apache打包维护者非常贴心啊,自带了Apache2可用的PHP-FPM配置文件,只需要使用下面的命令启用一下即可:

a2enconf php8.3-fpm

重启Apache2使更改生效:

systemctl restart apache2

检查模块是否正常加载:

a2query -m

正常的话应该列出包含proxy_fcgi、rewrite的模块信息:

setenvif (enabled by maintainer script)
ssl (enabled by site administrator)
status (enabled by maintainer script)
mpm_event (enabled by maintainer script)
proxy_fcgi (enabled by site administrator)
socache_shmcb (enabled by site administrator)
env (enabled by maintainer script)
authz_user (enabled by maintainer script)
proxy (enabled by site administrator)
mime (enabled by maintainer script)
authz_core (enabled by maintainer script)
authn_file (enabled by maintainer script)
negotiation (enabled by maintainer script)
authn_core (enabled by maintainer script)
alias (enabled by maintainer script)
dir (enabled by maintainer script)
autoindex (enabled by maintainer script)
auth_basic (enabled by maintainer script)
rewrite (enabled by site administrator)
reqtimeout (enabled by maintainer script)
deflate (enabled by maintainer script)
access_compat (enabled by maintainer script)
authz_host (enabled by maintainer script)
filter (enabled by maintainer script)

刚才虽然启用了rewrite模块,但是Apache2的默认配置是不允许使用.htaccess文件的,为了后续WHMCS提供的.htaccess能够正常工作,我们可以在conf-available目录内新建一个覆盖配置:

nano /etc/apache2/conf-available/allow-override.conf

写入如下内容:

<Directory "/var/www">
    AllowOverride all
</Directory>

启用这个配置:

a2enconf allow-override

重载Apache2使配置生效:

systemctl reload apache2

登录到Mariadb:

mysql -u root -p

创建数据库和用户并授权允许访问:

CREATE USER 'whmcs'@'127.0.0.1' IDENTIFIED BY 'yourpassword';
CREATE DATABASE whmcs;
GRANT ALL PRIVILEGES ON whmcs.* TO 'whmcs'@'127.0.0.1' WITH GRANT OPTION;

下载WHMCS源码解压:

mkdir /var/www/whmcs && cd /var/www/whmcs
wget https://whmcsfull.com/download.whmcs.com/latestVersion/whmcs-8.13.1-release.1.zip
unzip whmcs-8.13.1-release.1.zip
rm whmcs-8.13.1-release.1.zip

进入vendor/whmcs/whmcs-foundation/lib目录,备份原始的授权文件:

cd vendor/whmcs/whmcs-foundation/lib
mv License.php License.php.bak

从这里下载开心版授权文件:https://whmcsfull.com/#license,将开心版授权文件重命名为License.php上传到这个路径下即可完成开心,后续输入授权key的时候随意输入即可。

设置正确的所有者权限:

chown -R www-data:www-data /var/www/whmcs/

新建Apache2的Vhost(站点)配置文件:

nano /etc/apache2/sites-available/whmcs.conf

写入如下内容:

<VirtualHost *:80>
        ServerName whmcs.example.com
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/example
        ErrorLog ${APACHE_LOG_DIR}/example_error.log
        CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>

启用站点:

a2ensite whmcs

重载Apache2使其生效:

systemctl reload apache2

签发SSL证书:

certbot --apache

访问whmcs.example.com,如果正常应该可以看到如下页面:

检查环境,确保满足WHMCS的条件:

配置数据库连接信息,授权Key可以随意输入:

创建管理员账号:

安装完成后,还需要按照WHMCS的提示进行善后工作。删除WHMCS程序的安装目录:

rm -rf /var/www/whmcs/install/

修改configuration.php的文件权限为400:

chmod 400 configuration.php

配置计划任务:

crontab -u www-data -e

写入如下内容:

*/5 * * * * /usr/bin/php -q /var/www/whmcs/crons/cron.php
赞(0)
未经允许不得转载:荒岛 » Debian13安装WHMCS 8.13.1开心版
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

分享创造快乐

广告合作资源投稿