返回

自制镜像构建 lnp 环境 畅游 Nginx + PHP + MySQL 的世界

后端

构建 lnp 镜像之旅

构建 lnp 镜像就像一场奇妙的旅程,您将亲手搭建一个完整的 web 服务器环境。在这趟旅程中,我们将依次完成以下任务:

  1. 创建一个基础镜像。
  2. 安装并配置 Nginx 服务器。
  3. 编译安装 PHP 并配置 PHP-FPM。
  4. 安装和配置 MySQL 服务。
  5. 安装和配置 Redis 服务。
  6. 构建 lnp 镜像。

1. 创建基础镜像

首先,我们需要创建一个基础镜像。这个镜像将包含构建 lnp 环境所需的基础组件,例如操作系统的基本功能、必要的工具和库等。我们可以使用 Ubuntu 作为基础镜像。

FROM ubuntu:18.04

2. 安装并配置 Nginx 服务器

Nginx 是一个高性能的 web 服务器,我们将使用它来处理 HTTP 请求。

RUN apt-get update && apt-get install -y nginx

接下来,我们需要配置 Nginx。我们将创建一个简单的配置文件,以便 Nginx 可以正确地处理 PHP 请求。

RUN echo "server {
        listen 80;
        server_name localhost;
        root /var/www/html;
        index index.php index.html;

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

        location ~ \.php$ {
                fastcgi_pass php-fpm:9000;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}" > /etc/nginx/sites-available/default

3. 编译安装 PHP 并配置 PHP-FPM

接下来,我们需要编译安装 PHP 并配置 PHP-FPM。PHP-FPM 是一个 FastCGI 进程管理器,它可以处理 PHP 请求。

RUN apt-get update && apt-get install -y php-fpm php-cli php-mysql php-curl php-gd php-mbstring php-xml php-zip

接下来,我们需要配置 PHP-FPM。我们将创建一个简单的配置文件,以便 PHP-FPM 可以正确地处理 PHP 请求。

RUN echo "[global]
pid = /run/php/php7.4-fpm.pid
error_log = /var/log/php7.4-fpm.log
log_level = warning

[www]
listen = 127.0.0.1:9000
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3" > /etc/php/7.4/fpm/pool.d/www.conf

4. 安装和配置 MySQL 服务

接下来,我们需要安装和配置 MySQL 服务。

RUN apt-get update && apt-get install -y mysql-server

接下来,我们需要配置 MySQL 服务。我们将创建一个数据库和一个用户,以便 PHP 可以连接到 MySQL。

RUN mysql -u root -p"" -e "CREATE DATABASE lnp;"
RUN mysql -u root -p"" -e "CREATE USER 'lnp'@'localhost' IDENTIFIED BY 'lnp';"
RUN mysql -u root -p"" -e "GRANT ALL PRIVILEGES ON lnp.* TO 'lnp'@'localhost';"
RUN mysql -u root -p"" -e "FLUSH PRIVILEGES;"

5. 安装和配置 Redis 服务

接下来,我们需要安装和配置 Redis 服务。

RUN apt-get update && apt-get install -y redis-server

6. 构建 lnp 镜像

现在,我们已经安装和配置了 Nginx、PHP、MySQL 和 Redis 服务。接下来,我们需要构建 lnp 镜像。

RUN docker build -t lnp .

运行 lnp 镜像

现在,我们已经构建了 lnp 镜像。接下来,我们可以运行这个镜像。

docker run -d --name lnp -p 80:80 lnp

访问 lnp 环境

现在,我们可以访问 lnp 环境了。在浏览器中输入 http://localhost,您将看到一个简单的欢迎页面。这表明 lnp 环境已经成功运行。

总结

在这篇教程中,我们学习了如何使用 Dockerfile 构建一个 lnp 镜像。您可以在本地轻松运行 Nginx、PHP 和 MySQL 服务,以便在开发和生产环境中部署 lnp 环境。