2009-04-11 3 views
3

PHP 함수 mkdir ($ path, 0777)을 사용하여 Apache 서버 (Windows에서 실행)에 새 디렉토리를 만듭니다.PHP mkdir(), chmod() 및 Windows

폴더를 만들고 폴더를 볼 때 Windows는 해당 디렉터리를 읽기 전용으로 설정했습니다. cacls.exe에 exec()를 사용하지 않고 이것을 변경하는 방법이 있습니까? PHP 문서에서는 chmod()가 Windows에서는 작동하지 않지만 대체 메서드에 대해서는 아무 말도하지 않는다고 말합니다.

Google은이 문제에 조금 도움이되지 않는 것 같습니다.

편집 : 내 2 비트 교육 기관에서 수 분간 관리자와 이야기를 나눈 후, 학생들을위한 테스트 PHP 서버가 USB 드라이브를 사용하고있는 것으로 보입니다. 나는이 때려 머리 함께 할 수있는 뭔가있을 것이라는 점을 느끼고있다

+0

Windows는 Linux에 다른 권한 방법을 사용하기 때문에 chmod는 Windows에서 작동하지 않습니다. – Shard

+0

예, Windows에서 chmod()의 기능을 복제하는 방법을 찾고 있습니다. – Johnno

답변

2

다음 :

<?php 
mkdir("foo") 
?> 

윈도우 2000에 나를 위해 작동하지 않습니다 (어떤 모드 지정된주의) - 그것은 어떤 속성을 가진 폴더를 만듭니다 세트.

편집 : 권한이 부여 된 것일 수 있습니다. 명령 줄 &에서 위의 코드를 실행 해보십시오 어떻게되는지 :

C:> c:\php\pgp.exe 
    <?php 
    mkdir("foo") 
    ?> 
    ^Z 
+0

WinXP에 있는데 제대로 작동하지 않았습니다. 그것은 foo라는 dir을 생성하지만 읽기 전용 태그는 틱되어있다. (greyed out!) – Johnno

+0

또한 Apache/2.2.0 (Win32) 서버에서 PHP 버전 5.2.4를 테스트하고있다. 불행히도, 나는이 중 하나를 바꿀 수 없다. – Johnno

+0

5.2.3을 사용하고 있습니다. 죄송합니다. 더 이상 도움이되지 않습니다. 나는 약간의 인터넷 검색 및 문제에 대한 언급을 찾지 못했습니다. chmod() 예와 관련된 문제는 있지만 mkdir()이 아닙니다. –

1

는 PHP 문서에 따르면, 모드 매개 변수가 완전히 Windows에서 무시 (있지만 기본적으로 0777에, 당신은 그것을 지정할 필요가 없습니다 것입니다, 그래서 아무리 해도). 모드를 전혀 지정하지 않고 어떤 일이 발생하는지 확인하십시오. 어쩌면 뭔가 엉망이 됐을까요?

+0

어쨌든 더 이상 뭔가를 망칠 필요가 없으므로 매개 변수의 유무와 관계없이 동작이 동일합니다. – David

1

나는 윈도우에서 mkdir ("my dir name", 0777, true)와 같이 php와 cakephp에서 사용하고있다. 그것은 나를 위해 잘 작동합니다.

+0

0777은 Windows에서 표준이며, 다른 것은 지정할 수 없습니다. – David