# 安装

这篇为炸毛框架以及环境的部署教程。

框架部署分为两部分,一部分是安装 PHP 环境,另一部分是通过 Composer 或 GitHub 拉取框架的脚手架。

# 一键下载静态 PHP 环境和框架脚手架

从 2.4.4 版本起,炸毛框架支持一键拉取一个静态的 PHP 运行时和脚手架(如果本机内安装的 PHP 已符合要求,则不安装),只需运行下面的脚本即可。

# 将会把 PHP、框架都安装在此目录下
bash <(curl -fsSL https://zhamao.xin/go.sh)

# 安装完成后的启动框架命令(2.5.0 版本后可省略掉 runtime/php 前缀)
cd zhamao-app
./zhamao server
1
2
3
4
5
6

有关静态 PHP 的多种用法(如 Composer),见 进阶 - PHP 环境高级

# 使用 Docker 部署 PHP 和框架

你也可以使用 Docker 进行拉取 PHP 环境。

# 拉取 Docker 镜像
docker pull zmbot/swoole

# 再通过 GitHub 或其他方式拉取框架脚手架
git clone --depth=1 https://github.com/zhamao-robot/zhamao-framework-starter.git
cd zhamao-framework-starter/

# Docker 内使用 Composer 更新依赖
docker run -it --rm -v $(pwd):/app/ -p 20001:20001 zmbot/swoole composer update
docker run -it --rm -v $(pwd):/app/ -p 20001:20001 zmbot/swoole vendor/bin/start init

# 使用 Docker 启动框架
docker run -it --rm -v $(pwd):/app/ -p 20001:20001 zmbot/swoole vendor/bin/start server
1
2
3
4
5
6
7
8
9
10
11
12
13

启动后你会看到和下方类似的初始化内容,表明启动成功了

$ vendor/bin/start server
=================================================================
 working_dir: /app/zhamao-framework-starter
 listen: 0.0.0.0:20001         |  worker: 4 (auto)
 environment: default          |  log_level: 2
 version: 2.7.0                |  master_pid: 28449
=================================================================
   ______
  |__  / |__   __ _ _ __ ___   __ _  ___
    / /| '_ \ / _` | '_ ` _ \ / _` |/ _ \
   / /_| | | | (_| | | | | | | (_| | (_) |
  /____|_| |_|\__,_|_| |_| |_|\__,_|\___/

[03-20 22:30:56] [S] [#1] Worker #1 started
[03-20 22:30:56] [S] [#2] Worker #2 started
[03-20 22:30:56] [S] [#3] Worker #3 started
[03-20 22:30:56] [S] [#0] Worker #0 started
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

单纯运行 炸毛框架 后,如果不部署或安装启动任何机器人客户端的话,仅仅相当于启动了一个 监听 20001 端口的WebSoket + HTTP 服务器。你可以通过浏览器访问:http://127.0.0.1:20001 ,或者你部署到了服务器后需要输入服务器地址。

# 命令总结

  1. 对于框架的启动,必须 cd 到项目的跟目录,比如 cd zhamao-app/ 进入到项目根目录。
  2. 无论何种方式启动,启动框架的命令格式都为这个格式:{php二进制路径} vendor/bin/start server {--如果需要参数的话这样跟}
  3. 第二条的 php 二进制路径 指的是,比如使用第一种静态 PHP 环境,这里写 runtime/php 就好了,如果是安装到系统的 PHP 的话,这里为空,如果是 Docker 部署的环境,则这里填 docker run -it --rm -v $(pwd):/app/ -p 20001:20001 zmbot/swoole

# 使用 IDE 等工具开发代码

我们使用文本编辑器进行炸毛框架开发,在使用集成开发环境 IDEAPhpStorm 时,推荐通过插件市场搜索并安装 PHP Annotations 插件以提供注解命名空间自动补全、注解属性代码提醒、注解类跳转等,非常有助于提升开发效率的功能。

# 进阶环境部署和开发

炸毛框架还支持更多种启动方式,如源码模式、守护进程模式,具体后续有关环境和部署的进阶教程,请查看 进阶开发 部分!

# Windows 注意事项

由于 Swoole 扩展目前无法原生支持 Windows 环境的 PHP,所以以上方式都是默认在 Linux、macOS 系统下的命令。

如果需要在 Windows 上开发和运行,可以使用 WSL(1 和 2 均可)、Linux 虚拟机、Docker 或 cygwin。

如果使用 WSL、虚拟机或 Docker,方式可以直接参考上方相关命令。如果使用 cygwin,可先从 Swoole 官方仓库 (opens new window) 下载 swoole 的 cygwin 构建版本,然后下载 Composer 后安装依赖,直接运行框架即可。

# macOS 注意事项

macOS 理论上运行环境和 Linux 无异,但 macOS 由于不能静态编译,所以不能使用静态编译的 PHP 直接运行,需自行从 Homebrew 下载最新版 PHP(命令 brew install php),然后使用命令 pecl install swoole 来安装 Swoole 后运行框架。