Linux
PHP以root使用者而不是nginx創建文件
我在 Debian Stretch 上設置了一個新伺服器。
網路伺服器使用者是 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
我還能嘗試什麼?
如果您在以 root 身份登錄時從命令行執行 PHP,那麼 PHP 二進製文件將以 root 身份執行。這意味著它創建的文件歸根使用者所有。
要正確測試您的設置,您需要通過 http / nginx 呼叫 PHP 腳本來執行它。例如:
curl http://example.com/test.php