PHP 以 root 用户身份创建文件,而不是 nginx

PHP 以 root 用户身份创建文件,而不是 nginx

我已经在 Debian Stretch 上建立了一个新服务器。

Web 服务器用户是 nginx:

ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1

nginx

我已经将Web服务器路径设置为775并递归设置nginx。

chown -R nginx:nginx /var/www/html/
chmod -R 775 /var/www/html 

当我创建文件时,用户是具有以下权限的 root 用户:

<?php file_put_contents ('/var/www/html/settings/test.json', 'Test file'); ?>
php test.php

-rw-r--r-- 1 root root 9 Apr 29 09:19 /var/www/html/settings/test.json

我还可以尝试什么?

答案1

如果您以 root 身份登录并从命令行运行 PHP,则 PHP 二进制文件将以 root 身份执行。这意味着它创建的文件归 root 所有。

为了正确测试您的设置,您需要通过 http/nginx 调用来执行 PHP 脚本。例如:

curl http://example.com/test.php

相关内容