安装

最新版是 3.30.1,官网下载链接

安装环境:PHP 5.3 或更高,需要PHP扩展 GD 和 Mcrypt
安装过程接不多说了,参考官方详细文档

需要注意的的伪静态设置是,如果原来配置文档有涉及 js,css 的设置建议先删除。(宝塔需要删除原来配置文档里面 location ~js jpg 部分)

Nginx 伪静态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
location / {
if (!-e $request_filename){
# Rewrite any calls to html|json|xml|atom|rss if a folder matching * exists
rewrite (.+)\.(html|json|xml|atom|rss)$ $1/ last;
# Rewrite any calls to /render to the X3 image resizer
rewrite ^/render/. /app/parsers/slir/ last;
# Rewrite routes to X3 application index.php if they are non-existent files/dirs
rewrite ^(.*)$ /index.php?$1 last;
}
}
# Prevent web access to X3 /config and /_cache directories
location ~ /(config|_cache) {
deny all;
}

授权

以这个版本为例,把验证网址 https://auth.photo.gallery/ 改成 /auth,再在 /auth 目录下放入自己的授权文件

  • 修改 /app/public/js/3.30.1/x3.min.js
    1
    2
    搜索 aHR0cHM6Ly9hdXRoLg== 替换为 Lw==
    搜索 cGhvdG8uZ2FsbGVyeQ== 替换为 YXV0aA==
    代码为 base64 加密,解密后对应
    1
    2
    3
    4
    aHR0cHM6Ly9hdXRoLg== -> https://auth
    cGhvdG8uZ2FsbGVyeQ== -> photo.gallery
    Lw== -> /
    YXV0aA== -> auth
  • 修改 /panel/filemanager_js/x3_panel.js
    1
    搜索 aHR0cHM6Ly9hdXRoLnBob3RvLmdhbGxlcnkv 替换为 L2F1dGgv
    代码为 base64 加密,解密后对应
    1
    2
    aHR0cHM6Ly9hdXRoLnBob3RvLmdhbGxlcnkv -> https://auth.photo.gallery/
    L2F1dGgv -> /auth/
  • 修改使用本地 x3.min.js

修改引用文件

修改 /app/templates/cc/29/202264ab201d0d43a63882c31b1c06ae7e7992a5c371c52f885633d0acfa.php
大概第71行

1
2
3
$context["core_js"] = (("https://cdn.jsdelivr.net/npm/x3.photo.gallery@" . $this->getAttribute((isset($context["page"]) ? $context["page"] : null), "x3_version")) . "/js/x3.min.js");      
修改为:
$context["core_js"] = ("/app/public/js/3.30.1/x3.min.js");

或者从后台设置取消 cdn,全部使用本地静态:设置 -> 高级 -> CDN,取消勾选

  • 新建验证文件 /auth/index.php

简单模式

1
2
3
4
5
<?php 
header('Access-Control-Allow-Origin: *');
header('content-type:application/json');
echo '{"status":200,"message":"License is valid.","parameters":{"type":"1"}}';
?>

指定域名

1
2
3
4
5
6
7
8
9
10
<? php 
header('Access-Control-Allow-Origin: *');
header('content-type:application/json');
$allowed_hosts = array('pg.yuwei.cc', 'p2.btu.pp.ua');
if (in_array($_SERVER['SERVER_NAME'], $allowed_hosts)) {
echo '{"status":200,"message":"License is valid [btu.pp.ua]","parameters":{"type":"1"}}';
}else{
echo '{"status":301,"message":"License not Found"}';
}
?>

这样应该可以了

好像 POST 授权网址后,只要 status 返回的代码不是 301,它就不会判断是不是正版,不再进行下一步的弹窗和跳转了
目前个人使用遇到最大问题

文件夹不支持 #$%^&*()+=[]’”/|{} `~!@.