지난 2 시간 동안 내 머리카락을 꺼내 왔으며 정말 바보 같은 짓을하고 있다고 확신합니다.mkdir가 PHP에서 작동하지 않습니다
<?php
mkdir("blah", 0777);
?>
이것은 명령 줄을 통해 작동하며 폴더가 만들어집니다. 그러나 브라우저를 통해 실행하려고해도 똑같은 기능이 작동하지 않습니다. 모든 파일 사용 권한 문제?
지난 2 시간 동안 내 머리카락을 꺼내 왔으며 정말 바보 같은 짓을하고 있다고 확신합니다.mkdir가 PHP에서 작동하지 않습니다
<?php
mkdir("blah", 0777);
?>
이것은 명령 줄을 통해 작동하며 폴더가 만들어집니다. 그러나 브라우저를 통해 실행하려고해도 똑같은 기능이 작동하지 않습니다. 모든 파일 사용 권한 문제?
명령 줄에서 실행하는 동안 스크립트가 권한을 상속 받지만 브라우저에서 실행할 때 해당 권한이 상실 될 수 있습니까?
그런 경우 그룹에 대해 디렉토리 사용 권한 '쓰기'를 만들고 싶습니다.
하하! 10,000 평판! 후자! –
웹 서버 (아파치?)가 자신의 사용자, 그리고 당신이 MKDIR를 실행하는 디렉토리에 쓸 수있는 권한이 없습니다로 실행됩니다.
받는 쓸 수있는 웹 서버의 사용자 권한을 부여 디렉토리에 A) 소유권을 부여하거나, B) 그룹에 쓰기 권한이있는 경우 그룹에 추가하거나, C) 모든 사람에게 쓰기 권한을 부여합니다 (대부분의 설정에는 권장되지 않음).
동일한 문제가 발생했습니다. 해결되었습니다! 처음에는 mkdir을 사용하여 폴더를 만들 때 FTP가있는 폴더를 만들었습니다. 폴더를 삭제하고 스크립트로 작성되었는지 확인하여 해결합니다. – Pedro
umask
으로 시도해 볼 수 있습니다. PHP를 서버 모듈로 사용하는 경우 각 요청이 완료되면 umask가 복원됩니다.
$old = umask(0);
mkdir($path,0777);
umask($old);
나는 이걸로 오랫동안 붙어있었습니다. 당신이 SELinux에 있다면 "ls -alZ"로 볼 수있는 "Security Context"라고 불리는 여분의 권한 계층이 있습니다. 'chcon system_u : object_r : httpd_sys_content_t : s0 public_HTML'과 같은 것을 사용하십시오. – changokun