fclose(): 参数 #1 ($stream) 必须是资源类型,bool 给定
Posted
技术标签:
【中文标题】fclose(): 参数 #1 ($stream) 必须是资源类型,bool 给定【英文标题】:fclose(): Argument #1 ($stream) must be of type resource, bool given 【发布时间】:2021-05-12 12:28:06 【问题描述】:我刚刚重新启动了我的 laravel 8.0 项目,但出现以下错误,请问可能是什么问题,每当我运行“php artisan serve”时都会发生这种情况
TypeError
fclose(): Argument #1 ($stream) must be of type resource, bool given
at C:\Users\owner\Laravel-App\test-app\vendor\symfony\process\Pipes\WindowsPip
es.php:74
70▕ fclose($this->lockHandles[$pipe]);
71▕
72▕ $this->lockHandles[$pipe] = $h;
73▕
➜ 74▕ if (!fclose(fopen($file, 'w')) || !$h = fopen($file
, 'r'))
75▕ flock($this->lockHandles[$pipe], \LOCK_UN);
76▕ fclose($this->lockHandles[$pipe]);
77▕ unset($this->lockHandles[$pipe]);
78▕ continue 2;
continue 2;
1 C:\Users\owner\Laravel-App\test-app\vendor\symfony\process\Pipes\WindowsPi
pes.php:74
fclose()
2 C:\Users\owner\Laravel-App\test-app\vendor\symfony\process\Process.php:130
4
Symfony\Component\Process\Pipes\WindowsPipes::__construct()
【问题讨论】:
不确定 laravel 但我不认为你可以像这样在 close 中使用 fopen,你不需要句柄来拥有自己的 var 吗?像这样:$fopen = fopen($file, 'w');
然后使用 if (!fclose($fopen) || !$h = fopen($file, 'r'))
也许?
感谢您在我使用时回复 $fopen = fopen($file, 'w'); if (!$fopen || !$h = fopen($file, 'r')) 它可以工作,但给出另一个错误“404 NOT FOUND”
也许您的$file
不存在?在你拥有它之前:if (!fclose($fopen) || !$h = fopen($file, 'r'))
不是这样的if (!$fopen || !$h = fopen($file, 'r'))
。不确定这是否与它有关。
你试过重启你的机器吗?
我已经重启并出现了这些错误
【参考方案1】:
我今天遇到了同样的错误并应用了所有解决方案,但这解决了我的错误。
-
卸载作曲家。
重启你的机器
安装作曲家
【讨论】:
【参考方案2】:解决方法很简单,做就行了
php artisan config:clear
然后重新运行
php artisan serve
【讨论】:
【参考方案3】:不要重启,不要卸载,不要恐慌!
如果您使用的是 Windows 机器,请按照以下步骤操作:
点击开始超级按钮。
键入 cmd,右键单击命令提示符磁贴,然后单击以管理员身份运行。
输入tasklist /v | find "php"
回车,找到php.exe的PID
taskkill /PID <PID> /F
杀死进程
你已经完成了。
【讨论】:
【参考方案4】:我遇到了同样的问题,希望这个解决方案可以帮助其他人:
1. Delete the **vendor** folder/directory of the project
2. run **"composer install"** to install packages.
这解决了我的问题。
【讨论】:
【参考方案5】:我运行了一个我忘记的 Laravel 应用程序(在另一个 IDE 的终端中)。 Ctl + C (killing) 让我能够克服这个错误消息。
【讨论】:
【参考方案6】:你可以打开任务管理器然后寻找CLI(带有php标志的)后台进程,如果找到则杀死任务
【讨论】:
【参考方案7】:首先运行composer install
,然后再尝试使用php artisan serve
启动开发服务器。您可能还必须使用 php artisan key:generate
生成密钥,以防应用启动时出现错误。
【讨论】:
【参考方案8】:您应该使用optimize:clear
命令清除配置缓存:
php artisan optimize:clear
【讨论】:
以上是关于fclose(): 参数 #1 ($stream) 必须是资源类型,bool 给定的主要内容,如果未能解决你的问题,请参考以下文章