老李工具箱 · 安装说明
======================================
准备：一个空的网站目录，一个空的 MySQL 数据库（把数据库名、用户名、密码记在手边）。
      服务器要有 PHP 7.4 及以上、MySQL 5.5 及以上。宝塔面板、phpStudy、自建 Nginx 都行。
      程序自带 6 个分类共 60 款工具，全部在浏览器本地算，不需要额外装扩展就能跑。


一、解压上传
  把本目录（laoli-toolbox-v1.1.2）里的全部文件传到网站目录里。
  可以放根目录，也可以放二级目录（例如 /www/wwwroot/你的站点/tool/），
  两种部署程序都会自动识别，不用改任何代码。

  宝塔：文件 → 进入网站根目录 → 上传 zip → 右键解压 →
        把解压出来那层目录里的东西剪切到网站根目录（想留在子目录里也可以，
        只是访问地址要带上那段目录名）。

  注意：这个包里没有 app/config.php，也没有 app/data/install.lock，
        这两个是装机时自动生成的本机私有文件，别自己造一份传上去。


二、给写权限（这一步漏了最常见，表现是空白页或 500）
  需要能写的目录：app/（装时写 config.php）、app/data/（装时写 install.lock）、
                  storage/（日志、后台上传的压缩包 storage/pkg、装包前的备份 storage/backup，装完也要一直可写）。
  后台要上传站点 LOGO 或网站图标时，assets/upload/ 也要可写。
  用后台「工具包」「模板中心」上传 zip 装包时还要临时放开 app/tools/（工具包落地处）或
  app/themes/ 与 assets/（主题包落地处）；不想开就用 FTP 自己解压覆盖，效果一样。
  宝塔：文件 → 勾选上面几个目录 → 权限 → 755 → 勾「应用到子目录」→ 保存；
        所有者（用户/组）填 www。
  命令行：chown -R www:www app storage assets/upload && chmod -R 755 app storage assets/upload


三、打开安装页
  直接访问站点首页：https://你的域名/
  （放在二级目录就是 https://你的域名/tool/；没配伪静态时用 https://你的域名/index.php 也一样进）

  只要 app/config.php 还不存在，任何地址都会自动进入安装向导，向导第 1 屏会先做环境预检：
  PHP 版本、pdo / pdo_mysql / mbstring / json 四个扩展、上面几个目录的写权限，
  有红字先按提示补齐再继续。

  需要填写的：
    数据库地址 / 端口    默认 127.0.0.1:3306（主机填 127.0.0.1，别填 localhost，部分环境走不通 socket）
    数据库名             默认 laoli_toolbox，库不存在时向导会自动建库建表
    用户名 / 密码        用宝塔「数据库」页里那套，直接复制粘贴最稳
    表前缀               默认 laoli_，可改成自己习惯的，程序不需要改代码
    站点名称             会写成页头与后台标题
    管理员账号 / 密码    默认 admin，密码至少 6 位

  点「开始安装」后向导会：生成 app/config.php（含随机密钥）→ 建 10 张表 →
  写入默认设置与会员价 → 创建管理员 → 写下 app/data/install.lock，
  完成后给出前台和后台入口。内容不多，一般几秒就完，别中途刷新。
  装好后只要 app/config.php 或 app/data/install.lock 还在，向导就不会再对外出现；
  确实要重装，先删掉这两个文件并把数据库清空。

  phpStudy 本机最常见的两个坑：数据库密码要填 root（phpstudy 的 MySQL root 密码是 root，
  不是空）；站点没建独立 vhost 时要用 http://localhost/laoli-toolbox/ 访问，
  直接敲 localhost 会被别的站点接走，看起来像「安装页打不开」。


四、伪静态（不配也能用，配了地址才短）
  根目录不放任何服务器配置文件，四套规则（宝塔 Nginx / phpStudy Nginx / Apache / IIS）
  整段写在 README.md 第二节第 4 小节，按你的服务器复制一次即可。

  宝塔最快的一条：网站 → 设置 → 伪静态 → 下拉选「自定义」→ 清空文本框 →
  把 README.md 里「宝塔 / 面板 Nginx」第一步那一块（从 location ~ ^/(app|storage)/ {
  到那个 if (!-e $request_filename) { ... } 的收尾 }）整段粘进去 → 保存。
  这个文本框只收 location 这类指令，不要连 server{ } 一起粘，
  粘了保存就报 "server" directive is not allowed here。

  同一节里的第二步是 PHP 段：宝塔默认只匹配 .php$，不带 PATH_INFO，
  /t/base64 这类地址会 404，要把 #PHP-INFO-START 到 #PHP-INFO-END 之间整段换成
  README.md 给的那块。改完 Nginx 要 reload 才生效（nginx -s reopen 只是重开日志，不换配置）。


五、后台与收尾
  后台入口：https://你的域名/admin/     用第三步设置的管理员账号密码登录。
  站点名字、LOGO、favicon、备案号、SEO 标题关键词、模板切换都在后台里改：
  「站点设置 → 站点信息」「站点设置 → 首页与 SEO」「模板中心」。
  想加分类、加工具、改每个工具要多少积分：「工具管理」「分类管理」。
  皮肤、成套的工具到官网 https://www.h47.cn/download/ 下载压缩包：工具包在后台「工具包」上传 zip 解压装入分类，
  主题包在后台「模板中心」上传 zip 解压安装；也可以自己 FTP 解压到 app/tools/<分类>/ 与 app/themes/<模板名>/，两条路等价。
  程序没有在线商店，也没有在线升级：版本更新是下载新版整包 laoli-toolbox.zip 自己 FTP 覆盖替换
  （步骤见 README.md 第二节第 6 小节），后台里的「应用商店」「版本更新」两页已经删除，直接敲这两个地址是 404。


六、授权（装完就是未激活，不用授权也能正常用）
  开箱未激活：60 款工具全部能用，按积分收费的那些在未激活时实收 0 分，直接点就行。
  未激活不带用户体系——注册、登录、积分签到、会员折扣、评论、收藏、积分榜都不出现，
  后台也不显示「用户管理」「评论管理」；自建分类、单页、本地工具按数量封顶，页脚强制保留程序署名。

  本程序免费发行，授权中心只签发一个档位：「免费授权（1 域名永久）」，没有免费版/高级版/永久版的分别。
  需要会员体系时：后台「站点设置 → 授权与激活」录入官网免费领取的授权码，点「联网激活」，
  校验通过就是已激活，上面的限制当场全部解除（前台页头出现登录注册入口、users/comments 可以进、
  自建内容不再设上限、页脚不再强制版权），没有更高档位可升。
  激活状态缓存在本站数据库，之后服务器出不了网也不会掉档；换域名或换码要再点一次「联网激活」。
  清空授权码就回到未激活。工具包、主题包与本地上传安装都不需要授权，未激活也能装。
  授权码按域名签发（1 个域名），换域名会被授权中心拒，这种情况联系客服。


七、六种常见情况
  1. 打开是空白页或 500
     多半是 app/、app/data/ 或 storage/ 不可写，或 PHP 低于 7.4。
     先看 storage/logs/php-error.log 和宝塔「网站日志」，有 Permission denied 就是权限问题。
  2. 访问首页不进安装向导，直接报错
     app/config.php 或 app/data/install.lock 残留了（上一版本机调试留下的）。
     删掉这两个文件再访问，就是全新安装。
  3. 第三步一直提示连不上数据库
     确认填的是刚建的空库、账号密码是从宝塔「数据库」页复制的；
     主机用 127.0.0.1，字符集 utf8mb4。
  4. 前台样式乱、/t/base64 这类地址打不开
     伪静态没配或没生效，按第四节贴规则，Nginx 改完要 reload。
     不想配也能用，走 /index.php/xxx 或 ?/t/xxx 的长地址即可。
  5. FTP 覆盖新版后前台还是老样子
     后台没有「版本更新」和「升级自检」这一页，自己按两条排查：一是 app/themes/light|dark/partial/
     里留了旧版分区文件（同名文件会顶掉新版，删掉即可，模板本身不用动）；二是 OPcache 关掉了文件时间检查
     （去「软件商店 → PHP → 重载/重启」）。覆盖完在后台「概览」看「程序版本」是不是新版本号。
  6. 忘记后台密码
     phpMyAdmin 里对本站的 user 表执行一条 UPDATE 把 password 换成新密码的哈希，
     具体语句在 README.md「九、安全与运维要点」；表前缀不是 laoli_ 就跟着改。


需要人帮忙：QQ 1735737677，交流群 1023163759。
