[英]Giving PHP write permission in Apache
我對配置Apache比較陌生。
我有一個PHP腳本,它根據從$_GET
檢索的值編寫JSON文件。
<?php
file_put_contents('State.json', "{ do: '" . $_GET['do'] . "' }");
echo "Success";
?>
我通過創建XHR請求來運行該代碼。
Ally.xhr('/Cream/Foam?do=someCommand');
它返回的頁面說failed to open stream: Permission denied on line 3.
<Directory "~/Dropbox/Web">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
這些是給根服務器文件夾的權限。
我需要更改什么才能允許PHP寫入文件?
(我幾乎不知道上面的塊意味着什么。)
您需要檢查運行apache的用戶是否有權寫入目錄。
所以它是這樣的:
你的apache服務器就是進程。 該過程在某些用戶(例如www)下運行。 PHP在apache下運行。 因此,如果您嘗試使用PHP寫入目錄,那么就像用戶www登錄到服務器並嘗試在同一目錄中創建文件一樣。 因此,請檢查該目錄的所有者以及該目錄的權限。 你可以這樣做,例如通過ls -la
命令。 如果www
將是該目錄的所有者,您將100%安全...
您可以嘗試使用設置權限
用於php的chmod函數並將您的目錄設置為/ var / www,您通常具有足夠的權限。
使用以下命令在命令行中檢查文件權限:
ls -l /path/filename
或者通過ftp客戶端,如果你有ftp訪問文件/目錄。 如果沒有,你可以像Stony上面說的那樣改變位置。
檢查它嘗試寫入的文件/目錄權限。 確保Apache進程正在運行的用戶和/或組可寫。
還要檢查/ selinux / enforce的內容,檢查SELinux是否已啟用。 如果是,請將其禁用或確保在您要寫入的路徑上設置正確的標簽。
知道有時候絕對沒有辦法只使用PHP來解決這個問題。
這兩個解決方案是:
我經常發現后一種選擇效果最好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.