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获取最新面板登录地址尝试访问

相关推荐
郑州光合科技余经理2 小时前
架构解析:同城本地生活服务o2o平台海外版
大数据·开发语言·前端·人工智能·架构·php·生活
智能修复2 小时前
502 Bad Gateway:互联网世界的“断桥”时刻
开发语言·php
源码师傅2 小时前
AI短剧创作系统源码 开发语言:PHP+MySQL 基于uniapp 无限SAAS多开源码
人工智能·php·短剧小程序开发·ai短剧创作系统源码·ai短剧创作系统·短剧原创制作软件
BingoGo3 小时前
PHP 8.5 #[\NoDiscard] 揪出"忽略返回值"的 Bug
后端·php
星辰烈龙18 小时前
黑马程序员JavaSE基础加强d5
服务器·网络·php
No0d1es18 小时前
2025年12月 GESP CCF编程能力等级认证Python三级真题
开发语言·php
哥只是传说中的小白18 小时前
Nano Banana Pro高并发接入Grsai Api实战!0.09/张无限批量生成(附接入实战+开源工具)
开发语言·数据库·ai作画·开源·aigc·php·api
亚历山大海20 小时前
PHP HTML 实体(HTML Entities)没有被正确解码导致< 和 δ 等字符被转换
开发语言·html·php
二等饼干~za8986681 天前
碰一碰发视频系统源码搭建部署技术分享
服务器·开发语言·php·音视频·ai-native