我正在以www-data的身份运行,并尝试使用shell_exec(/foobar/script/myscript.sh)执行shell脚本,但是当脚本尝试写入日志文件时出现以下错误

cannot create /foobar/foo.log: Permission denied

但是,如果尝试直接从终端运行脚本,则不会遇到任何问题。即
$ sudo su www-data
$ /foobar/script/myscript.sh
$

知道这里可能发生什么吗?

我还应该补充一点,我将www-data添加到了mybar组中,这就是我列出目录时显示的内容
drwxrwxr-x 3 mybar mybar  4096 May 14 14:18 foobar     # ls -l /


-rw-rw-r-- 1 mybar mybar 2824 May 15 09:57 foo.log     # ls -l /foobar

最佳答案

我认为可以有两种选择:

  • Web服务器和php-fpm在不同的用户下运行(默认情况下不应如此)。试试echo shell_exec('whoami');
  • 您已经在启动php-fpm进程后将www-data添加到mybar中,因此它仍然“不知道”它是什么(然后我认为重新启动fpm应该会有所帮助)。
  • 09-09 20:39