最简方案是用Docker直接运行Hyperf官方镜像:安装Docker后拉取hyperf/hyperf:8.1-alpine镜像,挂载目录初始化项目并启动服务,监听宿主机8080端口,配合firewalld放行即可访问,默认欢迎页可见,代码挂载实现修改即生效。

直接在CentOS单机上跑起Hyperf,不需要K8s、不用Docker Compose编排,也不必拆微服务——最简方案就是用官方镜像快速启动一个可访问的HTTP服务,重点是“能跑、能调、能改”,适合开发验证或小流量试用。
准备基础环境
确保系统满足最低要求:CentOS 7.9(或8.x),PHP 8.0+,已安装Docker(不装Docker就绕不开Swoole扩展编译,复杂度陡增)。
- 升级系统并安装Docker(如未装):
yum update -y && yum install -y yum-utils && yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo && yum install -y docker-ce - 启动Docker:
systemctl start docker && systemctl enable docker - 拉取Hyperf官方运行时镜像:
docker pull hyperf/hyperf:8.1-alpine-v3.16-swoole
一键启动Hyperf服务
跳过本地PHP环境搭建和composer install,直接挂载代码目录到容器内运行:
- 新建项目目录:
mkdir -p /opt/hyperf-demo && cd /opt/hyperf-demo - 初始化骨架:
docker run --rm -v $(pwd):/opt/www -w /opt/www hyperf/hyperf:8.1-alpine-v3.16-swoole composer create-project hyperf/hyperf-skeleton . - 启动服务(监听宿主机8080端口):
docker run -d --name hyperf-app -p 8080:9501 -v $(pwd):/opt/www -w /opt/www hyperf/hyperf:8.1-alpine-v3.16-swoole php bin/hyperf.php start
此时访问http://你的IP:8080,应看到Hyperf默认欢迎页。整个过程无需手动装扩展、配PHP、启Swoole,全由镜像封装完成。
让服务可被外部访问
CentOS默认firewalld可能拦截8080端口,需放行:
firewall-cmd --permanent --add-port=8080/tcpfirewall-cmd --reload
如使用云服务器,还需在安全组中开放8080端口。若想用域名或80端口访问,后续加一层Nginx反向代理即可,非“最简”必需项。
修改代码即时生效(开发友好)
由于代码目录是通过-v挂载进容器的,所有改动实时同步。例如:
- 编辑
app/Controller/IndexController.php,改下返回文案 - 刷新浏览器,变化立即可见(Hyperf内部协程服务器会热检测部分变更,但完整逻辑更新建议重启容器)
- 重启只需:
docker restart hyperf-app
不依赖watcher组件,不引入额外进程,靠容器生命周期管理,干净可控。


















