第一章:PHP 容器化 微服务部署
在现代云原生架构中,PHP 应用通过容器化技术实现微服务部署已成为提升可维护性与扩展性的主流方式。借助 Docker 与 Kubernetes,PHP 服务能够以轻量、一致的环境运行于任意平台,有效解决“在我机器上能跑”的问题。容器化 PHP 应用的基本结构
一个典型的 PHP 微服务容器包含 Nginx 或 Apache 作为 Web 服务器,配合 PHP-FPM 处理动态请求。项目根目录下需包含Dockerfile 与 docker-compose.yml 文件,用于定义构建流程与服务编排。
# 使用官方 PHP 镜像作为基础镜像
FROM php:8.2-fpm
# 安装必要的系统依赖
RUN apt-get update && apt-get install -y \
git \
curl \
libpng-dev \
libonig-dev \
libxml2-dev \
zip \
unzip
# 安装 PHP 扩展
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd
# 安装 Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# 设置工作目录
WORKDIR /var/www
# 复制应用代码
COPY . .
# 安装依赖
RUN composer install --optimize-autoloader --no-dev
# 暴露端口
EXPOSE 9000
CMD ["php-fpm"]
使用 Docker Compose 编排服务
通过docker-compose.yml 可定义多容器协作关系,如 PHP 应用、数据库与缓存服务。
- 创建
docker-compose.yml文件 - 定义
app、db和redis服务 - 启动服务:
docker-compose up -d
| 服务名称 | 用途 | 端口映射 |
|---|---|---|
| app | 运行 PHP-FPM 与业务逻辑 | 9000:9000 |
| db | MySQL 数据库 | 3306:3306 |
| redis | 缓存与会话存储 | 6379:6379 |
graph TD
A[客户端] --> B[Nginx]
B --> C[PHP-FPM]
C --> D[(MySQL)]
C --> E[(Redis)]
22万+

被折叠的 条评论
为什么被折叠?



