本文使用技术栈:win11 + caddy(替换 nginx)+ wordpress
坑点:好多资料,都是利用 XAMPP,WampServer ,… 这类的工具直接部署。
但是,
1.我不想下载奇怪的东西。
2.很多工具,我电脑本地有。
于是决定,自动手动。
第一步:决定技术栈,讲解一些坑点
本来我打算使用 nginx,但是 nginx 的语法复杂,性能低,与 win 兼容性一般般(肯定有刺头说 nginx 好,nginx 妙。问就是,我部署失败了)。
于是采用 caddy 代替,一用不知道,一用吓一跳,比 nginx 好用很多。
使用 Caddy 代替 Nginx 或 Apache 是完全可行的,甚至在某些方面更简单(例如自动 HTTPS 和更简洁的配置)。
坑点 1
坑点:自动 HTTPS 造成 `No connection could be made because the target machine actively refused it.`
原因:这涉及到网页重定向(Redirect)机制的运作。在网页开发中,重定向是指服务器将用户的请求自动转移到另一个 URL。
举个例子,当你访问 http://example.com 时,服务器可能会将你重定向到 https://example.com,以确保连接的安全性。
然而,当重定向配置不当时,可能会导致无限循环。
例如,假设 http://example.com 被设置为重定向到 https://example.com,但由于服务器配置错误,https://example.com 又重定向回 http://example.com。
如此循环下去,浏览器会发现这个循环无法结束,从而抛出 ERR_TOO_MANY_REDIRECTS 错误。

解决:详细解决方案
# 设置前缀 `http://`
http://localhost:2080 {
root * C:\Users\JadeYao\Desktop\IdeaPJ\wordpress
php_fastcgi 127.0.0.1:9000
file_server
}
坑点 2
不熟悉,php 项目怎么部署。奇怪的问题,2020 程序员,怎么会知道 php 怎么运行。
第二部:开始部署
以下是基于你现有环境(Windows + MySQL 9 + PHP 8)使用 Caddy 部署 WordPress 的详细步骤:
部署
1. 配置 PHP 8
- 确保 PHP 已正确安装
- 检查
php.ini是否启用了这些扩展(参考之前的配置)。
- 检查
scoop search php ; scoop install php
- 基本的修改
复制 php.ini-development 文件为 php.ini,并进行以下配置:
打开 php.ini 文件,取消以下行的注释:
extension=mysqli
extension=pdo_mysql
extension=mbstring
extension=curl
extension=gd
extension=xml
extension=json
extension=openssl
# 配置 php.ini 文件中的 upload_max_filesize 和 post_max_size,以支持更大的文件上传:
upload_max_filesize=64M
post_max_size=64M
- 启动 PHP-CGI
- Caddy 通过 FastCGI 与 PHP 通信。在 Windows 上,需手动启动
php-cgi.exe:
- Caddy 通过 FastCGI 与 PHP 通信。在 Windows 上,需手动启动
php-cgi.exe -b 127.0.0.1:9000
# 可以使用 pwsh 命令,后台运行
Start-Process -WindowStyle hidden -FilePath "C:\Users\JadeYao\scoop\shims\php-cgi.exe" -ArgumentList "-b 127.0.0.1:9000"
# 检验,php-cgi 是否监听 9000 端口
netstat -an | findstr 9000
# 输出:TCP 127.0.0.1:9000 0.0.0.0:0 LISTENING
2. 配置 MySql
net start mysql
# 或者 pwsh 命令
Start-Process -WindowStyle hidden -FilePath "C:\Users\JadeYao\scoop\shims\mysqld.exe"
创建数据库和用户:
打开命令提示符,登录到 MySQL:
mysql -u root -p
输入 root 用户的密码。
创建一个数据库和用户,用于 WordPress:
CREATE DATABASE wordpress;
CREATE USER 'wordpres_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress_user'@'localhost';
FLUSH PRIVILEGES;
3. 配置 Caddy
scoop search caddy ; scoop install caddy
caddy version
- 输出版本号即表示安装成功。
- 创建 Caddyfile
- 在
目录A新建文件Caddyfile(无扩展名),内容如下:
http://localhost:2080 {
root * 目录A\wordpress
php_fastcgi 127.0.0.1:9000
file_server
}
root * ?:指定 WordPress 文件目录。php_fastcgi 127.0.0.1:9000:指向 PHP-CGI 进程的地址和端口。file_server:启用静态文件服务。
- 运行 Caddy
# 先格式化,然后再运行
caddy fmt --overwrite .\Caddyfile
caddy run --config .\Caddyfile
# 目录下存在 Caddyfile,就不需要 `--config .\Caddyfile`。加上 `--watch` 动态解析。
caddy run --watch
3. 配置 WordPress
- 下载 WordPress 并解压到
目录A(与Caddyfile配置的路径一致)。 - 配置
wp-config.php。
将 wp-config-sample.php 文件重命名为 wp-config.php。
编辑 wp-config.php 文件,配置数据库连接信息:
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress_user');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
4. 访问 WordPress
- 浏览器访问
http://localhost:2080,完成 WordPress 安装向导。
完整流程示例
- 目录结构
PS 目录A
# erd -i -L=1 -H -P -I -y=inverted .
74.3 MiB wordpress
48.0 MiB ├─ wp-includes
17.4 MiB ├─ wp-content
8.7 MiB ├─ wp-admin
50.2 KiB ├─ wp-login.php
33.6 KiB ├─ wp-signup.php
28.4 KiB ├─ wp-settings.php
19.4 KiB ├─ license.txt
8.3 KiB ├─ wp-mail.php
7.2 KiB ├─ readme.html
7.2 KiB ├─ wp-activate.php
5.5 KiB ├─ wp-cron.php
5.0 KiB ├─ wp-trackback.php
3.8 KiB ├─ wp-load.php
3.8 KiB ├─ wp-config.php
3.3 KiB ├─ wp-config-sample.php
3.2 KiB ├─ xmlrpc.php
2.4 KiB ├─ wp-links-opml.php
2.3 KiB ├─ wp-comments-post.php
405 B ├─ index.php
351 B ├─ wp-blog-header.php
142 B └─ Caddyfile
Caddy vs Nginx/Apache 对比
| 特性 | Caddy | Nginx/Apache |
|---|---|---|
| 配置复杂度 | 极简(一行配置完成 PHP 支持) | 需要手动配置 FastCGI |
| HTTPS | 自动申请 Let’s Encrypt 证书 | 需手动配置证书 |
| 性能 | 轻量,适合中小型应用 | 高性能,适合高并发场景 |
| 学习曲线 | 低(适合新手) | 中高(需熟悉语法) |
总结
使用 Caddy 在 Windows 本地部署 WordPress 的流程如下:
- 安装 Caddy → 配置
Caddyfile。 - 启动 PHP-CGI → 处理 PHP 动态请求。
- 启动 Caddy → 一键提供 Web 服务和 PHP 支持。
Caddy 的简洁性和自动化特性(如 HTTPS)使其成为本地开发的理想选择,尤其适合希望快速搭建环境且不愿深入配置服务器的用户。如果后续需要迁移到生产环境,Caddy 的配置也几乎无需修改!

2263

被折叠的 条评论
为什么被折叠?



