루트 디렉토리에 php를 사용하여 폴더를 만들면 우분투에서 mkdir 오류가 발생합니다.


0

내 문제는 PHP 스크립트를 사용하여 폴더를 만들려고 시도하는 동안 다음과 같은 오류가 발생합니다. /opt/lampp/htdocs/.

mkdir () : 권한이 거부되었습니다.

우분투 시스템과 lampp을 사용하고 있습니다. 내 응용 프로그램에서 폴더를 만들 필요가 /opt/lampp/htdoc/ 파일의 임시 저장 용.

PHP 스크립트로 파일과 폴더를 동적으로 생성 할 수 있습니다.

내 폴더 소유자와 그룹을 확인하고 www-data : www-data로 변경했습니다. 내부 폴더와 동일하지만 여전히 같은 오류입니다.

다음은 폴더를 생성하기위한 코드입니다.

$old = umask(0); 
mkdir($UploadDirectory, 0777,true);
umask($old);

나의 $UploadDirectory 경로도 정확하다. /opt/lampp/htdocs/mydirectory.

StackOverflow에서 사용 가능한 모든 답변을 시도 했으므로 새로운 질문을 만들고 있습니다. 도와주세요.


PHP 구성을 언제든지 확인 했습니까? safe_mode 또는 basedir 설정 되었습니까? 해당 명령을 실행하는 스크립트는 어디에 있습니까? 왜 너는 umask?
Seth

답변:


0

우분투를 실행하고 있으므로 체크 아웃하십시오. AppArmor 이것이 당신이 쓰는 것을 방해 할 가능성이 있기 때문입니다. aa-logprof를 실행하고 프롬프트를 따를 수 있습니다.


0

저는이 질문에 여러 가지 답변을 해준 몇 안되는 다른 사이트를 발견했습니다. 그 중 어떤 것도 저에게 효과가 없었습니다. 제 경우에 종지부를 찍은 답을 포함 시켰습니다. 이 정보가 어떤 사람들에게는 최소한 도움이되기를 바랍니다.

나를 위해 일하지는 않지만 어떤 사람들에게는 효과가있을 수있는 해결책은 다음과 같습니다.

$old = umask(0);
mkdir("/path/some_dir/", 0755, true);
umask($old);

다소 특이한 행동으로 나를 위해 일한 사람 :

$old = umask(0000);
mkdir("/var/www/html/somewebsite/images/somefolder/somefolder/", 6640, true);
umask($old);

생성 된 폴더는 640 권한으로 끝나는 것 같습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.