Linux PHP fopen“;无法打开流:资源暂时不可用";

Linux PHP fopen“;无法打开流:资源暂时不可用";,linux,apache,php,Linux,Apache,Php,编辑:奥斯汀在下面的评论中解决了我的问题。既然这就是答案,我该如何结束这个问题 我有以下简单的代码来打开/写入服务器上的查询文件。我已经检查了权限,甚至为查询文件上的所有用户设置了+rw,但仍然得到了错误 无法打开流:资源暂时不可用 在我的apache错误日志中 我真的不确定我能做些什么来缓解这个问题,想法 <?php // filepaths $queryFile = '../query/query.txt'; // get query $query = $_GET['searchB

编辑:奥斯汀在下面的评论中解决了我的问题。既然这就是答案,我该如何结束这个问题

我有以下简单的代码来打开/写入服务器上的查询文件。我已经检查了权限,甚至为查询文件上的所有用户设置了+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);

什么是
文件($queryFile)
可写($queryFile)
揭示了什么?可能您不在正确的工作目录中?

这可能只是以下几件事之一:

  • PHP进程内存、文件句柄或类似资源不足
  • PHP环境自身的限制在某种程度上被超越了
  • 该文件本身有一些限制,例如SELinux(安全增强Linux)限制

要确定是哪个文件,请尝试在PHP外部打开该文件。临时更改脚本以打开其他文件。看看脚本还做了什么来验证它是否可能没有文件句柄等。

参数
'X'
应该是小写的。

签出:您确定当前工作目录是您认为的吗?如果在
$queryFile
前加上
dirname(\uuuuu文件)
,会发生什么情况?文件是否已经存在?根据PHP文档,如果文件已经存在,
fopen()
模式
x
返回false并生成警告。-文件确实存在,这肯定是问题所在。谢谢大家!@伊森·威利斯:请奥斯汀补充这个作为回答。你也可以回答自己的问题。这不是答案,应该是评论。