我已经在 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