WordPress开发到部署

一. LocalWP

什么是 LocalWP?

https://localwp.com/

LocalWP (以前叫 Local by Flywheel )是一款由 Flywheel 开发、后被 WP Engine 收购的本地 WordPress 开发工具。它允许开发者在自己的电脑上快速、轻松地创建和管理 WordPress 网站,而无需配置复杂的本地开发环境(如 Apache/Nginx、MySQL、PHP 等)。

主要功能:

  1. 一键创建 WordPress 站点

    只需点击几下,就能创建一个完整的本地 WordPress 环境,包括数据库、Web 服务器和文件系统。

  2. 多站点管理

    可同时运行多个独立的 WordPress 项目,每个都有自己的域名(如 mysite.local)。

  3. 内置开发工具

    • 支持 Live Link(通过 ngrok 实现临时公网访问,方便远程协作或演示)
    • 内置 MailHog(用于捕获和查看网站发送的邮件,避免测试邮件真的发出去)
    • 支持 自定义 PHP 版本、Web 服务器(Apache 或 Nginx)、MySQL 版本
  4. 导入/导出站点

    可以将线上 WordPress 网站"拉取"到本地(需配合 WP Engine 账户),也可以导出为 zip 包或直接部署(部分功能需高级版)。

  5. 跨平台支持

    支持 Windows、macOS 和 Linux(Linux 支持相对较新,但已可用)。

  6. 免费使用

    核心功能完全免费,即使没有 WP Engine 账户也能使用。部分高级功能(如与 WP Engine 一键部署)需要账户。


适用人群:

  • WordPress 主题/插件开发者
  • 网站设计师
  • 初学者学习 WordPress
  • 需要在上线前本地测试修改的用户

二. 如何将通过LocalWP创建的wordpress部署到阿里云服务器上?

前提条件

  1. 你已有一台阿里云 ECS 实例

    使用宝塔面板(更简单,推荐新手)

  2. 你的域名已解析到该 ECS 的公网 IP(可选,但建议)

  3. LocalWP 中的站点已完成开发和测试

部署步骤概览

  1. 导出 LocalWP 站点(文件 + 数据库)
  2. 上传文件到阿里云服务器
  3. 导入数据库到线上 MySQL
  4. 修改 WordPress 配置(wp-config.php)
  5. 更新站点 URL(解决链接仍指向 localhost 的问题)
  6. 设置文件权限与 Web 服务配置
  7. 测试访问

详细操作步骤

第一步:从 LocalWP 导出站点

使用 LocalWP 内置导出功能(推荐)

  1. 在 LocalWP 中右键点击你的站点 → Export Site
  2. 选择 "Advanced (zip)" → 生成一个 .zip 文件(包含 app 文件夹和 sql 数据库文件)。
  3. 解压该 zip 包,你会看到:
    • app/:WordPress 所有文件(即 htdocs 内容)
    • sql/:包含 .sql 数据库导出文件

💡 注意:不要用 "Basic (zip)" 导出,它不包含数据库。

第二步:准备阿里云服务器环境

推荐方案:使用 宝塔面板(简化部署)

推荐使用终端的AI模式,效率更高!

  1. 登录阿里云 ECS,执行以下命令安装宝塔(以 Ubuntu 为例):
bash 复制代码
wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash install.sh
  1. 安装完成后,按提示访问宝塔面板(如 http://你的IP:8888
  2. 推荐安装如下LNMP
  1. 在面板中创建:
  • 网站(绑定你的域名或 IP)
  • 数据库(记下数据库名、用户名、密码)
  • 宝塔会自动配置 Nginx/Apache + PHP + MySQL

如果不用宝塔,请确保已手动配置好 Web 服务和数据库。


第三步:上传 WordPress 文件

  1. 将 LocalWP 导出的 app/public/ 下所有文件打包(如 wordpress.zip

  2. 通过宝塔面板的"文件管理"上传并解压到网站根目录(如 /www/wwwroot/yourdomain.com/

    • 或使用 SFTP(如 FileZilla、WinSCP)上传
  3. 因为上传压缩文件比较方便,所以需要解压后移动文件内容到指定文件夹下:

    bash 复制代码
    # 进入站点根目录(请先替换 your-site 为你的实际目录名)
    cd /www/wwwroot/your-site
    
    # 将 public 目录下的所有文件和文件夹移动到当前目录(. 表示当前目录)
    mv public/* public/.* . 2>/dev/null
    
    # 删除空的 public 文件夹
    rmdir public

命令详解:

  1. cd /www/wwwroot/your-site

    → 进入你的网站根目录(请把 your-site 换成你实际的文件夹名,比如 39.105.4.244 或你设置的域名)

  2. mv public/* public/.* .

    • public/*:匹配 public 下所有普通文件和文件夹
    • public/.*:匹配 public 下所有隐藏文件 (如 .htaccess.user.ini
    • .:表示"当前目录"(即上移一层)
    • 2>/dev/null:忽略"找不到隐藏文件"的警告(避免报错)
  3. rmdir public

    → 删除已经空了的 public 文件夹


第四步:导入数据库

  1. 在宝塔面板 → 数据库 → phpMyAdmin
  2. 选择你刚创建的数据库 → "导入" → 上传 LocalWP 导出的 .sql 文件
  3. 等待导入完成

第五步:修改 wp-config.php

编辑网站根目录下的 wp-config.php,更新数据库连接信息:

php 复制代码
define('DB_NAME', '你的线上数据库名');
define('DB_USER', '数据库用户名');
define('DB_PASSWORD', '数据库密码');
define('DB_HOST', 'localhost'); // 通常不变

⚠️ 删除或注释掉 LocalWP 特有的配置(如 LOCAL_* 常量),避免冲突。


第六步:更新 WordPress 站点 URL(关键!)

LocalWP 中的站点 URL 是类似 http://yoursite.local,必须改为线上地址(如 https://yourdomain.com),否则页面样式错乱、登录跳转失败。

方法 1:通过数据库 SQL 更新(推荐)

在 phpMyAdmin 中执行:

sql 复制代码
UPDATE wp_options SET option_value = 'https://yourdomain.com' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'https://yourdomain.com' WHERE option_name = 'home';

注意:如果你的表前缀不是 wp_,请替换为实际前缀(如 local_)。

方法 2:在 wp-config.php 中强制定义(临时方案)
php 复制代码
define('WP_HOME', 'https://yourdomain.com');
define('WP_SITEURL', 'https://yourdomain.com');

此方法优先级高,适合调试,但正式上线建议用数据库方式。


第七部:检查 Nginx 伪静态规则

WordPress 依赖 URL 重写规则 来处理 /wp-admin、文章链接等。

宝塔默认可能未启用 WordPress 专用伪静态。

修复方法:

  1. 在宝塔面板进入 【网站】→ 点击你的站点 → 【设置】
  2. 切换到 【伪静态】 标签页
  3. 在下拉菜单中选择 wordpress
  4. 点击 【保存】

💡 宝塔会自动应用以下规则:

nginx 复制代码
location / {
    try_files $uri $uri/ /index.php?$args;
}

rewrite /wp-admin$ $scheme://$host$uri/ permanent;

第一行,核心路由规则

路由假设用户访问:

👉 https://yoursite.com/contact

Nginx 会这样处理:

  1. 有没有 /contact 这个文件?

    → 没有(因为 WordPress 页面是动态生成的)

  2. 有没有 /contact/ 这个目录?

    → 没有

  3. 那就交给 WordPress!

    → 内部调用:/index.php

    → WordPress 根据 URL 路由,显示"联系页面"

✅ 最终用户看到漂亮的链接,而服务器正确响应!

第二行:强制 wp-admin 目录加斜杠

nginx 复制代码
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

含义:

  • 当用户访问 /wp-admin(不带斜杠)
  • 301 永久重定向/wp-admin/(带斜杠)

关键变量解释:

变量 值示例(假设访问 https://example.com/wp-admin
$scheme https
$host example.com
$uri /wp-admin

所以重定向目标是: https://example.com/wp-admin/

⚠️ 为什么需要这个?

  • WordPress 的后台目录 必须以 / 结尾 才能正确加载资源
  • 如果不加斜杠,可能:
    • CSS/JS 加载失败(路径错误)
    • 登录后出现 404
    • 插件功能异常

🔁 这个规则确保 /wp-admin → 自动变成 /wp-admin/

✅ 保存后,刷新浏览器 ,再试 https://yourdomain.com/wp-admin

第八步:测试访问

  1. 浏览器访问 https://yourdomain.com
  2. 尝试登录后台:https://yourdomain.com/wp-admin

安全建议(阿里云环境)

  • 开启 HTTPS(宝塔可免费申请 Let's Encrypt 证书)
  • 关闭 LocalWP 的 Live Link 功能(已无用)
  • 删除 readme.htmllicense.txt 等暴露版本信息的文件
  • 安装安全插件(如 Wordfence)

常见问题

问题 解决方案
页面样式丢失 检查站点 URL 是否更新正确
登录后跳回本地地址 同上,URL 未更新
数据库连接错误 检查 wp-config.php 中的 DB 配置
上传文件失败 检查 wp-content/uploads 目录权限

三. 宝塔面板使用介绍

宝塔面板(BT Panel)是一个用于 Linux(也支持部分 Windows)服务器的可视化运维管理工具 ,它的核心作用是:让你不用敲命令行,就能轻松管理 Web 服务器、网站、数据库、FTP、SSL 证书等


宝塔面板是干嘛的?(主要功能)

功能 说明
一键部署环境 自动安装 Nginx/Apache、MySQL、PHP、FTP、phpMyAdmin 等(LAMP/LEMP)
网站管理 添加/删除网站、绑定域名、设置伪静态、子目录、301 跳转等
数据库管理 创建 MySQL 数据库,集成 phpMyAdmin 图形化操作
文件管理 浏览、上传、编辑、压缩服务器上的文件(类似网盘)
SSL 证书 一键申请并部署免费 Let's Encrypt HTTPS 证书
监控与日志 查看 CPU、内存、磁盘使用情况,访问日志、错误日志
安全防护 防火墙、IP 黑名单、登录限制等(部分功能需专业版)

💡 简单说:它把复杂的 Linux 服务器运维变成了"点点鼠标就能搞定"的图形界面操作,特别适合不熟悉命令行的开发者或站长。


本地需要安装宝塔面板吗?

不需要!也不建议在本地电脑安装。

  • 宝塔面板只安装在你的云服务器(如阿里云 ECS、腾讯云 CVM)上
  • 不要在你自己的 Windows/Mac 电脑上安装宝塔(除非你把本地电脑当服务器用,但一般没必要)

📌 你在本地(比如 Windows 电脑)只需要:

  • 一个浏览器(用来访问宝塔面板的 Web 界面)
  • 或 SFTP 工具(如 WinSCP、FileZilla)上传文件(不过宝塔自带文件管理器,通常够用)

常用命令

1、执行 bt 打开面板菜单设置选项

2、执行bt default获取默认账户密码

⚠️ 注意事项

  • 宝塔面板默认占用端口 8888 (Web 面板)、888 (phpMyAdmin)、21 (FTP)等,请在阿里云安全组中放行这些端口
  • 初次登录后,建议修改默认用户名和强密码。
  • 免费版功能已足够个人/小企业使用,专业版(付费)有更多高级功能(如网站防篡改、计划任务增强等)。

面板安装后无法访问,如何排查?

  1. 检查服务器安全组是否放行面板端口,面板端口查看命令:cat /www/server/panel/data/port.pl

  2. 检查面板是否运行正常,尝试执行命令重启宝塔:bt restart如无返回报错说明宝塔正常

  3. 执行bt default获取最新面板登录地址尝试访问

相关推荐
JaguarJack1 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo1 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack3 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理3 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
QQ5110082853 天前
python+springboot+django/flask的校园资料分享系统
spring boot·python·django·flask·node.js·php
WeiXin_DZbishe3 天前
基于django在线音乐数据采集的设计与实现-计算机毕设 附源码 22647
javascript·spring boot·mysql·django·node.js·php·html5
longxiangam3 天前
Composer 私有仓库搭建
php·composer
上海云盾-高防顾问3 天前
DNS异常怎么办?快速排查+解决指南
开发语言·php
ShoreKiten3 天前
关于解决本地部署sqli-labs无法安装低版本php环境问题
开发语言·php
liliangcsdn3 天前
深入探索TD3算法的推理过程
开发语言·php