2012-07-30 63 views
-4

我必須在apache服務器上創建一個目錄,但是看起來好像不能識別coomand。這是我的代碼。Apache服務器上的Php mkdir

<?php 



mkdir("var/www/devData/",0777); 
print "created"; 

?> 

當我啓動「創造」的file.php我有作爲輸出,但之後我使用shell進行檢查,如果該目錄存在,但沒有目錄。 任何人都可以幫助我?

+3

[啓用錯誤報告](http://stackoverflow.com/questions/845021/how-to-get-useful-error-messages-in-php)並檢查mkdir()的返回值,它是一個表示成功的布爾值。 – CodeCaster 2012-07-30 13:31:05

+0

無論錯誤是什麼,它幾乎肯定被問到http://stackoverflow.com/search?q=%5Bphp%5D+mkdir – 2012-07-30 13:39:10

回答

2
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

// a new directory in your current working directory (cwd) 
$path = dirname(__FILE__) . "/your/path"; 

if(!mkdir($path, 0777, true)) { 
    echo "Failure"; 
} else { 
    echo "Success"; 
} 

我假設您沒有創建該路徑的權限。您可以檢查您是否可以使用is_writable()寫入該目錄mkdir() documentation告訴您更多信息。

+0

因爲我認爲路徑不正確,但我怎麼知道correc路徑?我工作在不同的路徑,我想創建文件夾如何設置路徑? – Edivad 2012-07-30 13:41:30

+0

我編輯了答案。您只需根據要創建目錄的路徑設置'$ path'變量。 – fdomig 2012-07-30 13:45:50

+0

路徑不好如何檢查正確的路徑?因爲我必須在apache中創建該文件夾,但在另一個不同於目錄實際工作的目錄中的文件夾 – Edivad 2012-07-30 13:50:34

0

你可能沒有權利這樣做 嘗試

<?php 
     $new_folder = "var/www/devData"; 
     if(!mkdir($new_folder,0777,true)) { // true = for recrusive createing 
     echo "Can't creating ".$_SERVER['DOCUMENT_ROOT']."/".$new_folder; 
     } 
     else 
     echo "Successful creating ".$_SERVER['DOCUMENT_ROOT']."/".$new_folder; 
?> 
+0

路徑不好,但我怎麼檢查正確路徑?因爲我必須在apache中創建該目錄,但在我當前工作目錄的另一個目錄中 – Edivad 2012-07-30 13:49:25

0

閱讀本

http://php.net/manual/en/function.mkdir.php

試試這個: -

<?php 
// Desired folder structure 
$structure = './depth1/depth2/depth3/'; 

// To create the nested structure, the $recursive parameter 
// to mkdir() must be specified. 

if (!mkdir($structure, 0, true)) { 
    die('Failed to create folders...'); 
} 

// ... 
?> 
0

首先確保業主的您的file.php腳本可以直接訪問該文件ctory /var/www/is_writable()會告訴你。

然後:您正在使用相對路徑,因此腳本嘗試創建相對於其自己位置的目錄。您將需要

一)使用絕對路徑(/var/www/...

B)使用相對路徑,但沒有本身所在的路徑file.php(如:file.php是= /var/www/file.php,該使用mkdir("devData/",0777);)。

另外:它當然說「創建」,因爲你打印出來不管是什麼。如果你想只在沒有任何錯誤的情況下說「已創建」,請嘗試

if (mkdir("devData/",0777)) { 
    echo "created"; 
} 
else { 
    echo "something went wrong..."; 
} 
1

以下代碼可能會降低php函數查找當前目錄的複雜性。

$thisdir = getcwd(); //current directory 
    if(mkdir($thisdir ."/mydir", 0777)) 
    { 
     echo "Directory has been created successfully..."; 
    } 
    else 
    { 
     echo "Failed to create directory..."; 

    } 

這東西很好用。確保你的父目錄是可寫的。