![](/img/trans.png)
[英]Solving 403 permission denied error on Apache even after Allow From All and Chmod 777?
[英]/bin/node permission denied after setting CHMOD 777
这是针对 Amazon EC2 linux 的。
我有一个运行 shell 脚本的 PHP 脚本。
所以在 shell 脚本里面是一个运行 node.js 的命令。
当我从命令行运行 PHP 脚本时,节点会执行。
当我从浏览器运行 PHP 脚本时,我在 apache 日志中收到此消息:
/home/ec2-user/.nvm/versions/node/v8.11.3/bin/node: Permission denied
这是在 /home/ec2-user/.nvm/versions/node/v8.11.3/bin/node 上执行 chmod 777 之后
我也做了 chown ec2-user:apache /home/ec2-user/.nvm/versions/node/v8.11.3/bin/node
此外,这里是结果:
$ ls -alrt /home/ec2-user/.nvm/versions/node/v8.11.3/bin/node
-rwxrwxrwx 1 ec2-user apache 34800111 Jun 12 22:40 /home/ec2-user/.nvm/versions/node/v8.11.3/bin/node
每个人都拥有完全权限,我怎么会收到“权限被拒绝”错误?
因此,如果我从命令行运行 PHP 脚本,这将再次完美运行。
好的,这完全是禁忌,但它暂时是一个黑客。
由于它在我的 AWS EC2 实例上运行,我只是通过安全组限制所有内容,只允许我允许的 IP 地址,因此对我来说是安全的。
您必须在 sudoers 文件中为 apache 组添加权限。
所以,首先:
$ sudo visudo
然后添加:
%apache ALL = (ALL) NOPASSWD: ALL
到文件末尾。 同样,这很糟糕,这是一种黑客行为,但它是当前的解决方法,无论如何我都会通过安全组中的 IP 地址限制对 EC2 实例的访问。
如果您想运行它,那么您可以转到/etc/sudoers
并将 apache 设为您的 sudo 用户,它将拥有在浏览器中运行该文件的 root 权限。 您必须进行的更改是:-首先找到该行
root ALL=(ALL) ALL
然后在它下面添加一行
apache ALL=(ALL) NOPASSWD: ALL
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.