2012-07-30 2 views
-4

아파치 서버에 디렉토리를 생성해야하지만, coomand를 인식하지 못하는 것처럼 보입니다. 이것은 내 코드입니다.아파치 서버의 PHP mkdir

<?php 



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

?> 

제가 "생성"나는 출력으로서 가지는 file.php을 시작할 때 디렉터리가 존재하지만 디렉토리가없는 경우 나 수표 쉘을 사용한 후에. 누구든지 나를 도울 수 있습니까?

+3

[오류보고 사용] (http://stackoverflow.com/questions/845021/how-to-get-useful-error-messages-in-php) 및'mkdir()'의 반환 값을 확인하십시오. 성공을 나타내는 부울입니다. – CodeCaster

+0

오류가 무엇이든, 그것은 거의 확실하게 물었습니다 http://stackoverflow.com/search?q=%5Bphp%5D+mkdir –

답변

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

+0

나는 대답을 편집했다. 디렉토리를 만들고자하는 경로에 따라'$ path' 변수를 설정하면됩니다. – fdomig

+0

경로가 좋지 않습니다. 올바른 경로를 어떻게 확인할 수 있습니까? 왜냐하면 나는 그 폴더를 아파치에서 만들어야 만하지만 다른 dir은 실제로 작동하는 dir과 다르다. – Edivad

0

이이

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

이 시도 읽어이 시도

<?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

경로가 좋지 않지만 어떻게 올바른지 확인할 수 있습니까? 통로? 왜냐하면 내가 아파치에서 그 dir을 만들어야 만하지만 현재 작업 디렉토리의 다른 dir에있다. – Edivad

0

을 할 수있는 권한이 없습니다 수 있습니다 -

<?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 스크립트가 dired에 대한 쓰기 권한이 있습니다. ctory /var/www/. is_writable()가 알려줍니다.

다음 : 상대 경로를 사용 중이므로 스크립트가 자체 위치를 기준으로 디렉토리를 만들려고합니다. 넌

해야

a) (/var/www/...)

또는

B)는 상대 경로를 사용하지만, 그 자체에있는 경로 file.php없이 (예를 들어 절대 경로를 사용 file.php가 = /var/www/file.php 상기 인 mkdir("devData/",0777); 사용).

기타 : 물론 작성한 이유는 무엇이든지 인쇄하기 때문입니다. 당신이 말할 수 있도록하려면 "창조"아무 잘못없는 경우에만, 현재 디렉토리를 찾기 위해 PHP 함수와 복잡성을 줄일 수 있습니다

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

다음 코드를 사용해보십시오.

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

    } 

이 항목은 정상적으로 작동합니다. 상위 디렉토리가 쓰기 가능한지 확인하십시오.