2012-11-18 36 views
3

編輯:下面的奧斯汀在評論中解決了我的問題。因爲這是答案,我該如何解決這個問題?PHP fopen「未能打開流:資源暫時不可用」

我有以下簡單的代碼來打開/寫入我的服務器上的查詢文件。我檢查的權限,甚至設置+ RW上查詢文件的所有用戶,但我仍然得到錯誤

未能打開流:資源暫時不可用

在我的Apache的錯誤日誌。

我不確定我能做些什麼來緩解這個問題,想法?

<?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(安全增強型Linux)限制。

要確定它是哪個,請嘗試在PHP之外打開該文件。暫時更改腳本以打開不同的文件。看看腳本還在做什麼來驗證它是否可能會耗盡文件句柄等。

相關問題