### [Docker Compose、Nginx和MariaDB的最佳实践:部署PHP应用程序的流程整合](https://www.prosaas.cn/article/12240) **Published:** 2023-10-12T06:03:15 **Author:** 5201314 **Excerpt:** Docker Compose、Nginx和MariaDB的最佳实践:部署PHP应用程序的流程整合引言:随着云计… ![20231212154050819](https://zhiqipro.oss-cn-beijing.aliyuncs.com/2023/10/20231212154050819.jpg "20231212154050819") Docker Compose、Nginx和MariaDB的最佳实践:部署PHP应用程序的流程整合 引言: 随着云计算和容器化技术的迅速发展,Docker已成为了现代化开发和部署应用程序的一种重要方式。在众多的Docker工具中,Docker Compose作为一个编排容器服务的工具,被广泛应用于多容器应用的部署和管理。而Nginx和MariaDB作为常用的开源软件,也在很多应用场景中扮演着重要的角色。 本文将介绍如何通过Docker Compose整合Nginx和MariaDB来部署PHP应用程序。我们将分为以下几个步骤进行阐述:准备工作、创建Docker Compose文件、编写Nginx配置、编写PHP应用程序、启动容器、访问应用程序。 一、准备工作 在开始之前,我们需要在本地环境中安装Docker和Docker Compose。请确保系统已经正确安装了最新版本的Docker和Docker Compose,并可以正常运行。 二、创建Docker Compose文件 在项目的根目录下创建一个名为docker-compose.yml的文件,该文件将定义我们整合应用程序所需的所有容器服务。 version: '3' services: web: build: . ports: - 80:80 volumes: - ./app:/var/www/html depends\_on: - db db: image: mariadb:latest environment: - MYSQL\_ROOT\_PASSWORD=secret volumes: - ./db:/var/lib/mysql 在上述的Docker Compose文件中,定义了两个服务:web和db。服务web将会构建当前目录中的代码,并将本地80端口映射到容器的80端口。服务db使用最新版本的MariaDB镜像,并设置了环境变量MYSQL\_ROOT\_PASSWORD来定义数据库的root密码。 三、编写Nginx配置 在项目的根目录下创建一个名为nginx.conf的文件,并编写Nginx的配置内容。以下是一份基本的Nginx配置示例: server { listen 80; server\_name localhost; root /var/www/html/public; index index.php; location / { try\_files $uri $uri/ /index.php?$args; } location ~ .php$ { fastcgi\_pass 127.0.0.1:9000; fastcgi\_index index.php; fastcgi\_param SCRIPT\_FILENAME $document\_root$fastcgi\_script\_name; include fastcgi\_params; } } 在上述的Nginx配置文件中,我们定义了监听端口为80,服务器名称为localhost。根目录指定为/var/www/html/public,并设置了index.php为默认的索引文件。同时,我们定义了两个location块,分别用于处理静态文件和处理PHP文件的请求。 四、编写PHP应用程序 在app目录下编写PHP应用程序的代码。这里以一个简单的Hello World程序为例,新建一个名为index.php的文件,并添加以下代码: