WHMCS Version: 8.11.2
安装路径:/data/www/default/whmcs
配置网站首页站点公告
管理后台路径为:顶部栏目下拉支持选项>站点公告,可自定义中英文等显示信息。
配置自动任务
管理后台路径为:系统设置>自动任务
为当前用户创建一个定时任务列表
crontab -e
将如下任务添加进去,注意将 whmcs 路径改成你的,我这里是/data/www/default/whmcs
*/5 * * * * php -q /data/www/default/whmcs/crons/cron.php
解决 PDF 账单中文乱码
-
下载 DroidSansFallbackFull.ttf 字体文件,重命名为 DroidSansFallback.ttf。
-
下载 tcpdf 转换工具
-
进入 /TCPDF-6.8.0/tools 目录,然后运行命令转换字体,注意换成你上面下载的字体文件绝对路径。
./tcpdf_addfont.php -b -t TrueTypeUnicode -f 32 -i /root/TCPDF-6.8.0/fonts/DroidSansFallback.ttf
-
将生成的 3 个文件(droidsansfallback.php、droidsansfallback.ctg.z、droidsansfallback.z)复制到 whmcs 对应字体目录
/data/www/default/whmcs/vendor/tecnickcom/tcpdf/fonts
。 -
最后进入 whmcs 后台页面:常规设置>账单,将
PDF字体
修改为 Custom 并填入 droidsansfallback 即可。
配置网站 LOGO 和 自定义 LOGO 在 PDF 账单中的位置
后台设置路径为:常规设置>Logo URL,填写参考:https://yourdomain.com/assets/img/logo.png
,需要先将你的LOGO上传到站点,上传路径为:站点根目录/assets/img/logo.png,LOGO 建议尺寸为 120x40 的 PNG 格式。
如果需要更改 LOGO 在 PDF 账单中的位置或样式,应该编辑与当前主题相关的 PDF 模板文件。例如:我这里用的 six 主题,编辑文件:站点根目录/templates/six/invoicepdf.tpl
$pdf->Image(ROOTDIR . '/assets/img/' . $logoFilename, 15, 25, 75);
- 15, 25:Logo 的 X 和 Y 坐标(以毫米为单位)。
- 75:Logo 的宽度(高度会按比例缩放)。
定义搜索引擎可抓取的网站范围
为了安全起见,我们需要定义一下搜索爬虫机器人不要抓取像 /admin 这样的后台管理页面的内容。首先,在网站根目录下创建 robots.txt 文件,例如:我这里是 /data/www/default/whmcs/robots.txt,编辑内容:
User-agent: *
Disallow: /
Allow: /index.php
Allow: /index.php?rp=/
Allow: /index.php?rp=/store/
Allow: /index.php?rp=/store/cloud-servers
Allow: /index.php?rp=/announcements
定义好了之后,如果可以通过你的网站首页 URL+robots.txt 访问到这个定义的文件就表示已经可以了,例如:https://yourdomain.com/robots.txt
温馨提示:
这里用的是类似"白名单"模式,默认阻止整个网站范围,只定义允许抓取的页面。如果用"黑名单"模式,例如"Disallow: /admin/"只阻止访问后台页面,默认可抓取整个网站,虽然效果差不多,但是因为 robots.txt 文件所有人可见,所以相当于把后台入口暴露出来了。
修改默认的后台管理地址/admin
在网站根目录下编辑 WHMCS 的配置文件 configuration.php,添加一句:
$customadminpath = 'myadmin';
然后将网站根目录下的 admin 目录重命名为 myadmin,同时清理根目录下的模版缓存目录 templates_c 下的所有缓存文件。测试访问新后台地址是否正常,例如:https://yourdomain.com/myadmin
调整 php.ini 某些参数
常常会遇到某些功能无法执行,提示“xxx”值太小之类的限制,这通常是因为 php.ini 默认值的设置问题。
举例:max_input_vars = 1000
The system could not process your submission because PHP's max input vars setting is too low. Click here for more information.
首先需要找到 WHMCS 到底使用的哪个 PHP 版本,然后再编辑该版本的 php.init 文件。
虽然下面命令并不能看出 WHMCS 所使用的PHP版本,但能知道默认使用的版本和大概路径。
php -v && php --ini
最直接的办法,在 WHMCS 的安装根目录下新建文件,并写入如下代码。
nano /data/www/default/whmcs/phpinfo.php
<?php phpinfo();
然后通过浏览器访问你的网站+文件名 https://yourdomain.com/phpinfo.php 就可以查看各种运行信息了,我们需要的信息类似:
Loaded Configuration File /etc/php/8.3/fpm/php.ini
cat /etc/php/8.3/fpm/php.ini
; How many GET/POST/COOKIE input variables may be accepted
max_input_vars = 20000
新主题增加 script 代码
例如:WHMCS 中安装 Google Analytics 插件后,需要在主题的 footer.tpl 模版里加上 {$footeroutput} 标签(最好在</body>
前面)。但是还有另一种方法,就是直接往里面添加代码。
我这里使用的是第三方的 Lagom2 主题,路径为:
/data/www/default/whmcs/templates/lagom2/core/layouts/footer/default/default.tpl
{literal}
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-5JLTTC4HW"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-5JLTTC4HW');
</script>
{/literal}
你可能已经注意到了,我这串 script 代码被{literal}...{/literal}
包裹着,这是因为 Lagom2 主题的 .tpl 文件里,如果直接写带{}
的 JavaScript,Smarty 会当模板语法解析,导致渲染失败。(底部导航布局消失了)。
而使用{literal}...{/literal}
就能告诉 Smarty 不要解析里面的内容,JS 会原样输出,页脚也不会消失。
评论区