构建高效的 Docker Compose PHP LAMP 开发环境:实践指南

Photo by Growtika on Unsplash

构建高效的 Docker Compose PHP LAMP 开发环境:实践指南

利用 Docker Compose 优化 PHP LAMP Web 开发流程

·

2 min read

在本文中,我们将介绍如何使用 Docker Compose 快速搭建一个 PHP LAMP(Linux + Apache + MySQL + PHP)开发环境,让您能够高效地进行 Web 开发。

步骤 1:安装 Docker 和 Docker Compose 首先,您需要在您的机器上安装 Docker 和 Docker Compose。您可以从 Docker 官方网站(https://www.docker.com/get-started)下载并按照指引安装适用于您操作系统的版本。

步骤 2:创建项目目录结构

在您的工作目录下创建一个文件夹用于存放开发相关的文件,比如“lamp

步骤3: 下载php-7.4.33.tar.gz源码

php-7.4.33.tar.gz源码下载到您创建的目录下。下载源码目的是为了编译mysqli.so扩展,此操作将在制作构建镜像的时候执行。

wget https://www.php.net/distributions/php-7.4.33.tar.gz

步骤4: 编写Dockerfile配置文件

这里我们使用“php:7.4-apache”作为基础镜像,使用docker pull php:7.4-apache提前拉去镜像。在项目目录中创建一个名为 "Dockerfile" 的文件,并使用文本编辑器打开它。然后,将以下内容粘贴到该文件中:

FROM php:7.4-apache

LABEL MAINTAINER="Bruce Lu <bruce.lu@luxiaoyou.com>"

ARG PHP_VER_NUM=7.4.33
ARG WEB_ROOT=/var/www/html

ADD ./php-${PHP_VER_NUM}.tar.gz ${WEB_ROOT}

WORKDIR ${WEB_ROOT}/php-${PHP_VER_NUM}/ext/mysqli

RUN /usr/local/bin/phpize \
    && ./configure \
    && make \
    && make install \
    && echo 'extension=mysqli' > /usr/local/etc/php/conf.d/docker-php-ext-mysqli.ini \
    && rm ${WEB_ROOT}/* -rvf

WORKDIR ${WEB_ROOT}

执行下面代码构建php:7.4-apache-mysqli镜像

docker build --no-cache -t php:7.4-apache-mysqli .

步骤 5:编写 Docker Compose 配置文件 在项目目录中创建一个名为 "docker-compose.yml" 的文件,并使用文本编辑器打开它。然后,将以下内容粘贴到该文件中:

version: '3'
services:
  web:
    image: php:7.4-apache-mysqli
    ports:
      - "8000:80"
    volumes:
      - ./web_root:/var/www/html
    depends_on:
      - db
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root2023
      MYSQL_DATABASE: mydb
      MYSQL_USER: bruce
      MYSQL_PASSWORD: bruce2023
    volumes:
      - db_data:/var/lib/mysql
volumes:
  db_data:

这个 Docker Compose 配置文件定义了两个服务:web(Apache + PHP)和 db(MySQL)。"volumes" 部分用于持久化 MySQL 数据。记得将数据库的相关账户信息改成您自己的。

步骤 6:创建网站文件夹 在项目目录中创建一个名为 "web_root" 的文件夹,用于存放您的 PHP 项目文件。比如“index.php”,代码如下:

<?php
echo 'welcome to <a href="https://luxiaoyou.com/">luxiaoyou.com</a>';

$host = 'db'; // MySQL服务器主机名
$username = 'root'; // MySQL用户名
$password = 'root2023'; // MySQL密码
$database = 'mydb'; // 要连接的数据库名称


// 创建数据库连接
$conn = new mysqli($host, $username, $password, $database);

// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

echo " MySQL 连接成功!!";

// 在这里可以执行你的数据库查询和操作

// 关闭数据库连接
$conn->close();
?>

步骤 7:构建和启动容器 在终端中切换到您的项目目录,并运行以下命令来构建并启动容器:

docker-compose up -d

步骤 8:访问您的 PHP 网站 打开您的 Web 浏览器,并访问 "localhost:8000"。您应该能够看到一个如下图页面,表示您的 PHP LAMP 开发环境已经成功搭建起来了。

步骤 9:停止并清理容器 当您完成开发工作后,您可以使用下面的命令停止并清理容器:

docker-compose down

这将停止并移除所有相关的容器和网络。

总结: 使用 Docker Compose 搭建自己的 PHP LAMP 开发环境可以帮助您快速、方便地进行 Web 开发工作。通过容器化技术,您可以避免与不同版本的软件和依赖项之间的冲突,同时还可以轻松地与团队共享和部署开发环境。希望本文能够帮助您顺利搭建和使用您的 PHP LAMP 开发环境!

使用到的源码:github.com/luxiaoyou/awesome-compose/tree/m..