2014-04-08 5 views
0

우분투의 /tmp 디렉토리에 데이터를 쓸 수 있지만 /var 디렉토리 또는 Desktop에 쓰기와 같은 다른 디렉토리의 경우 내용을 쓸 수 없습니다. 이 디렉토리에서 파일을 편집, 수정 및 읽을 수 있지만 PHP 코드를 통해서만 작성하면 /tmp 디렉토리에 내가 쓸 수있는 권한 문제 또는 다른 것입니까? 두 번째 $output가 작동하지우분투 12.04에서 특정 디렉토리에 쓰기

$output = "/tmp/image5.png"; 
//$output = "/home/anand/Desktop/image5.png" 

file_put_contents($output, curl_exec($request)); 

다음과 같이

내 코드입니다.

+0

함수의 반환 값은 무엇입니까? 매뉴얼을 보아라 : 실패한 경우'false'를 리턴 할 것이다. '/ var /'에 글을 쓸 때 루트 권한이 필요합니다. 콘솔에 있다면 sudo php yourscript.php를 실행하십시오. – halfer

+0

일시적으로 sudo chmod ugo + rwx *를 사용하여 권한을 변경했으나/home 또는/var에 상관없이 파일을 디렉토리에 쓰지는 않습니다. – anand

+0

먼저 간단한 문자열을 사용해보십시오. 아마도 'curl'함수에 실패했을 것입니까? – halfer

답변

1

허가 문제입니다. 모두가 모든 사람의 폴더에 글을 쓸 수 있다면 어떻게 될지 상상해보십시오. 또는 삭제하십시오.

PHP 스크립트가 아파치 사용자 (www-data)에서 실행 중이기 때문에 php 스크립트에 쓰기 권한이 없으므로 PHP 스크립트에서 데스크탑에 쓸 수 없습니다.

/tmp 디렉토리에 쓸 수 있습니다. 해당 파일은 임시로 저장되며 모든 사람이 해당 폴더에 쓸 수 있기 때문입니다.

예를 들어 특정 폴더 (예 : /home/anand/Desktop/)에 쓰기를 원하면 www-data (데스크톱 폴더에는 권장하지 않음) 또는 chmod 777 /home/anand/Desktop을 사용하여 모든 사용자에게 쓰기 권한을 부여해야합니다 이후 다른 사용자가 귀하의 데스크톱에 글을 쓸 수 있습니다.)

관련 문제