php函数file_exits,copy,shell_exec不在一台机器上工作,但相同的代码在不同的机器上工作
Posted
技术标签:
【中文标题】php函数file_exits,copy,shell_exec不在一台机器上工作,但相同的代码在不同的机器上工作【英文标题】:php functions file_exits, copy, shell_exec not working on one machine but same code working on different machine 【发布时间】:2016-11-19 11:58:23 【问题描述】:我是一台 Centos 7 机器,我在上面配置了 Apache 和 Slim 框架的 php。
检查文件是否存在并将代码复制到目录中的简单代码在其中一台机器上运行良好,但在另一台机器上运行不正常。真的很奇怪。
其实我是通过Apache访问API来触发这个功能的。
shell_exec 等函数总是返回 0 复制功能也不起作用 file_exists 也不起作用。
任何帮助或线索为什么这是错误的或调试此问题。
【问题讨论】:
可能是open_basedir或safe_mode_exec_dir或事件disable_functions的不同设置? 我第二次 Alon 关于 php 安全设置 .ini 文件的观点。还要确保打开 error_reporting 以查看遇到的任何错误。 我尝试进一步调试它,发现它适用于普通的 php 脚本,但是当从 apache (web) 调用相同的脚本时它不起作用。检查 open_basedir/disable_function 没有配置所以仍然想知道为什么它不能从 apache 工作 【参考方案1】:感谢大家的帮助。
问题是文件权限问题。 原因是我执行的所有上述功能都在文件中。由于文件对不同的用户有不同的权限。
所以如果我从浏览器中点击 URL,那是通过“Apache”用户,该用户对文件夹没有执行权限来访问文件和读取文件的权限。
总之
sudo chmod +rx 文件
sudo chmod +x "所有目录结构"
【讨论】:
以上是关于php函数file_exits,copy,shell_exec不在一台机器上工作,但相同的代码在不同的机器上工作的主要内容,如果未能解决你的问题,请参考以下文章