2016-07-16 84 views
0

我是一个Centos 7机器,我用Apache和Slim Framework配置了PHP机器。php函数file_exits,copy,shell_exec不能在一台机器上工作,但是在不同机器上工作的代码相同

检查文件是否存在并将代码复制到目录中的简单代码在其中一台机器上工作正常,但在另一台机器上无法工作。它真的很奇怪。

其实我是通过Apache访问API来触发这个函数的。

功能像shell_exec alaways返回0 复制功能也没有工作 file_exists也无法正常工作。

任何帮助或线索为什么这是错误的或调试此问题。

+1

可能是[open_basedir的](HTTP的不同的设置:// PHP .net/manual/en/ini.core.php#ini.open-basedir)或[safe_mode_exec_dir](http://php.net/manual/en/ini.sect.safe-mode.php#ini.safe- mode-exec-dir)或事件[disable_functions](http://php.net/manual/en/ini.core.php#ini.disable-functions)也许? –

+0

我第二次Alon在php的安全性上指出.ini文件。还要确保error_reporting处于打开状态,以查看遇到的任何错误。 – jirka

+0

我试图进一步调试它,发现它是为一个普通的php脚本工作,但是当相同的脚本从apache(web)调用时,它不起作用。检查open_basedir/disable_function没有配置,所以仍然想知道为什么它不能从Apache工作 – nirajkumar

回答

0

谢谢大家的帮助。

问题是文件权限问题。 原因是我所执行的上述所有功能都在文件上。由于这些文件对不同的用户具有不同的权限。

因此,如果我从浏览器中打开URL,它是通过“Apache”用户,该用户对该文件夹没有执行权限来访问文件并读取该文件的权限。

总之

须藤使用chmod + RX文件

须藤使用chmod + x “的所有的目录结构”

相关问题