首页 后端开发 php教程 Docker Compose、Nginx和MariaDB的开箱即用解决方案:快速搭建PHP环境

Docker Compose、Nginx和MariaDB的开箱即用解决方案:快速搭建PHP环境

Oct 12, 2023 pm 12:46 PM
docker nginx mariadb

Docker Compose、Nginx和MariaDB的开箱即用解决方案:快速搭建PHP环境

Docker Compose、Nginx和MariaDB的开箱即用解决方案:快速搭建PHP环境

概述:

在开发和部署PHP应用程序时,搭建一个可靠且易于管理的环境是至关重要的。Docker Compose、Nginx和MariaDB可以提供一个快速搭建PHP环境的解决方案。本文将介绍如何使用Docker Compose来配置和运行容器,使用Nginx作为Web服务器,使用MariaDB作为数据库,快速搭建PHP环境。

一、安装Docker和Docker Compose:

首先,我们需要在本地机器上安装Docker和Docker Compose。可以在Docker官方网站上找到适用于不同操作系统的安装指南。安装完成后,验证安装是否成功,可以在终端或命令提示符中输入以下命令:

docker --version
docker-compose --version
登录后复制

如果能够正确显示版本号,则表示Docker和Docker Compose已成功安装。

二、创建Docker Compose文件:

接下来,我们需要创建一个名为docker-compose.yml的文件,并在其中定义我们的服务和容器配置。

version: '3'
services:
  nginx:
    build:
      context: .
      dockerfile: nginx.dockerfile
    ports:
      - 80:80
    depends_on:
      - php
  php:
    build:
      context: .
      dockerfile: php.dockerfile
    volumes:
      - ./src:/var/www/html
  mariadb:
    image: mariadb
    environment:
      - MYSQL_ROOT_PASSWORD=secret
登录后复制

解释:

  • nginx服务:使用build指令构建一个基于Nginx的容器,将本地机器的80端口映射到容器的80端口,依赖于php服务。
  • php服务:使用build指令构建一个包含必要PHP扩展的容器,将本地机器的./src目录挂载到容器的/var/www/html目录,实现代码的同步更新。
  • mariadb服务:使用默认的MariaDB Docker镜像,设置ROOT密码为secret。

三、创建Dockerfile和配置文件:

接下来,我们需要创建Dockerfile和配置文件,以便在构建镜像时提供必要的配置和依赖。

  1. nginx.dockerfile:
FROM nginx

COPY nginx.conf /etc/nginx/nginx.conf
COPY default.conf /etc/nginx/conf.d/default.conf
登录后复制

解释:从官方的Nginx镜像构建一个新的镜像,然后将本地的nginx.conf和default.conf文件复制到容器的相应位置。

  1. php.dockerfile:
FROM php:7.4-fpm

RUN apt-get update && apt-get install -y 
    zlib1g-dev 
    libzip-dev 
    && docker-php-ext-install zip pdo_mysql

COPY php.ini /usr/local/etc/php/conf.d/custom.ini
登录后复制

解释:从官方的PHP镜像构建一个新的镜像,然后使用apt-get命令安装必要的依赖,并通过docker-php-ext-install命令安装zip和pdo_mysql扩展。最后将本地的php.ini文件复制到容器中。

  1. nginx.conf:
user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;
    
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        root   /var/www/html;
        index  index.php index.html;

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

        location ~ .php$ {
            fastcgi_pass   php:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}
登录后复制

解释:这是Nginx的配置文件。配置了默认的日志路径、事件设置、http设置和一个基本的server块,用于处理请求,并将PHP处理交给php容器。

  1. default.conf:
server {
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ .php$ {
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
登录后复制

解释:这是Nginx的默认配置文件。与nginx.conf文件中的server块设置相同。

四、开始构建和运行容器:

在设置完所有配置文件之后,我们可以开始构建和运行容器了。在终端或命令提示符中,进入docker-compose.yml文件所在的目录,然后运行以下命令:

docker-compose up --build
登录后复制

这条命令将启动构建镜像和运行容器的过程。一旦完成,你将会看到容器正在运行,并且可以通过http://localhost访问PHP应用程序。

如果需要在后台运行容器,可以使用以下命令:

docker-compose up -d --build
登录后复制

这条命令将以守护进程模式运行容器。

总结:

通过Docker Compose、Nginx和MariaDB的开箱即用解决方案,我们可以快速搭建和管理PHP环境。Docker的可移植性和容器化的优势,使得开发和部署PHP应用程序变得更加简单和可靠。希望本文对你有所帮助,有关代码示例的更多细节,请参阅本文所提到的配置文件。

以上是Docker Compose、Nginx和MariaDB的开箱即用解决方案:快速搭建PHP环境的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

docker镜像源怎么换国内 docker镜像源怎么换国内 Apr 15, 2025 am 11:30 AM

可切换到国内镜像源,步骤如下:1. 编辑配置文件 /etc/docker/daemon.json,添加镜像源地址;2. 保存退出后,重启 Docker 服务 sudo systemctl restart docker,即可提升镜像下载速度和稳定性。

docker desktop怎么用 docker desktop怎么用 Apr 15, 2025 am 11:45 AM

如何使用 Docker Desktop?Docker Desktop 是一款工具,用于在本地机器上运行 Docker 容器。其使用步骤包括:1. 安装 Docker Desktop;2. 启动 Docker Desktop;3. 创建 Docker 镜像(使用 Dockerfile);4. 构建 Docker 镜像(使用 docker build);5. 运行 Docker 容器(使用 docker run)。

docker版本怎么看 docker版本怎么看 Apr 15, 2025 am 11:51 AM

要获取 Docker 版本,您可以执行以下步骤:运行 Docker 命令“docker --version”来查看客户端和服务器版本。对于 Mac 或 Windows,还可以通过 Docker Desktop GUI 的“版本”选项卡或“关于 Docker Desktop”菜单查看版本信息。

docker怎么创建镜像 docker怎么创建镜像 Apr 15, 2025 am 11:27 AM

创建 Docker 镜像步骤:编写包含构建指令的 Dockerfile。在终端中构建镜像,使用 docker build 命令。标记镜像,使用 docker tag 命令分配名称和标签。

docker lnmp怎么调用 docker lnmp怎么调用 Apr 15, 2025 am 11:15 AM

Docker LNMP 容器调用步骤:运行容器:docker run -d --name lnmp-container -p 80:80 -p 443:443 lnmp-stack获取容器 IP:docker inspect lnmp-container | grep IPAddress访问网站:http://<容器 IP>/index.phpSSH 访问:docker exec -it lnmp-container bash访问 MySQL:mysql -u roo

docker镜像怎么保存 docker镜像怎么保存 Apr 15, 2025 am 11:54 AM

在 Docker 中保存镜像,可以使用 docker commit 命令创建新的镜像,包含指定容器的当前状态,语法为:docker commit [选项] 容器ID 镜像名称。要保存镜像到仓库,可以使用 docker push 命令,语法为:docker push 镜像名称[:标签]。要导入已保存的镜像,可以使用 docker pull 命令,语法为:docker pull 镜像名称[:标签]。

docker怎么更新镜像 docker怎么更新镜像 Apr 15, 2025 pm 12:03 PM

更新 Docker 镜像的步骤如下:拉取最新镜像标记新镜像为特定标签删除旧镜像(可选)重新启动容器(如果需要)

怎么运行docker命令 怎么运行docker命令 Apr 15, 2025 am 11:24 AM

如何运行 Docker 命令?安装 Docker并启动守护程序。常用 Docker 命令:docker images:显示镜像docker ps:显示容器docker run:运行容器docker stop:停止容器docker rm:删除容器使用 Docker 命令与容器交互:docker exec:执行命令docker attach:附加控制台docker logs:显示日志docker commit:提交更改为镜像停止 Docker 守护程序:sudo systemctl stop doc

See all articles