用PHP执行bat文件的路径问题
背景:做一个游戏的管理后台,需要通过接口去调用执行服务器上的bat脚本,bat脚本是游戏开发那边写好的,就是启动区服、关闭区服之类的。之前这些操作都是技术远程登录游戏服务器去执行脚本,现在为了控制不让频繁登录游戏服务器,把这些都集成到了管理后台,直接一键执行。然后就遇到了很奇怪的现象,有些脚本能正常执行,有些脚本执行了没效果。这些脚本在服务器上直接运行都是没问题的,写脚本的就说是php这边调用的问题,让我排查处理。
我这边也是反复调试,折腾了很久,终于从一个脚本里面找到了突破口。就是有一个脚本的功能是需要更新svn代码之后,重启游戏进程,但是接口调用的时候报错了,导致旧的窗口没有关掉,报的错误是说“svn不是内部或外部命令”,我猜想可能是路径的问题,把svn的路径补全之后,果然正常了。
所以就是要把所有的路径都补全,用绝对路径来执行
用CLI模式测试了下,在CLI下是不用补全路径的,应该就是FPM模式下的问题。