我有一个简单的脚本,可以为每个注册的用户创建文件夹,它在本地工作得很好,但在推送到实时服务器后它不起作用......我发现它需要 sudo
密码。我四处搜索,所有人都建议我应该通过运行 visudo 来编辑 sudoer,但没有任何效果。
$sudoPassword = \Config::get('app.sudoPassword');
$sudo = "echo $sudoPassword | sudo -S ";
$createDir = "cd ../../merchants && mkdir ".$merchant->identity." && cd ".$merchant->identity;
echo exec($createDir);
我的问题是,我应该如何让 exec 以 root 身份运行?我在 digitalocean 中使用 centOS
最佳答案
我不建议将脚本运行为 sudo
.更好的选择是授予 Web 服务器(www-data
用户)写入 ../../merchants
的权限。目录。
首先将自己添加到 www-data
通过运行以下命令进行分组。
usermod -a -G www-data <your-username>
然后给出
merchants
的所有权文件夹到 www-data
使用以下命令进行分组。chgrp www-data merchants
最后给予
merchants
正确的权限使用以下命令的文件夹。chmod g+rwxs merchants
希望这可以帮助您解决问题。
编辑
在 CentOS 上,您应该使用
apache
而不是 www-data
.
关于php - 如何在实时服务器上使用 sudo 运行 php exec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60376585/