安装说明

本教程将带你核对运行环境、通过 Composer 创建 Viswoole 项目,并启动第一个 HTTP 服务。全部步骤完成后,你将在 9501 端口看到框架的默认响应。

环境要求

以下要求来自框架 composer.json 的依赖声明:

依赖项版本要求说明
PHP>= 8.4框架大量使用 PHP 8.4 特性,版本不能低于此要求
Swoole 扩展>= 5.1协程引擎(Coroutine Engine),框架核心依赖
fileinfo 扩展*PHP 内置扩展,用于上传文件类型识别
redis 扩展*PHP Redis 客户端,缓存与 Redis 连接池依赖
pdo 扩展*数据库访问扩展,通常随 PHP 默认启用
sockets 扩展*PHP 内置扩展,通常随 PHP 默认启用
Composer最新稳定版PHP 包管理器

部署模式说明

Viswoole 基于 Swoole 常驻内存运行,不支持 PHP-FPM / Nginx + Apache 部署模式。服务通过框架内置的 CLI 命令直接启动,Nginx 仅作为反向代理(见 生产环境配置)。

安装 Swoole 扩展

Swoole 是框架的核心运行时依赖。以 pecl 安装为例:

bash
pecl install swoole

安装完成后确认 php.ini 中已启用扩展:

ini
extension=swoole.so

验证安装结果:

bash
php --ri swoole

输出中包含 Version => 5.1.x 或更高版本即安装成功。

替代方案

也可以使用 phpswoole/swoole 官方 Docker 镜像跳过手动编译,详见 容器化部署

创建项目

使用 Composer 一键创建 Viswoole 应用骨架:

bash
composer create-project viswoole/viswoole myProject

该命令会下载 viswoole/framework 核心包及全部依赖,并生成标准的项目目录结构(目录职责详见 项目结构介绍)。

进入项目目录:

bash
cd myProject

项目初始化

框架提供了三个初始化命令,用于同步框架资源与依赖包注册信息:

bash
php viswoole vendor:publish     # 将依赖包内的配置等资源发布到项目根目录
php viswoole service:discover   # 扫描依赖包中的服务提供者并生成注册文件
php viswoole command:discover   # 扫描依赖包中的自定义命令并生成注册文件

INFO

以上命令通常由项目骨架在 composer install / composer dump-autoload 之后自动触发;如果你是在已有项目中更新依赖,或不确定是否已执行,可再次手动运行以确保同步。

配置环境变量

在项目根目录创建 .env 文件,按需设置环境变量:

ini
; 是否开启调试模式(生产环境必须为 false)
app_debug=true

; 默认时区
default_timezone=Asia/Shanghai

; 数据库连接(对应 config/database.php 中的 env() 调用)
DATABASE_HOST=127.0.0.1
DATABASE_PORT=3306

.env 的完整格式约定、读取规则与优先级见 环境变量

安全提示

.env 包含敏感信息(数据库密码等),务必将其加入 .gitignore,不要提交到版本控制系统。

启动服务

前台启动(开发推荐)

bash
php viswoole server:start

服务名参数可省略,默认启动 config/server.phpdefault_start_server 指定的服务(默认 http)。启动命令的完整选项:

参数/选项类型默认值说明
servicestringserver.default_start_server(即 http要启动的服务名称,对应 config/server.phpservers 的键名
-f, --force选项服务已在运行时,先关闭再强制启动
-d, --daemonize选项以守护进程(Daemon)方式后台运行

验证服务

服务默认监听 0.0.0.0:9501config/server.php 中定义)。用 curl 请求根路径:

bash
curl http://127.0.0.1:9501/

框架默认路由会返回类似 <h1>Hello Viswoole. #4321</h1> 的响应,说明服务已正常运行。

也可以在浏览器直接访问 http://127.0.0.1:9501/

IDE 支持(可选)

安装 Swoole IDE Helper 获得更好的代码补全与类型提示(框架开发依赖中已使用该包):

bash
composer require --dev swoole/ide-helper

该包仅开发环境使用,不影响生产运行。

更新框架

单独更新 Viswoole 框架核心包:

bash
composer update viswoole/framework

更新完成后建议重新执行初始化命令,保持资源与服务注册同步:

bash
php viswoole vendor:publish
php viswoole service:discover
php viswoole command:discover

常见问题

提示 ext-swoole 未找到

确认 Swoole 扩展安装在当前 CLI 使用的 PHP 版本中:

bash
php -m | grep swoole

注意:CLI 与 FPM 可能使用不同的 php.ini,Swoole 必须在 CLI 环境中可用。

Composer 创建项目缓慢或失败

可配置国内镜像源后重试:

bash
composer config -g repos.packagist composer https://mirrors.aliyun.com/composer/

9501 端口被占用

修改 config/server.phpservers.http.construct.port 为其他端口后重启服务。

下一步