Linux

PHP以root使用者而不是nginx創建文件

  • April 30, 2019

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

引用自:https://serverfault.com/questions/965073