用Visual Studio Code启动PHP站点时logger.php自动删除如何解决
VS Code 启动PHP站点时logger.php自动删除问题排查方案
常见触发原因定位
- 先给项目路径下的
logger.php手动设置只读权限,再重新启动站点流程:- 如果设置只读之后文件不再消失,说明是本地项目代码、VS Code插件主动执行了删除逻辑
- 如果设置只读后程序直接抛出文件权限报错,顺着报错堆栈就能直接定位到执行删除操作的代码文件位置
- 核查VS Code运行类插件的默认配置:
- 常用的PHP站点启动插件(比如PHP Server、本地预览类插件)大多带启动前自动清理临时文件的规则,
logger.php因为文件名带日志类关键词,很容易被误判为需要清理的过期临时文件,被插件主动删除 - 临时关闭所有带文件监听、自动同步属性的插件,重新启动站点排除插件误操作的可能
- 常用的PHP站点启动插件(比如PHP Server、本地预览类插件)大多带启动前自动清理临时文件的规则,
代码与环境侧排查
- 全局检索项目内所有PHP文件中的删除类逻辑:重点找
unlink()、exec("rm ...")、自定义文件清理函数这类会主动删除文件的代码片段,确认是否存在匹配logger.php文件名的删除规则 - 检查本地PHP运行环境的安全拦截规则:部分PHP扩展、站点框架自带的安全加固脚本,会自动扫描根目录下的可执行文件,把带日志命名属性的陌生PHP文件判定为恶意程序触发清理——你从好友处拷贝的项目在对方环境能正常运行,到你本地被删除,大概率是你本地环境的安全扫描规则触发了清理
- 核查项目的
.gitignore配置与Git插件设置:如果你的VS Code装了Git集成插件,且开启了自动清理未跟踪文件的功能,要确认logger.php是否被误列在忽略条目里,被插件判定为无用文件自动移除
快速验证的临时方案
- 复制一份和原
logger.php完全一致的内容,将文件重命名为loghelper.php,把项目内所有引用该文件的路径全部替换为新文件名,再启动站点测试:如果重命名后文件能稳定留存,说明原文件名命中了某层自动清理的规则,替换后即可解决 - 新建一个完全空白的临时文件夹作为站点根目录,把项目内所有文件拷贝到这个新文件夹后再启动测试,避开原项目文件夹内可能残留的自启动清理脚本干扰
内容的提问来源于stack exchange,提问作者Jaroda2000
相关产品推荐
相关产品推荐

