docker部署php服务

由于安装php的依赖环境太多, 无论yum安装, 还是自己编译安装, 都不够方便, 迁移也麻烦, 所以这里选择使用docker

部署容器

启动命令

docker run -d --name php-fpm \
    --restart=always \
    -v /mnt/php_src:/var/www/html \
    -p 127.0.0.1:9000:9000 \
    php:8.0.3-fpm-alpine
  • /mnt/php_src:/var/www/html: 本机目录:容器目录
  • 127.0.0.1:9000:9000: 本机监听端口:容器fpm端口

检验

默认的情况下, php的docker镜像不包含pdomysqlnd扩展, 如果有用到这块, 直接在容器中安装

# 进入容器
docker exec -it xxxx sh
# 执行
docker-php-ext-install pdo pdo_mysql

安装完成后, 记得重启容器, 让扩展程序重新加载

nginx配置

server {
    listen  80;
    server_name  www.yinnote.com;

    # 本机的站点
    root  /mnt/php_src/yinnote;
    index index.php;

    location ~ \.php$ {
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;
        # 指定容器中的站点路径
        fastcgi_param SCRIPT_FILENAME /var/www/html/yinnote/$fastcgi_script_name;
        include fastcgi_params;
    }
}
  • root: 宿主机中项目站点
  • fastcgi_pass: 指定php-fpm服务
  • fastcgi_param: 需要指定容器内项目的路径

如果nginx也是通过容器部署的, 建议两者将站点目录挂载一致, 方便配置

展示评论