我正在Amazon Linux 2的aws ec2实例上运行httpd。
我使用this link.来安装LAMP堆栈,该实例运行良好。
我需要使用shell_exec('sh somescript')
从php执行shell命令。然后,脚本实习生使用sudo mkdir foldername
创建一个文件夹。永远不会创建此文件夹。
因此,我直接写shell_exec('sudo mkdir foldername')
。不起作用。
我尝试了shell_exec('whoami')
。输出apache
(由于我是从安装中创建的组。)
我尝试过的其他事情:
httpd.conf
中更改用户和组。(给出错误503,如果我使用ec2-user,而如果我使用root则不启动,这是注释所要求的。)我的问题:
当ec2-user是apache组的用户时,当httpd以apache用户/组运行时,为什么不能从php创建文件夹?
以ec2-user作为用户和组使用httpd是否安全?如果可以,怎么办?如果不是,那是什么?
答案 0 :(得分:0)
我能够自己解决此问题。 为了将来参考,我要做的就是重新启动实例和所有服务。
我不必更改httpd的用户或组。尽管我仍然不确定这样做是否安全,但是没有它我还是可以解决的。