今天在一台开发服务器上遇到一个奇怪的问题,通过WEB方式访问PHP程序 file_exists() 总是返回false,试了很多文件和目录都不行。开始以为是 safe mode 的问题,但是 php.ini 中的safe_mode 选项值是 Off。接着又在命令行以 root 账号执行测试程序,file_exists() 一切正常,没有任何问题。最后我切换成 nginx / php-cgi 的运行账户 www 在命令行执行测试程序,也是正常的。
此时,处于崩溃边缘。。。无意中发现该程序的所有者是 root:root,顺手将其改为 www:www,然后刷新页面竟然好了?!无语了,问题原因不明,反正解决了。