小編在使用PHP寫檔案上傳至伺服器時,遇到了「failed to open stream permission denied」,雖然有不少網路文章說將上傳的目錄權限改為「777」任何人均可寫入即可排除,但這樣做雖可以完成檔案上傳,但對安全而言實在有點風險。
小編後來有找到比較好的排除方式,分享給大家參考。
步驟一、找出PHP執行時是透過哪個帳號權限進行
vi who.php
<?php
echo getenv(‘APACHE_RUN_USER’);
?>
步驟二、透過網頁瀏覽「who.php」
步驟三、變更資料夾權限及擁有者後即可順利上傳檔案
變更資料夾擁有者語法:
chown www-data tmp
變更資料夾權限語法:
chmod 0755 tmp
輔助說明:「tmp」為本範例中要上傳檔案的資料夾名稱,請自行變更為實際需要的資料夾名稱。