http 服务器 apache 无法通过 php 调用根目录外部 shell 脚本 以及 调用根目录内部 shell 脚本时无法通过 shell 脚本创建文件

这是所有者权限问题导致(例如 shell 脚本所在的目录的所有者为 root),对于 shell 脚本在根目录内的情况,只需执行下面这条指令就可以了
更改文件所有者命令(以 root 用户登录)(-R 表示递归执行,也就是说会修改根目录及其包含的所有目录和文件的所有者)
chown -R apache:apache 网站根目录的绝对路径

对于 shell 脚本在根目录之外的情况,需要将脚本的绝对路径的每一级文件夹的所有者进行修改,例如,脚本的绝对路径是 /root/test/test.sh,那么,需要将 root 和 test 文件夹的所有者都修改成 apache,至于test.sh 文件本身的所有者需不需要修改,这个不太确定。

另外,需要说明的是,对于根目录内的 shell 脚本,即使不对根目录执行 chown -R 命令,shell 脚本本身也是能被执行的,只是无法通过 shell 脚本执行创建文件的命令(修改文件行不行我没有测试)。对于根目录外的 shell 脚本,不对脚本的绝对路径的每一级文件夹修改所有者的话,脚本本身是无法执行的。

另外, 如果你访问网站内容时出现了权限方面的提示(经常发生在你手动添加到网站目录中的文件权限不对), 或者你安装插件时提示你要校验ftp账户密码(其实也是权限问题), 一般也是执行下面这条命令就可以了
chown -R apache:apache 网站根目录的绝对路径

此条目发表在 笔记 分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>