主机是一个系统:先确认事实,再修改任何东西
主机问题很容易看起来像“脚本坏了”,但真正原因可能是 PHP 版本、缺少扩展、文件系统已满、权限、网络路径或邮件传输。先描述你实际拥有的机器,终端工作会平静很多。
同一个项目在不同主机上可能表现不同
文件可以完全相同,运行环境却不同。PHP 版本、已加载扩展、文件系统限制、所有者、权限、时间、网络访问和服务器策略都会影响应用实际能做什么。
所以第一个有用的问题不是“我要改什么?”,而是“它现在运行在什么环境里?”。终端擅长把模糊的“环境”变成可以检查的事实。
先用一屏信息建立基准
健康摘要并不能证明每个应用都健康。它是一条基线:在深入排查之前,快速发现机器、Core 或运行环境是否和你以为的一样。
coredoctor -qsys hostsys uptimePHP 能力只有在当前运行环境真正提供时才存在
缺少能力和命令写错不是一回事。与其随机寻找替代方案,不如接受清晰的能力错误:先确认扩展,再决定启用它、换工具,或者把任务放到别的环境。
php versionphp modulesphp info memory -cdoctor extensions剩余空间、目录占用和权限是三个不同问题
不要用“让所有东西都可写”来修权限。先检查所有者和权限模式,只改变真正需要改变的最小目标,再次验证。权限是本地访问边界,不是身份验证或加密的替代品。
disk .disk . -rstat .删除、重启或猜测之前,先读日志
有用的日志行包含上下文:时间、组件、请求或操作,以及真实错误。任何“清理”之前先保留这些上下文。很多棘手故障一旦能准确回答“故障从什么时候开始、附近发生了什么变化”,就会变成普通问题。
log -l环境值和邮件是独立子系统,值得单独测试
env server SERVER_ADDRenv TMPmail修复之前先保存基准信息
修改 PHP 设置、模块、权限或主机配置之前,把紧凑报告重定向到 diagnostics/。修改完成后再收集同样的报告,用事实比较,而不是依赖“现在好像更好了”。
这个习惯不只适用于 lil-terminal。在 Linux、macOS、Windows、容器和控制面板中,好的诊断都遵循类似顺序:识别环境、隔离层级、收集证据、只改一件事、验证。
md diagnosticsdoctor -j > diagnostics/doctor.json -rsys > diagnostics/system.txt -rphp version > diagnostics/php.txt -r把它保存成脚本
把它保存为 hosting-baseline.lil。它把一份紧凑的诊断快照写入 diagnostics/,不会修改应用数据。主机变更前后都保留快照:比较通常比记忆更可靠。
#lil
@install md doctor sys php disk log env
md diagnostics
core > diagnostics/core.txt -r
doctor -q > diagnostics/doctor.txt -r
sys > diagnostics/system.txt -r
php version > diagnostics/php.txt -r
disk . > diagnostics/disk.txt -r
log -l > diagnostics/logs.txt -r
env server SERVER_ADDR > diagnostics/server.txt -r