在服务器上执行以下命令:
[root@server wwwroot]# php ./thinkCould not open input file: ./think
会提示无法打开指定脚本文件
[root@server wwwroot]# php thinkCould not open input file: think
当前目录下think文件是实打实存在的
同样的yii框架下的命令行builder功能,也是提示无法打开脚本文件
已经找到原因,但是不知道怎么修复。
原因是 php命令的[工作目录]不是[终端所访问的当前目录]
php 参数需要提供完整文件路径,但是!但是!一旦提供完整路径,php脚本文件内使用include和require函数引用的文件就会出现各种无法加载 因为绝大多数框架为了通用性和可移植性,使用的都是相对路径。
而自己在终端安装的php(包含源码编译和包管理器以及其他第三方一键环境) 当使用命令行方式执行php脚本文件时工作目录是当前目录。
不晓得是小皮刻意如此还是bug,按道理应该默认当前目录为工作目录的,zip cp mv 等等命令都是默认当前目录。
原帖:https://www.xp.cn/wenda/29073.html
原帖猪哥给予了回复,但是可能猪哥理解错了,我跟楼回复好像社区没有强消息提醒功能所以重开一贴。
猪哥可以通过以下方式重现这bug:在安装linux版小皮的主机里 新建站点或者干脆在root目录下新建一个php文件,一句 phpinfo();保存为任意文件名, 然后命令行 执行 php thisfile,会提示无法打开这个文件 然后 php -i 就会提示pwd是php的二进制文件所在目录,也就是说 php没有切换到当前目录,而自己编译或者包管理器安装以及其他的对标产品没有这个现象或者说bug