2012-11-18 3 views
3

편집 : 의견 아래에 오스틴 내 문제가 해결되었습니다. 그것이 그 대답이기 때문에 질문을 어떻게 닫을 수 있습니까?PHP fopen "스트림을 열지 못했습니다 : 리소스를 일시적으로 사용할 수 없습니다"

내 서버의 쿼리 파일을 열거 나 쓸 수있는 다음과 같은 간단한 코드가 있습니다. 나는 권한을 확인하고 심지어 쿼리 파일의 모든 사용자 + RW를 설정, 그러나 나는 아직도

이 스트림을 열지 못했습니다 오류 얻을했습니다 내 아파치 오류 로그에

일시적으로 사용할 수없는 자원을.

나는이 문제를 완화하기 위해 내가 무엇을 할 수 있는지 잘 모르겠다.

<?php 
// filepaths 
$queryFile = '../query/query.txt'; 

// get query 
$query = $_GET['searchBox']; 

// open and write query to query file 
$fh = fopen($queryFile, 'X') or die("Can't open file"); 
fwrite($fh, $query); 
fclose($fh); 
+1

현재 작업중인 디렉토리가 맞다고 확신합니까? 'dirname (__ FILE __)'을'$ queryFile' 앞에두면 어떻게됩니까? – staticsan

+2

파일이 이미 있습니까? PHP 문서에 따르면'fopen()'모드'x'는 false를 반환하고 파일이 이미 존재하면 경고를 발생시킵니다. - http://php.net/manual/en/function.fopen.php –

+0

파일이 존재합니다. 그 것이 반드시 문제입니다. 고맙습니다! – ripit

답변

2

is_file($queryFile)is_writable($queryFile)는 무엇을 나타내는가? 어쩌면 올바른 작업 디렉토리에 있지 않은 것입니까?

3

그것은 단지 몇 가지 중 하나가 될 수 있습니다 :

  • PHP의 프로세스는 PHP 환경의 자신의 한계는
  • 파일 자체 어떻게 든 초과
  • 메모리, 파일 핸들, 또는 유사한 벗어 SELinux (Security Enhanced Linux) 제한과 같은 일부 제한이 있습니다.

어떤 파일인지 확인하려면 PHP 외부에서 파일을 열어보십시오. 일시적으로 스크립트를 변경하여 다른 파일을 엽니 다. 스크립트가 파일 핸들 등이 부족할 수 있는지 여부를 확인하기 위해 스크립트가 수행하는 작업을 확인하십시오.

관련 문제