自制镜像构建 lnp 环境 畅游 Nginx + PHP + MySQL 的世界
2023-10-04 14:06:46
构建 lnp 镜像之旅
构建 lnp 镜像就像一场奇妙的旅程,您将亲手搭建一个完整的 web 服务器环境。在这趟旅程中,我们将依次完成以下任务:
- 创建一个基础镜像。
- 安装并配置 Nginx 服务器。
- 编译安装 PHP 并配置 PHP-FPM。
- 安装和配置 MySQL 服务。
- 安装和配置 Redis 服务。
- 构建 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 环境。