我已经购买该主题的主域名授权,可是对于二级域名却无法授权,于是尝试在1panel自建授权接口,这里单纯只是记录一下过程,仅供学习参考,不分享任何文件,方法非原创,所有代码来自互联网,本人不承担任何责任,如有侵权马上删除,支持正版,从我做起!。
大概原理是在1panel中现创建一个独立的php环境(该环境跑在docker里面),然后修改WordPress的compose文件,自定义host将授权接口地址指向宿主机中自建的接口。
一、创建php运行环境
如图,名称随意,其余默认,点确定
二、创建授权接口
在1panel中点击创建网站,选运行环境,主域名为api.xxxxx.com,确认。
为该接口随意选择一个ssl证书。
在该网站的index.php中,加入如下代码:
<?php
$url = $_SERVER['REQUEST_URI'];
function getRandom($length) {
$characters = 'abcdefghijklmnopqrstuvwxyz1234567890';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$index = rand(0, strlen($characters) - 1);
$randomString .= $characters[$index];
}
return $randomString;
}
function generate_randstr($url) {
$key = strrev(md5($url));
$num1 = rand(70,99);
$num1r = strrev(strval($num1));
$num2 = rand(70,99);
$num2r = strrev(strval($num2));
$key = substr($key,23).substr($key,0,23);
$keystr = substr_replace($key,getRandom(3),$num1-69,0);
$randstr = getRandom(3).$num1r.getRandom(rand(5,10)).$keystr.getRandom(100-$num2).$num2r;
return $randstr;
}
header('Content-Type: application/json; charset=UTF-8');
if(strpos($url, '/api/auth') !== false){
$time = time();
$token = md5(uniqid(mt_rand(), true) . microtime());
$randstr = generate_randstr($_POST['url']);
$sign = md5($randstr.$time.$token.'ok');
$data = ['error'=>true, 'error_code'=>0, 'msg'=>'', 'time'=>$time, 'token'=>$token, 'randstr'=>$randstr, 'code'=>base64_encode('恭喜您,授权验证成功'), 'sign'=>$sign];
echo json_encode($data);
}
elseif(strpos($url, '/api/update') !== false){
$version = $_POST['version'];
$data = ['result'=>false, 'aut_error'=>false, 'msg'=>'暂无更新,您当前的版本已是最新版', 'version'=>$version];
echo serialize($data);
}
在伪静态中,加入如下代码:
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php/$1 last; break;
}
}
在终端中输入:
ip addr show docker0
可以看到宿主机的ip内网ip为172.17.0.1
点击容器-编排- WordPress容器,加入如下代码:
extra_hosts:
- "api.xxxxx.com:172.17.0.1"
然后在Wordpress中安装该主题,就能自动激活授权了。
值得注意的是,网站需要启用https,wordpress中才能正常激活该主题。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容