2014-01-15 61 views
1

我想創建一個名爲「SYS」目錄下的文件目錄。PHP說目錄是可寫的,但不能創建一個目錄

我在測試這個特定的位置是否可寫。 PHP說是的,但是當我嘗試使用mkdir()函數時,目錄沒有被創建。

這是什麼原因造成的?

<?php 

mkdir("location/files/sys"); 

$iswritable = is_writable("location/files"); 

if(!$iswritable) { 

echo "Apache cannot write to this directory"; 

} 

else if($iswritable){ 
echo "Apache can write to this directory"; 
} 
?> 
+0

這是一個CLI或SAPI? 如果它是SAPI腳本,它將繼承Web服務器用戶權限,因此如果將目錄所有權更改爲Web服務器用戶(即.apache,apache2,httpd,www-data等),則可能會解決您的問題。 –

回答

-1

也許這可以幫助你

<?php 
    $created = mkdir('location/files/sys'); 
    if ($created === true) { 
     echo 'success'; 
    } else { 
     echo 'cant create dir'; 
    } 
+0

你能解釋一下投票嗎? –

0

當你運行一個PHP腳本,它繼承了Apache的用戶權限。在這種情況下,您應該爲組/用戶添加「寫入」權限。

用戶/組更改取決於您的操作系統/發行版。

在linux中(使用WWW的數據)

sudo chown -R youruser:www-data location/files/ 
sudo chmod -R g+s location/files/