2013-08-08 2 views
0

버전 5.1.6을 사용하고 있으며 이상한 문제가 있습니다. 스크립트에서 파일을 만들고 쓸 수는 없지만 명시 적으로 파일을 만든 다음 스크립트를 실행하면 데이터를 씁니다.PHP 버전 : 5.1.6 : 파일에 쓸 수 없습니다.

나는 여기에서 명백한 것을 놓치고 있습니까?

내가 노력하고 테스트 코드는 다음과 같습니다

$message = "Test"; 
$myFile = "testFile.txt"; 
if (file_exists($myFile)) { 
    $fh = fopen($myFile, 'a'); 
    fwrite($fh, $message."\n"); 
} else { 
    chmod("/path/to/dir/*", 0755); //updated code 
    $fh = fopen($myFile, 'w') or die("Cannot open file \"$myFile\"...\n"); 
    fwrite($fh, $message) ; 
} 
fclose($fh); 

결론 : 응답 모든 사람들을위한 감사합니다. 허가 문제입니다. 내가 디렉토리 경로를 변경하고 작동 :)

+1

권한 문제에 chmod에 PHP 설명서를 참조하십시오? chmod

+1

이것은 파일 및 디렉토리 사용 권한 문제이며 업데이트해야하는이 고대 PHP 버전과 관련이 없습니다! – Sven

+0

@GhilasBELHADJ : 사용 권한을 변경하려고했지만 여전히 동일한 문제 (위에 편집 된 코드)가 있습니다. – iDev

답변

1

코드가 정상입니다. chmod가 상주하는 행만 필요하지 않습니다.

chmod("/path/to/dir/*", 0755);을 주석 처리하면 설정 폴더 내의 모든 파일을 chmod합니다.

http://php.net/manual/en/function.chmod.php

$message = "Test"; 
$myFile = "testFile.txt"; 
if (file_exists($myFile)) { 
    $fh = fopen($myFile, 'a'); 
    fwrite($fh, $message."\n"); 
} else { 

//chmod("/path/to/dir/*", 0755); 
    $fh = fopen($myFile, 'w') or die("Cannot open file \"$myFile\"...\n"); 
    fwrite($fh, $message) ; 
} 
fclose($fh); 
2

나는 비슷한 문제가있어서 아파치 사용자에게 폴더의 소유자를 변경하여 해결했습니다. 이것은 당신의 PHP 스크립트 파일을 만들고 그 폴더에있는 파일에 쓰기 권한이 필요합니다. 나는 당신이 서버 접근 (ssh 또는 ftp)를 통해서만 php 원본에서 폴더를 chown 할 수 없을 것이라는 점을 생각한다. 적어도 그것은 내가 가야만했던 길이었습니다.

관련 문제