用 Docker 快速部署 PHP 和 Nginx

admin 2024-01-11 523 阅读 0评论

容器化 PHP 和 Nginx 需要为每个服务创建 Docker 容器,并将它们配置为协同工作。以下是创建基本 Docker 配置所涉及的步骤,该示例基于一个简单的 PHP 应用程序。

1、创建项目结构:

首先创建具有以下结构的项目:

//projet
├── index.php
├── nginx
│   └── nginx.conf
├── Dockerfile
├── Dockerfile-nginx
└── docker-compose.yml

2. 创建 PHP 应用程序

创建一个简单的 PHP 应用程序。例如,在根目录中创建一个名为 index.php 的文件:

<?php
echo "Hello!";

3. 配置 Nginx

在 nginx/nginx.conf 文件中创建 Nginx 配置文件:

server {
    listen 80;
    index index.php;
    server_name localhost;
    error_log /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    error_page 404 /index.php;
    root /var/www;
    client_max_body_size 20m;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location / {
        try_files $uri $uri/ /index.php?$query_string;
        gzip_static on;
    }
}

4、编写 Dockerfile :

FROM php:8.0.2-fpm

WORKDIR /var/www

5、创建 Nginx Dockerfile

在项目根目录中创建 Dockerfile-nginx 文件,内容如下:

FROM nginx:1.19-alpine

WORKDIR /var/www

6、创建 .dockerignore 文件

在项目根目录中创建 .dockerignore 文件,内容如下:

docker-compose
Dockerfile*

7、编写 Docker Compose 文件

在项目根目录中创建 docker-compose.yml 文件,内容如下:

version: "3"

services:
  app:
    container_name: app-container
    build:
      context: ./
      dockerfile: ./Dockerfile
    working_dir: /var/www/
    restart: always
    volumes:
      - ./:/var/www
    networks:
      - app-network

  nginx:
    container_name: nginx-container
    build:
      context: ./
      dockerfile: ./Dockerfile-nginx
    restart: always
    ports:
      - "8000:80"
    volumes:
      - ./nginx:/etc/nginx/conf.d
      - ./:/var/www
    depends_on:
      - app
    networks:
      - app-network

networks:
  app-network:
    driver: bridge

我们创建了一个应用程序网络,以便将 PHP 和 Nginx 容器连接到同一网络。这允许它们相互通信,而不会与本地系统的网络隔离。

8、构建并运行容器

使用以下命令构建并运行容器:

docker-compose up --build

访问应用程序:

在浏览器中打开 http://localhost:8000。您应该看到消息“Hello!”。

喜欢就支持以下吧
点赞 0

发表评论

快捷回复: 表情:
aoman baiyan bishi bizui cahan ciya dabing daku deyi doge fadai fanu fendou ganga guzhang haixiu hanxiao zuohengheng zhuakuang zhouma zhemo zhayanjian zaijian yun youhengheng yiwen yinxian xu xieyanxiao xiaoku xiaojiujie xia wunai wozuimei weixiao weiqu tuosai tu touxiao tiaopi shui se saorao qiudale qinqin qiaoda piezui penxue nanguo liulei liuhan lenghan leiben kun kuaikule ku koubi kelian keai jingya jingxi jingkong jie huaixiao haqian aini OK qiang quantou shengli woshou gouyin baoquan aixin bangbangtang xiaoyanger xigua hexie pijiu lanqiu juhua hecai haobang caidao baojin chi dan kulou shuai shouqiang yangtuo youling
提交
评论列表 (有 0 条评论, 523人围观)

最近发表

热门文章

最新留言

热门推荐

标签列表