laravel-octane 启动报错 Class "Swoole\Http\Server" not found

在使用 laravel-octane 过程中,报了一个错误,有没有知道该怎么解决的?

Class "Swoole\Http\Server" not found

  at vendor/laravel/octane/bin/createSwooleServer.php:6
      23$config = $serverState['octaneConfig'];
      45try {6$server = new Swoole\Http\Server(
      7$serverState['host'] ?? '127.0.0.1',
      8$serverState['port'] ?? '8080',
      9SWOOLE_PROCESS,
     10SWOOLE_SOCK_TCP,

具体情况如下:

  1. 源码方式安装 swoole 扩展
    cd swoole-src && \
    phpize && \
    ./configure && \
    make && sudo make install
  2. php.ini 中增加 extension=swoole.so
  3. 使用 php -mphpinfo() 来查看是否安装成功(已经安装成功)
  4. 使用 php artisan octane:install 安装,选择 [1] swoole,成功
  5. 使用 php artisan octane:start 命令启动,报错
  6. 尝试 Google、Stack Overflow,没有找到对应的错误,尝试重启 lnmp 环境、系统,composer dump-autoload 都不行

补充:

laravel-octane 启动报错 Class "Swoole\Http\Server" not found

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
godruoyi
最佳答案

Hi,我看你在博客下也有留言,但我还没回复。

猜测是启动 swoole server 的 php 版本和你安装扩展的不一致,你试试在 StartSwooleCommand.php 打印下 php 可执行文件路径试试,看看和安装扩展的版本是否一致。

file

2个月前 评论
haaid (楼主) 2个月前
godruoyi (作者) 2个月前
haaid (楼主) 2个月前
李铭昕 2个月前
haaid (楼主) 2个月前
Molin 2个月前
讨论数量: 13

具体启动的方式描述一下

2个月前 评论
haaid (楼主) 2个月前

你安装的swoole是什么版本的

2个月前 评论
haaid (楼主) 2个月前

建议先学swoole再用swoole相关封装的框架或是包比较好 如果大佬有兴趣可以看看这个 www.bilibili.com/video/BV1354y157S...

2个月前 评论

检测一下是否加载了扩展,var_dump(extension_loaded('swoole'))

2个月前 评论
haaid (楼主) 2个月前

在你本地创建脚本 运行一下看看能不能正常工作

file

2个月前 评论
haaid (楼主) 2个月前
haaid

file

file

2个月前 评论
arvin-hermit 2个月前
haaid (作者) (楼主) 2个月前
arvin-hermit 2个月前

composer dump-auto 试一下

2个月前 评论

手动修改为\Swoole\Http\Server试试
composer没关系, 这是扩展里面的类

2个月前 评论
haaid (楼主) 2个月前
haaid

Fatal error: Uncaught Error: Class "Swoole\Http\Server" not found in /Users/haaid/Develop/other/manager/vendor/laravel/octane/bin/createSwooleServer.php:5

是不是找错位置了?

2个月前 评论
haaid (作者) (楼主) 2个月前
李铭昕

执行 php artisan octane:start 就报错么??

能否截个图看看

2个月前 评论
haaid (楼主) 2个月前
李铭昕 (作者) 2个月前
php -r "var_dump(extension_loaded('swoole'));"

可能命令行的 ini 文件和 fpm 的 ini 是分开的

2个月前 评论
24K大白羊 2个月前
haaid (楼主) 2个月前

php的系统环境这些可以多提供下,比如是怎么安装php版本的,怎么安装swoole的

2个月前 评论
haaid (楼主) 2个月前
godruoyi

Hi,我看你在博客下也有留言,但我还没回复。

猜测是启动 swoole server 的 php 版本和你安装扩展的不一致,你试试在 StartSwooleCommand.php 打印下 php 可执行文件路径试试,看看和安装扩展的版本是否一致。

file

2个月前 评论
haaid (楼主) 2个月前
godruoyi (作者) 2个月前
haaid (楼主) 2个月前
李铭昕 2个月前
haaid (楼主) 2个月前
Molin 2个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!