在 Ubuntu 下通过 Docker 部署 Nginx+PHP-FPM 服务器

引言

大家好,今天我们来聊聊如何在 Ubuntu 下通过 Docker 部署 Nginx 和 PHP-FPM 服务器。Docker 是一个开源的容器化平台,可以轻松地打包、分发和管理应用程序。而 Nginx 是一个高性能的 HTTP 服务器和反向代理服务器,PHP-FPM 则是 PHP 的一种处理模式,专门用于处理高并发的请求。将这两者结合在一起,可以构建一个高效且易于维护的 Web 服务器。

本次实验使用的是阿贝云的免费服务器,配置为 1 核 CPU、1G 内存和 5M 带宽。经过测试,这个配置能够满足本次实验的小型项目的需求。

部署教程

步骤 1:安装 Docker

首先,我们需要在 Ubuntu 上安装 Docker。执行以下命令:

复制代码
sudo apt update
sudo apt install docker.io

步骤 2:启动 Docker 服务

确保 Docker 服务正在运行:

复制代码
sudo systemctl start docker
sudo systemctl enable docker

步骤 3:创建 Docker 网络

接下来,我们创建一个 Docker 网络,以便 Nginx 和 PHP-FPM 可以相互通信:

复制代码
docker network create my_network

步骤 4:创建 PHP-FPM 容器

现在,我们使用以下命令创建 PHP-FPM 容器:

复制代码
docker run -d --name php-fpm --network my_network -v /path/to/your/php:/var/www/html php:fpm

在这里,/path/to/your/php 是你本地的 PHP 文件路径。

步骤 5:创建 Nginx 容器

创建 Nginx 容器并配置反向代理:

复制代码
docker run -d --name nginx --network my_network -p 80:80 -v /path/to/your/nginx.conf:/etc/nginx/nginx.conf nginx

步骤 6:配置 Nginx

在你的本地路径下,创建 nginx.conf 文件,内容如下:

复制代码
server {
    listen 80;
    server_name localhost;

    location / {
        root /var/www/html;
        index index.php index.html index.htm;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass php-fpm:9000;
    }
}

步骤 7:启动服务

最后,确保所有容器都在运行:

复制代码
docker ps

如果一切正常,你应该能在浏览器中访问你的 Nginx 服务器,看到 PHP 页面被正确渲染。

结尾

就这样,我们成功在 Ubuntu 下通过 Docker 部署了 Nginx 和 PHP-FPM 服务器。这个过程简单明了,适合快速搭建开发环境。希望对你有所帮助!

相关推荐
.柒宇.1 小时前
使用 cri-docker 搭建 Kubernetes 集群完整教程(v1.36.3)
docker·容器·kubernetes·k8s集群安装
辻弋2011 小时前
一键优化电源计划、游戏模式、独显强制、禁用后台录制——DeltaForceBooster专治三角洲行动卡顿掉帧,所有改动可一键还原
服务器·数据库·windows·游戏·电脑·php
xcLeigh1 小时前
Go入门:基本数据类型全览与选择指南
android·服务器·golang·教程·go热门
何以解忧,唯有..2 小时前
Python os模块详解:文件与目录操作指南
java·服务器·python
Brilliantwxx2 小时前
【Linux】 进程(3)深度解析:从查看进程到进程状态
linux·服务器·网络·c++
我星期八休息2 小时前
Linux—五种IO模型与非阻塞IO
linux·运维·服务器·网络·数据库·网络协议
hweiyu002 小时前
Linux命令:column
linux·运维·服务器
绿蚁新亭3 小时前
Markdown Wiki 网页代码块复制至欧拉 Linux Shell 脚本隐形字符故障完整复盘
linux·运维·服务器
Loongproxy3 小时前
2026年动态IP代理真实可用率怎么横评?爬虫选代理的关键是什么
服务器·网络·网络协议·tcp/ip
艾伦_耶格宇3 小时前
【DOCKER容器实战】-3 ElasticSearch + Kibana
elasticsearch·docker·jenkins