Docker教程 · 2024年11月15日

如何通过Docker部署PHP应用并连接MySQL数据库?

如何通过Docker部署PHP应用并连接MySQL数据库

在现代软件开发中,Docker已成为一种流行的容器化技术,它能够简化应用程序的部署和管理。本文将介绍如何通过Docker部署一个简单的PHP应用,并连接到MySQL数据库。

环境准备

在开始之前,确保你的系统上已安装Docker和Docker Compose。你可以通过以下命令检查Docker是否已安装:

docker --version

如果未安装,请访问Docker官网获取安装指南。

创建项目目录

首先,创建一个新的项目目录,并在其中创建必要的文件:

mkdir php-docker-app
cd php-docker-app
touch Dockerfile docker-compose.yml index.php

编写Dockerfile

在Dockerfile中,我们将定义PHP环境。以下是一个简单的Dockerfile示例:

FROM php:7.4-apache

# 将当前目录的内容复制到容器的/var/www/html目录
COPY . /var/www/html/

# 安装PDO MySQL扩展
RUN docker-php-ext-install pdo pdo_mysql

编写docker-compose.yml

接下来,我们需要创建一个docker-compose.yml文件,以便定义服务和网络。以下是一个示例配置:

version: '3.8'

services:
  web:
    build: .
    ports:
      - "8080:80"
    depends_on:
      - db

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: testdb
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    ports:
      - "3306:3306"

编写PHP代码

在index.php文件中,我们将编写一些简单的代码来连接MySQL数据库并执行查询:

<?php
$servername = "db";
$username = "user";
$password = "password";
$dbname = "testdb";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
echo "连接成功!";
?>

构建和运行容器

在项目目录中,使用以下命令构建并启动Docker容器:

docker-compose up -d

此命令将后台运行容器。你可以通过访问 http://localhost:8080 来查看你的PHP应用是否成功运行。

连接MySQL数据库

在PHP代码中,我们使用mysqli扩展连接到MySQL数据库。请确保在docker-compose.yml中定义的数据库信息与PHP代码中的一致。

总结

通过以上步骤,你可以轻松地使用Docker部署一个PHP应用并连接到MySQL数据库。Docker的容器化特性使得应用的部署变得更加简单和高效。如果你需要更强大的服务器支持,可以考虑使用米云提供的美国云服务器,以满足你的业务需求。