fclose():参数 #1 ($stream) 必须是资源类型,bool 给定

问题描述 投票:0回答:11

我刚刚重新启动我的 laravel 8.0 项目,我收到以下错误,请问可能出了什么问题,每当我运行“PHP artisanserve”时都会发生这种情况

   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()
php laravel composer-php window
11个回答
23
投票

您可以打开任务管理器,然后查找 CLI(带有 php 徽标)后台进程,如果找到则杀死任务


6
投票

不要重新启动,不要卸载,不要恐慌

如果您使用的是 Windows 计算机,请按照以下步骤操作:

  1. 单击开始超级按钮。

  2. 键入 cmd,右键单击命令提示符磁贴,然后单击 以管理员身份运行

  3. 输入

    tasklist /v | find "php"
    按回车,找到php.exe的PID

  4. 通过

    taskkill /PID <PID> /F

    终止进程
  5. 你完成了。


4
投票

我还运行了另一个我忘记的 Laravel 应用程序(在另一个 IDE 的终端中)。 Ctl + C(杀死)让我克服了这个错误消息。


0
投票

首先运行

composer install
,然后尝试使用
php artisan serve
启动开发服务器。您可能还必须使用
php artisan key:generate
生成密钥,以防应用程序启动时出现错误。


0
投票

我遇到了同样的问题,我希望这个解决方案可以帮助其他人:

1. Delete the **vendor** folder/directory of the project
2. run **"composer install"** to install packages.

这解决了我的问题。


0
投票

我今天遇到了同样的错误并应用了所有解决方案,但这解决了我的错误。

  1. 卸载作曲家。
  2. 重新启动机器
  3. 安装作曲家

0
投票

我通过搜索在

sf_proc_00.err
(本地 Windows 临时目录)中保持打开文件
%LOCALAPPDATA%\Temp
的进程解决了这个问题。为此,可以使用 Process Explorer 或类似工具。它被
ssh.exe
锁定(很可能是由 git 启动的)。杀掉进程后,composer又正常运行了。


0
投票

只需停止/关闭 Artisan 服务器

这对我来说是工作


0
投票

我已将 PHP v8 降级到 v7.4,它可以工作了


-1
投票

您应该使用

optimize:clear
命令清除配置缓存:

php artisan optimize:clear

-1
投票

解决方法很简单,只需做

php artisan config:clear

然后重新运行

php artisan serve
© www.soinside.com 2019 - 2024. All rights reserved.