【问题标题】:fclose(): Argument #1 ($stream) must be of type resource, bool givenfclose(): 参数 #1 ($stream) 必须是资源类型,bool 给定
【发布时间】: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'))。不确定这是否与它有关。
  • 你试过重启你的机器吗?
  • 我已经重启并出现了这些错误

标签: php laravel composer-php window


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    解决方法很简单,做就行了

    php artisan config:clear
    

    然后重新运行

    php artisan serve
    

    【讨论】:

      【解决方案3】:

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

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

      1. 点击开始超级按钮。

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

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

      4. taskkill /PID <PID> /F杀死进程

      5. 你已经完成了。

      【讨论】:

        【解决方案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
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2021-12-14
                  • 2020-01-06
                  • 2021-01-02
                  • 1970-01-01
                  • 2021-09-27
                  相关资源
                  最近更新 更多