在 Ubuntu 下通过 Docker 部署 Caddy 和 PHP-FPM 服务器

Windows与RHEL系统部署Caddy服务器全指南 Web服务器是现代应用架构的核心组件,负责处理HTTP请求和响应。Caddy作为一款轻量级、高性能的Web服务器,以其自动HTTPS和简洁配置著称。相比传统服务器如Nginx和Apache,Caddy采用Go语言编写,具有更低的内存占用和更快的启动速度。其内置的自动证书管理功能通过Let's Encrypt实现零配置HTTPS,大幅简化了安全部署流程。在Windows和RHEL系统上,Caddy可以快速部署为服务,支持静态网站托管、反向代理和API网关等场景。结合OpenWebUI框架,开发者能构建现代化的 阅读详情

引言

大家好,今天我们要聊的主题是如何在 Ubuntu 上通过 Docker 部署 Caddy 和 PHP-FPM 服务器。Caddy 是一个现代化的 web 服务器,支持 HTTPS,配置简单;而 PHP-FPM 是 PHP 的 FastCGI 进程管理器,能够高效处理 PHP 请求。二者结合,简直是开发者的福音。

Docker、Caddy 和 PHP-FPM 简介

Docker 是一个开源的容器化平台,允许开发者轻松打包、分发和运行应用。通过 Docker,应用及其依赖关系被封装在一个独立的容器中,确保在任何环境下都能顺利运行。

Caddy 是一个强大的 web 服务器,自动为网站提供 HTTPS 支持,配置文件简单易懂,适合快速部署。PHP-FPM 则是优化 PHP 性能的重要工具,通过管理多个 PHP 进程,提高响应速度和并发处理能力。将这两者结合,能够快速搭建出高效、可靠的 web 应用环境。

实验环境配置

这次实验我使用的是阿贝云的免费服务器,配置为 1 核 CPU、1GB 内存和 5M 带宽。这个配置对于小型项目的测试是足够的。

部署步骤

下面是详细的部署步骤和命令:

1. 安装 Docker 和 Docker Compose

确保你的系统是最新的:

sudo apt update && sudo apt upgrade -y

安装 Docker:

sudo apt install -y docker.io

安装 Docker Compose:

sudo apt install -y docker-compose

2. 创建项目目录

mkdir -p ~/caddy-php
cd ~/caddy-php

3. 创建 docker-compose.yml 文件

在项目目录下创建 docker-compose.yml 文件,内容如下:

version: '3.7'
services:
  caddy:
    image: caddy:latest
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./site:/srv
    networks:
      - webnet

  php:
    image: php:8.0-fpm
    volumes:
      - ./site:/var/www/html
    networks:
      - webnet

networks:
  webnet:

4. 创建 Caddyfile

在项目目录下创建 Caddyfile,配置 Caddy 服务器:

your-domain.com {
    root * /srv
    php_fastcgi php:9000
    file_server
    log {
        output stdout
        format json
    }
}

将 your-domain.com 替换为你的域名。

5. 创建网站目录

创建一个网站目录并添加 index.php 文件:

mkdir site
echo "<?php phpinfo(); ?>" > site/index.php

6. 启动 Docker 容器

在项目目录下运行以下命令启动服务:

sudo docker-compose up -d

7. 测试访问

打开浏览器,访问 http://your-domain.com,你应该能看到 PHP 信息页面。

结尾

就这样,一个简单的 Caddy 和 PHP-FPM 服务器就部署好了。通过 Docker,整个过程变得无比顺畅。记得根据你的需求调整配置,享受开发的乐趣!如果有任何问题,欢迎留言讨论。

Ubuntu 16.04下Caddy+WordPress深度调优实战 WordPress是一种基于PHP的动态内容管理系统,其运行依赖HTTP服务器、PHP-FPM和MySQL三者协同。在老旧但仍在服役的Ubuntu 16.04系统上,因软件源中Caddy 0.9.x存在HTTP/2握手缺陷、FastCGI路径解析漏洞及ACME v1证书协议过时等问题,极易触发502 Bad Gateway与wordpress后台很慢等典型故障。技术价值在于绕过apt包管理陷阱,通过源码编译Caddy 0.10.14、强制Unix socket通信、适配MySQL 5.7严格模式,并结合OP 阅读详情

相关推荐

Ubuntu 20.04 安装 Nextcloud 最佳实践:Snap 一键部署与生产调优

Nextcloud 是一款开源私有云文件同步与协作平台,其核心价值在于数据自主可控与端到端可定制。在 Ubuntu 系统中部署 Nextcloud,本质是解决 PHP 运行时、Web 服务器、数据库及缓存服务的版本协同与权限隔离问题。传统 LAMP 方式易因依赖冲突(如 PHP 7.4 不兼容 Nextcloud 25+)和配置碎片化导致失败;而 Snap 封装方案通过自包含运行时(PHP 8.1)、内置 Caddy 服务器与 SQLite/Redis,实现开箱即用、自动 HTTPS 和原子化升级。该方案特

cong84596496的博客 428

Windows Server 下通过Caddy、PHP安装Typecho博客程序

一哥们在华为云买了域名和服务器,但是不怎么用,之前是用 WordPress 的一为导航(onenav)模板做的站点,但因工作原因精力有限,就放弃做了,随后他就把系统重装为 Windows Server 系统 ,搁那丢了好久。

Zuozi - 网络从业者长见识就来Zuozi.NET 953

学生服务器实战指南:从吃灰到高效利用的完整项目部署方案

云服务器作为现代软件开发和运维的核心基础设施,其核心价值在于提供了一个可弹性伸缩、完全可控的远程计算环境。其工作原理是通过虚拟化技术,在物理服务器上划分出独立的虚拟资源单元,用户可通过网络远程访问和管理。对于开发者而言,一台个人服务器不仅是学习Linux系统、网络协议和中间件部署的理想沙盒,更是实践DevOps理念、构建自动化工作流的关键平台。通过容器化技术(如Docker)和编排工具,可以高效部署博客系统、监控面板、自托管应用等多样化项目,将服务器从闲置成本转化为驱动技术成长的核心资产。本文聚焦于学生服务

weixin_33824363的博客 487

caddy安装php,caddy下php运行环境的配置

Loading...## 架构linux+caddy+php7.3+mysql5.5并且使用每小时使用sqldump导出数据库文件,和网站文件一起同步到github私有库作备份php7.3+mysql5.5使用宝塔面板进行管理## caddy### 安装caddy系统要求:CentOS 6+/Debian 6+/Ubuntu 14.04 +。推荐Debian 7 x64。本脚本只是一个一键安装+运...

weixin_29232507的博客 2654

Traefik+Docker在Ubuntu 18.04上的生产级反向代理实践

反向代理是容器化应用对外提供服务的基础网络组件,其核心在于动态服务发现、自动化TLS证书管理与零配置运维。传统Nginx需手动维护配置和重载,难以适配Docker容器IP动态变化与高频启停特性;而Traefik原生集成Docker事件监听机制,通过容器labels声明路由规则,实现秒级服务注册、自动HTTPS(Let’s Encrypt)、内置中间件(如限流、认证、重定向)等能力。在Ubuntu 18.04这一广泛用于边缘设备与遗留服务器的稳定发行版上,Traefik v2.10凭借对cgroup v1、s

weixin_30240349的博客 472

Ubuntu 18.04 下 OpenLiteSpeed + lsphp73 高性能 Web 服务器部署指南

Web 服务器是现代网站与应用的底层基石,其性能直接影响响应速度、并发承载与运维复杂度。OpenLiteSpeed 作为轻量级高性能 Web 服务器代表,采用单进程异步I/O与内置PHP运行时(lsphp)架构,显著降低进程创建与上下文切换开销;相比传统 Apache/Nginx + PHP-FPM 组合,它在资源受限环境(如2核4GB云服务器)中可实现更高并发与更低TTFB。其核心优势在于深度集成的 lsphp 分支——专为 LiteSpeed 优化,强制启用 OPcache 共享内存、禁用非Web SA

weixin_30460489的博客 515

推荐开源项目:一键部署Caddy、PHP7和SQLite3的利器

推荐开源项目:一键部署Caddy、PHP7和SQLite3的利器 去发现同类优质开源项目:https://gitcode.com/ 项目简介 在现代Web开发中,快速部署和管理环境是一项至关重要的任务。 是一个轻量级、高效的解决方案,它提供了一键安装Caddy服务器、PHP7运行环境和SQLite3数据库的能力,极大地简化了开发者的工作流程。 技术分析 Caddy - Caddy是一个现代化的...

gitblog_00007的博客 671

Ubuntu 18.04 部署 OpenLiteSpeed 实战指南

Web服务器是现代应用交付的基石,其选型直接影响并发性能、资源开销与运维效率。OpenLiteSpeed 作为轻量级高性能HTTP服务器,采用内置LSAPI架构实现PHP零拷贝执行,显著降低首字节响应延迟;相比Apache的.htaccess动态解析瓶颈和Nginx对PHP-FPM热重启的天然限制,它在老旧系统如Ubuntu 18.04上展现出更强的稳定性与兼容性。尤其在EOL系统环境中,其静态链接关键库、官方.deb包精准适配及图形化WebAdmin控制台等特性,大幅降低升级风险与维护成本,广泛适用于Wo

weixin_34320159的博客 396

Caddy实战(十)| 一分钟搭建PHP服务器

点击上方蓝色“飞雪无情”关注我,设个星标,第一时间看文章Caddy对于反向代理的支持我们已经介绍的差不多了,这也是我们对于Nginx、Caddy最多的应用之一,也就是把他们当成一个反向代理...

flysnow_org的博客 1886

Ubuntu 18.04 下用 Snap 部署 Nextcloud:零配置 HTTPS 与稳定运行方案

Nextcloud 是一款开源私有云协作平台,其稳定运行高度依赖 PHP 运行时、Web 服务器、数据库及 SSL/TLS 协议栈的协同。在 Ubuntu 18.04 这类长期支持但组件生态滞后的系统中,传统 LAMP 部署常因 PHP 扩展缺失、Apache 模块冲突、OpenSSL 版本不兼容及 Let’s Encrypt 证书管理复杂等问题导致失败。Snap 作为 Canonical 原生集成的应用分发机制,通过沙盒化封装 Apache、PHP、SQLite/PostgreSQL、Redis 及自动证

weixin_30553777的博客 384

Docker部署Nextcloud私有云:MariaDB、OnlyOffice与HTTPS全栈实践

Nextcloud作为主流开源私有云平台,其稳定部署依赖Docker容器化、MariaDB数据库优化、OnlyOffice在线协作集成及HTTPS安全加固四大核心技术。理解Docker Compose服务健康检查机制与依赖等待原理,可避免因启动时序导致的500/404错误;掌握MariaDB字符集配置与InnoDB参数调优,是保障Nextcloud全文搜索与大文件上传可靠性的底层基础;而OnlyOffice的JWT兼容性控制与Nginx路径重写规则,则直接决定文档协同功能是否可用。在家庭NAS、边缘服务器或

weixin_30328063的博客 515

如何在 Fedora 34 / CentOS 8 上安装和配置 Caddy Web 服务器使用 PHP

无论您需要托管多少个站点,它的所有配置都可以从单个文件中提供的优势。它是编写配置最灵活的方式,并且支持 Caddy 的所有功能。但如果您不知道如何编写 JSON 文件,Caddy 以 Caddyfile 的形式提供了一种更简单的方法。Caddyfile 允许您设置一些全局适用的选项,即它们将适用于您的所有站点。Caddy 提供了许多功能和配置,因此我们只会选择重要的功能和配置来服务我们的网站。在上面的代码中,轮换的日志文件限制为 10 MB,并在 10 天(240 小时)后或当轮换日志超过 5 个时删除。.

allway2的博客 2030

在Jetson orin NX上安装部署Yolov8

1、环境准备与依赖安装2、安装PyTorch和Torchvision:从NVIDIA官方论坛或开发者下载中心获取与你的JetPack版本兼容的PyTorch wheel文件。例如,对于JetPack 5.1.2,可以安装PyTorch v2.1.0 8。:需要编译安装与PyTorch版本匹配的Torchvision。这里自己编译没有成功,下载了一个现成的可以用torchvision-0.16.2+c6f3977-cp38-cp38-linux_aarch64.whl。

xxxcccvvvbbb的博客 776

Ubuntu 18.04 下 Caddy 零配置 HTTPS 托管实战指南

Web 服务器是现代应用交付的基础设施核心,其核心能力涵盖 HTTP/HTTPS 协议处理、反向代理、TLS 终止与自动证书管理。Caddy 作为原生支持自动化 Let's Encrypt 的轻量级服务器,凭借单二进制部署、无 systemd 依赖及声明式 Caddyfile 配置,在资源受限或老旧系统(如 Ubuntu 18.04)中展现出独特工程价值。它规避了 Nginx/Certbot 组合的复杂链路,通过内存内 ACME 响应、进程自守护机制和内置安全策略,显著降低运维熵值。本文聚焦于在已停止官方支

weixin_34159110的博客 691

Windows 11“此应用已被管理员阻止运行”解决方案

通过本文介绍的两种方法,你应该能够解决Windows 11中“此应用已被管理员阻止运行”的问题。无论你选择创建新管理员账户还是禁用管理员批准模式,都请确保了解相关操作的风险,并根据你的实际需求做出选择。通过禁用“用户账户控制:以管理员批准模式运行所有管理员”设置,可以解决因系统安全设置导致的应用程序被阻止运行的问题。这种方法适用于那些希望简化管理员账户操作流程的用户,但需要注意可能带来的安全风险。通过创建并登录具有管理员权限的新账户,可以解决因系统安全设置导致的应用程序被阻止运行的问题。

mmoo_python的博客 1万+

探索Three.js:利用ShaderMaterial实现动态着色器特效

本文深入探讨了Three.js中ShaderMaterial的应用,指导开发者利用GLSL编写自定义着色器实现动态特效。文章从核心概念GLSL、Uniforms与Attributes讲起,通过创建动态颜色变化平面的实战案例,逐步进阶到实现波纹扩散与动态光影等高级效果,并提供了性能优化与调试技巧,帮助读者掌握创建高性能WebGL视觉特效的关键技能。

weixin_29250403的博客 201

Ubuntu 20.04 下 OpenLiteSpeed 高性能 Web 服务器实战部署指南

Web 服务器是现代网站与应用的底层基石,其性能、协议支持与运维效率直接影响用户体验与开发迭代速度。OpenLiteSpeed 作为少数原生支持 HTTP/3、Brotli 压缩和 LSAPI 进程复用的开源 Web 引擎,凭借内核级缓存优化与图形化 WebAdmin 控制台,在 Ubuntu 20.04 LTS 环境中展现出显著工程优势。它规避了 Nginx 编译 HTTP/3 的复杂性,也超越 Apache 在多租户 WordPress 场景下的资源开销瓶颈。技术价值体现在协议就绪(QUIC/HTTP/

weixin_34129696的博客 436

Lion优化器试验笔记

Lion优化器试验笔记

jacke121的专栏 847

Ubuntu 20.04 Apache部署实战:从安装到HTTPS生产就绪

Web服务器是现代应用架构的基础设施核心,Apache作为最成熟的开源HTTP服务器,其运行原理涉及进程模型、模块化设计、Linux权限机制与systemd服务管理。理解其配置加载流程(如sites-enabled符号链接)、模块启用机制(a2enmod)和安全基线(www-data权限、SSL加固),是保障网站稳定、可审计、可扩展的关键。在Ubuntu 20.04 LTS环境下,APT原生安装提供最高可控性与安全更新时效性,适用于个人博客、PHP应用及企业内部系统等真实场景。本文聚焦于生产级部署路径,覆盖

weixin_33743703的博客 346

【车联网】Automotive 软件过程能力成熟度模型——ASPICE标准入门介绍

ASPICE标准详细定义了与汽车电子软件开发相关的各种术语和概念,包括软件组件、系统集成、测试和验证等。这些定义确保了所有开发团队在使用相同术语时具有一致的理解。

奶爸的编程之路,也就一周冷个三天 2679

华为OD机试真题 新系统 2026-04-26 Python&JS 实现【最大化游戏试玩资格分发】

新研发了一台游戏设备可以面向用户接受试玩。现有 n 个试玩申请,每个试玩有开始时间和结束时间。作为协调员,为了能让更多人体验到游戏,你需要对试玩申请进行选择,使得:

MISAYAONE的博客 290

Ubuntu 20.04 Nextcloud 生产级部署与LAMP深度调优

Nextcloud 是一款开源私有云协同平台,其核心能力依赖于底层 LAMP(Linux-Apache-MySQL-PHP)栈的稳定与精准配置。在 Ubuntu 20.04 这一广泛使用的 LTS 系统上,由于内核、systemd、PHP 7.4 和 MySQL 8.0 的组合特性,直接套用通用教程极易引发兼容性问题——如 MySQL 8.0 的 caching_sha2_password 认证失败、Apache mpm_event 与 PHP-FPM 冲突、locale 缺失导致 cron 中断等。本文聚

weixin_30633405的博客 421

YOLOv9实战:刀具磨损实时监控从摄像头到预测性维护(附车间落地代码)

摘要: 本文针对制造业刀具磨损监控痛点,提出基于YOLOv9的实时视觉检测方案。通过工业相机采集刀具图像,结合图像预处理(去油污、增强对比度)和深度学习模型,实现磨损等级分类与寿命预测。系统集成硬件选型(抗油污相机、红色环形光源)、数据增强(旋转、噪声模拟)及预测性维护(PLC联动),实测刀具利用率提升30%,工件报废率降至0.5%以下。详解车间部署、模型训练到系统落地的全流程,附代码与避坑指南,为工业视觉项目提供实战参考。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 541

Ubuntu 20.04 手动部署 LAMP 全流程详解:Apache、PHP7.4、MariaDB 权限与模块时序深度解析

LAMP(Linux + Apache + MySQL + PHP)是 Web 开发与系统运维的基础技术栈,其核心在于组件间基于文件权限、进程上下文、模块加载时序和 Unix socket 的隐性协同机制。Apache 作为经典 Web 服务器,依赖 mpm_prefork 与 PHP 模块的严格加载顺序;PHP7.4 在 Ubuntu 20.04 中需显式安装 mysql 扩展并规避双重 ini 加载陷阱;MySQL 实际由 MariaDB 10.3 替代,须绕过 auth_socket 认证插件以支持

weixin_34117211的博客 360

RLHF 家族的奇巧魔改:On Policy 与 Off Policy 路线大PK

无论是 On Policy 还是 Off Policy,RLHF 家族的“魔改”之路都充满了奇思妙想。相信随着研究的深入,RLHF 技术将会在 Alignment 领域发挥越来越重要的作用。

步子哥的博客 2083

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

上一篇: 在 Ubuntu 下通过 Docker 部署 Mastodon 服务器
下一篇: 5 个冷门的 Adobe 系列软件小技巧,助你提升工作效率
reddingtons
博客等级 码龄2年 1941粉丝 563原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值