我有一個Linux服務器與Appache作爲Web服務器。在我的PHP腳本中,我使用0777
模式製作目錄。代碼很簡單如下:PHP的mkdir()權限
mkdir($path,0777)
當我運行該腳本,去到我的服務器的文件管理器,文件夾是有,但分配給該文件夾的權限是0755。我想不通爲什麼正在發生!!當創建的文件夾的用戶列已阿帕奇但權限是0755
我有一個Linux服務器與Appache作爲Web服務器。在我的PHP腳本中,我使用0777
模式製作目錄。代碼很簡單如下:PHP的mkdir()權限
mkdir($path,0777)
當我運行該腳本,去到我的服務器的文件管理器,文件夾是有,但分配給該文件夾的權限是0755。我想不通爲什麼正在發生!!當創建的文件夾的用戶列已阿帕奇但權限是0755
你應該與umask
$old = umask(0);
mkdir($path,0777);
umask($old);
你可以試試:
chmod (string $filename , int $mode)
看看是否能解決權限問題。
Apache的嘗試可能沒有權限改變這一點。你可以做的是。確保Apache與您當前的文件組在同一組中運行。然後apache將能夠對該文件進行更改。你可以在這個apache配置中更改你的apache組。或者最簡單的方法是將整個項目用戶更改爲apache用戶。然後apache可以做出想要的改變。
轉到文件從你的服務器,並輸入ls -al並期待在用戶和組
可能是你的umask:
<?php
$old = umask(0);
mkdir($dir,0777);
mask($old);
?>
的感謝!解決了這個問題...但仍然困惑爲什麼我的腳本能夠創建777文件夾權限? – samach
@Salmanmahmood:這是Linux中應該理解的東西http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html只是一個供您參考的鏈接 –
通常,umask是022,這意味着忽略任何組或其他寫入權限。所以如果請求的權限是0777,那麼授予的權限是0777-022 = 0755。 – MetaEd