Linux

上傳文件的寫入權限 - Linux、Apache、PHP

  • May 18, 2010

我正在研究一個使用 FTP 函式傳輸文件的 PHP 腳本。它一直在我的生產伺服器(這是一個託管服務)上工作。我剛剛設置的開發伺服器(我是伺服器新手)是 Debian Lenny,帶有 Apache2、PHP5 和 MySQL5。

文件傳輸正常,但是一旦文件被寫入伺服器,它的權限為 600。這使我無法在 Web 瀏覽器中查看文件 (JPEG),因為權限被拒絕。我搜尋了網際網路,甚至破壞了我的伺服器安裝並重新安裝它試圖解決這個問題(儘管如此,這很有趣!)。

我知道777對公共可訪問文件設置權限是不明智的,但即使這樣也不能解決問題。唯一有效的是,如果我chmod 777 thefile.jpg 它被轉移之後,這不是一個有效的解決方案。

我嘗試將我的站點文件的所有者更改為www-dataper this post,但這也不起作用。

我的使用者是,無論文件的所有者是還是mike,它仍然不起作用。mike``root

有人會指出我正確的方向嗎?謝謝!當然,如果我能澄清任何事情,請告訴我。

這與您的 ftp 伺服器配置更相關,與 apache 無關。您使用哪個伺服器進行 ftp?我相信 vsftpd 是 Debian Lenny 的預設 ftp 伺服器,您可能需要在vsftpd.conf文件中查看的選項是:chown_upload_modefile_open_mode

預設設置chown_upload_mode0600讓我認為這可能是您需要設置的,然後重新啟動您的 FTPd 並重試。

聽起來 Apache 未配置為從文件保存到的目錄中提供文件。您需要確保 Apache 配置中有一個Directory指令,該指令允許訪問文件所在的目錄。例如:

<Directory "/home/mike/uploads">
 Order allow,deny
 Allow from all
</Directory>

此外,www-data 使用者需要具有遍歷指向該目錄的目錄樹的權限。例如,如果文件位於/home/mike/uploads,home並且mike必須uploads允許其他使用者執行權限。

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