框架安装

注意事项,请看完再进行安装

  • 框架使用 Composer 作为依赖管理工具,在开始安装框架前,请确保已经按上一章节的要求配置好环境并安装好了 Composer 工具
  • 关于 Composer 的安装可以参照 Composer中国全量镜像 的安装教程
  • 目前推荐的镜像为阿里云或者梯子拉取源站
  • 在安装过程中,会提示用户选择是否释放框架的 Index.phpRouter.php 文件到项目目录(默认不会释放,也不会生成 App 目录),请保证项目目录有可写入权限
  • 安装完成之后,如果没有自动生成 App 目录,请自行根据 Hello World 章节 章节进行配置
  • 部分机器(例如 Docker 环境)在使用框架时遇到类似 DNS Lookup resolve failed... 错误,请更换机器的 DNS 为阿里云公共 DNS 223.5.5.5223.6.6.6。具体更换步骤可查看 更换 DNS

框架更新说明(安装之前必看)

切换 Composer 镜像

  1. # 由于最近阿里云composer镜像不稳定,暂时废弃使用,请使用其他稳定的镜像
  2. # composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
  3. # 推荐暂时使用腾讯云镜像
  4. composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/

删除镜像

  1. composer config -g --unset repos.packagist

Composer 安装

按下面的步骤进行手动安装

  1. composer require easyswoole/easyswoole=3.4.x
  2. php vendor/easyswoole/easyswoole/bin/easyswoole install

或者

  1. composer require easyswoole/easyswoole=3.4.x
  2. php vendor/bin/easyswoole install

如果执行成功,则会有如下界面:

首次安装,会提示您是否选择释放(release) Index.phpRouter.phpApp 目录到项目目录

  1. php vendor/easyswoole/easyswoole/bin/easyswoole install
  2. ______ _____ _
  3. | ____| / ____| | |
  4. | |__ __ _ ___ _ _ | (___ __ __ ___ ___ | | ___
  5. | __| / _` | / __| | | | | \___ \ \ \ /\ / / / _ \ / _ \ | | / _ \
  6. | |____ | (_| | \__ \ | |_| | ____) | \ V V / | (_) | | (_) | | | | __/
  7. |______| \__,_| |___/ \__, | |_____/ \_/\_/ \___/ \___/ |_| \___|
  8. __/ |
  9. |___/
  10. do you want to release Index.php? [ Y / N (default) ] : Y
  11. do you want to release Router.php? [ Y / N (default) ] : Y
  12. install success,enjoy!!!
  13. dont forget run composer dump-autoload !!!

注意,上述输入了 YY,表示选择了 release(释放) Index.phpRouter.phpApp 目录在项目根目录,默认 NN 是不释放的,也不会自动生成 App 目录和 App 命名空间。

新版安装注意事项

  • 新版的 EasySwoole 安装默认不会提供 App 命名空间,还有 Index 控制器
  • 重复安装时需要填写 N,不需要覆盖已经有的 EasySwooleEvent.php、index.php、dev.php、produce.php 等文件
  • 当提示 exec 函数被禁用时,请自己手动执行 composer dump-autoload 命令更新命名空间
  • 当提示 symlinkreadlink 函数被禁用时,请自行修改 php.ini 配置文件取消这些函数的禁用

重复安装时,会提示您是否选择 replace(覆盖) 如下文件 Index.phpRouter.phpdev.phpproduce.phpbootstrap.phpEasySwooleEvent.php,你可以根据需要选择是否覆盖(replace),执行界面如下:

  1. php vendor/easyswoole/easyswoole/bin/easyswoole install
  2. ______ _____ _
  3. | ____| / ____| | |
  4. | |__ __ _ ___ _ _ | (___ __ __ ___ ___ | | ___
  5. | __| / _` | / __| | | | | \___ \ \ \ /\ / / / _ \ / _ \ | | / _ \
  6. | |____ | (_| | \__ \ | |_| | ____) | \ V V / | (_) | | (_) | | | | __/
  7. |______| \__,_| |___/ \__, | |_____/ \_/\_/ \___/ \___/ |_| \___|
  8. __/ |
  9. |___/
  10. Index.php has already existed, do you want to replace it? [ Y / N (default) ] : N
  11. Router.php has already existed, do you want to replace it? [ Y / N (default) ] : N
  12. dev.php has already existed, do you want to replace it? [ Y / N (default) ] : N
  13. produce.php has already existed, do you want to replace it? [ Y / N (default) ] : N
  14. bootstrap.php has already existed, do you want to replace it? [ Y / N (default) ] : N
  15. EasySwooleEvent.php has already existed, do you want to replace it? [ Y / N (default) ] : N
  16. install success,enjoy!!!
  17. dont forget run composer dump-autoload !!!

安装报错

当执行安装脚本,出现类似以下错误时:

  1. dir=$(cd "${0%[/\\]*}" > /dev/null; cd '../easyswoole/easyswoole/bin' && pwd)
  2. if [ -d /proc/cygdrive ]; then
  3. case $(which php) in
  4. $(readlink -n /proc/cygdrive)/*)
  5. # We are in Cygwin using Windows php, so the path must be translated
  6. dir=$(cygpath -m "$dir");
  7. ;;
  8. esac
  9. fi
  10. "${dir}/easyswoole" "$@"

请检查环境是否为宝塔等其他集成面板,或者是 php.ini 配置项中禁用了 symlinkreadlink 函数,如果禁用了,请关闭这两个函数的禁用,并删除 vender 目录,然后重新执行 composer require 或者是 composer install 或者是 composer update

如果取消了函数禁用并且删除 vendor 目录,并重新执行 composer install 之后。依旧出现以上错误时,大概率是因为虚拟机等权限原因导致软链接失效。可使用 php vendor/easyswoole/easyswoole/bin/easyswoole 命令进行启动框架。或者直接修改项目根目录的 easyswoole 文件,引入 vendor/easyswoole/easyswoole/bin/easyswoole

安装 IDE 代码提示组件

composer require easyswoole/swoole-ide-helper

启动框架

中途没有报错的话,执行:

  1. # 启动框架
  2. php easyswoole server start

此时可以访问 http://localhost:9501 就看到框架的欢迎页面,表示框架已经安装成功

可能的问题

  • not controller class match

    • composer.json 注册 App 这个名称空间了吗?
    • 执行过 composer dump-autoload 了吗?
    • 存在 Index 控制器,但是文件大小写、路径都对了吗?
  • task socket listen fail

    • 注意,在部分环境下,例如 win10docker 环境中,不可把虚拟机共享目录作为 EasySwooleTemp 目录,否则会因为权限不足无法创建 socket,产生报错:listen xxxxxx.sock fail,为此可以手动在 dev.php 配置文件里把 Temp 目录改为其他路径即可,如:'/Tmp'

其他

  • QQ 交流群

    • VIP 群 579434607 (本群需要付费599元)
    • EasySwoole 官方一群 633921431(已满)
    • EasySwoole 官方二群 709134628(已满)
    • EasySwoole 官方三群 932625047(已满)
    • EasySwoole 官方四群 779897753(已满)
    • EasySwoole 官方五群 853946743
  • 商业支持:

    • QQ 291323003
    • EMAIL admin@fosuss.com
  • 作者微信

    框架安装 - 图1

  • 捐赠 您的捐赠是对 EasySwoole 项目开发组最大的鼓励和支持。我们会坚持开发维护下去。 您的捐赠将被用于:

    • 持续和深入地开发
    • 文档和社区的建设和维护