2012-11-30 3 views
2

다음 작품 :PHP Mkdir이 재귀 적으로 실행되지 않습니까? 창에서

mkdir('../my/folder/somewhere/on/the/server', 0777, true); 

내가 약 PHP mkdir을 이야기하고있다.

완벽하게 작동하며 하위 폴더를 재귀 적으로 만듭니다. 그러나, 리눅스 서버에서 같은 명령을 실행하면 폴더가 생성되지 않습니다.

이전에는 경로를 분할하고 각 폴더를 하나씩 생성하여이 문제를 해결했습니다. 하지만 "resurive"플래그가 true로 설정된 상태에서 작동해야하므로이 작업을 수행하고 싶지 않습니다. 왜 작동하지 않는거야?

+0

PHP, 명령 행 아님. – coderama

+0

매뉴얼 페이지 - http://linux.die.net/man/1/mkdir –

+0

나를위한 작품 (PHP 내부)을 읽는 것이 유용합니다. – arkascha

답변

3

죄송 합니다만, mkdir 명령 자체와 별개로 문제가 있어야합니다.

이 작은 예는 예상대로 작동하고 반복적으로 리눅스에서 실행될 때 나를 위해 디렉토리를 작성합니다

#!/usr/bin/php 
<?php 
mkdir ('testdir/testdir2/testdir3',0777,TRUE); 
?> 
1

이 ...

  • 루트 경로가
  • 루트 경로가
  • 항상 실제 경로를 사용 ..를 사용하지 마십시오 쓸 수 있는지 확인 있는지 확인을 발견 한 것입니다

$fixedRoot = __DIR__; 
$recusivePath = 'my/folder/somewhere/on/the/server'; 

if (is_writable($fixedRoot) && is_dir($fixedRoot)) { 
    mkdir($fixedRoot . DIRECTORY_SEPARATOR . $recusivePath, 0, true); 
} else { 
    trigger_error("can write to that path"); 
} 
+0

Didnt work. 폭발로 각 폴더를 하나씩 만들 수 있습니다. – coderama

+0

'error_reporting (E_ALL);을 추가하십시오. ini_set ("display_errors", "On");'또한'var_dump' 출력을보고 싶습니다 .... – Baba

1

은 PHP 사용자 (예 : www-data) 폴더의 상위 폴더에 쓸 수있는 권한이 있는지 확인하십시오 그것은 창조하려고합니다. PHP는 이미 존재하는 가장 낮은 것에 쓸 수 있어야합니다. ../my이 이미 존재하는 경우

예를 들어, ../my/folder/somewhere/on/the/server의 경우, PHP는 ..하지만 my에, mkdir이 실패하지에 쓸 수 있습니다.

사용자가 www-data 인 경우 sudo chown -R www-data:www-data ../my을 사용하여 my 및 모든 하위 폴더에 대한 쓰기 권한을 부여 할 수 있습니다.

관련 문제