我有一个 PHP 脚本,使用以下命令运行exec()
/root/gsutil/gsutil <COMMAND>
在我的错误日志中我收到以下内容:
sh: 1: /root/gsutil/gsutil: Permission denied
有人知道我该怎么做才能让我的 php 脚本运行该命令吗?
答案1
/root 下的任何内容通常都归 root 用户所有。PHP 通常不会(出于安全原因,永远不应该)在 root 用户下运行。您应该将 安装gsutil
在 PHP 具有执行权限的位置。例如,将其复制到/var/www
:
cp /root/gsutil/gsutil /var/www/gsutil
我认为在 Ubuntu 下 PHP 通常以www-data
用户身份运行(但不是 100% 确定),因此您需要将文件的所有权更改为该用户:
chown www-data.www-data /var/www/gsutil
最后,通过设置 chmod 770 确保该文件对于拥有的用户/组(www-data)是可执行的:
chmod 770 /var/www/gsutil
然后设置您的 PHP 脚本来运行/var/www/gsutil
,一切都应该正常运行。