- 不是每个网站都是 WordPress:纯 HTML 的公司简介、自己写的 PHP 网站(像这个 Aiden Memo 笔记站)、Laravel 之类的框架,都用不了 WordPress 搬家插件。
- 好消息是这类网站通常更简单:静态网站只要搬文件;PHP 网站多数是「文件 + 可能有的数据库 + 设定文件」。
- 最容易出问题的不是文件,而是环境差异:PHP 版本、扩展、
.htaccess、文件路径大小写、写死的绝对路径。 - 主机商的免费搬家服务对「非 CMS 网站」常常只搬 FTP 文件(例如 iCore 对非 cPanel 来源只搬 FTP 文件),所以自己最好懂一遍流程。
重点内容
先判断你的网站属于哪一种
| 类型 | 特征 | 要搬什么 |
|---|---|---|
| 静态网站 | 只有 .html、.css、.js、图片 | 只搬文件 |
| 简单 PHP 网站 | .php 文件,没有数据库 | 文件 + 检查 PHP 版本 |
| PHP + 数据库 | 有 config.php / .env 里写着数据库资料 | 文件 + 数据库 + 改设定 |
| 框架(Laravel 等) | 有 vendor/、composer.json、.env | 文件 + 数据库 + 可能要 SSH 跑 composer |
第 1 步:下载全部文件
- cPanel:File Manager → 右键
public_html→ Compress → 下载 - hPanel:Backups → Files backups → 下载(EP04)
- 或用 FileZilla 整个文件夹拖下来(
FILEZILLA/EP02)
📌 别漏掉隐藏文件:.htaccess、.env、.user.ini。File Manager 要开「显示隐藏文件」(cPanel:右上角 Settings → 勾 Show Hidden Files)。
第 2 步:有数据库的话导出数据库
- phpMyAdmin → 选数据库 → Export → 格式 SQL → 下载
- 找出网站的设定文件,记下它连哪个数据库:
config.php、db.php、.env……
第 3 步:检查环境差异(最重要)
| 检查项目 | 旧主机在哪看 | 新主机在哪设 |
|---|---|---|
| PHP 版本 | cPanel Select PHP Version / MultiPHP Manager | 同样位置,或 hPanel Advanced → PHP Configuration |
| PHP 扩展 | 同上(mbstring、intl、gd、pdo_mysql……) | 同上,缺的要打开 |
.htaccess 规则 | 文件本身 | Apache / LiteSpeed 通用;Nginx 主机不认 .htaccess |
| 上传大小、memory_limit | PHP 设定 | 同上 |
| Cron jobs | cPanel Cron Jobs | 新主机重新建 |
💡 在旧主机建一个 info.php,内容写 <?php phpinfo();,打开就能看到完整环境;看完马上删掉,这个文件会暴露服务器资料。
第 4 步:上传与导入
- 新主机 File Manager 上传压缩包 → Extract
- 新主机建数据库和用户 → phpMyAdmin Import
- 改设定文件里的数据库名、用户、密码、host
第 5 步:修写死的路径
自写 PHP 网站最常见的问题:
- 绝对路径:
/home/oldacc/public_html/includes/...→ 新主机的账户名不同,路径就错了- ✅ 改用
__DIR__:require __DIR__ . '/includes/header.php';
- ✅ 改用
- 写死的网址:
http://旧域名/...→ 换域名或换成 https 时要改 - 大小写:Windows 本机测试不分大小写,Linux 主机分大小写,
Images/logo.png和images/logo.png是两个不同文件
📌 这个笔记站本身就踩过大小写的坑:本地 Windows 两个只差大小写的文件夹会被合并,但 Linux 服务器会当成两个,结果上线 404。
第 6 步:测试
- 用 hosts 文件预览(EP07),把每个页面、表单、登入功能都点一遍
- 看新主机的 Error Log(cPanel Metrics → Errors;hPanel Advanced → 错误日志)找 PHP 报错
行动步骤
- 判断网站类型,列出要搬的东西
- 下载全部文件(含隐藏文件)和数据库
- 对照旧主机的 PHP 版本和扩展,在新主机设成一样
- 上传、导入、改设定文件
- 把绝对路径改成
__DIR__,检查文件名大小写 - 预览测试,看 error log,再切 DNS
常见误区
- ❌ 漏掉
.htaccess和.env:隐藏文件没显示,没下载到,网址改写和设定全失效。 - ❌ 没对齐 PHP 版本:旧主机 PHP 7.4 跑得好好的代码,新主机默认 PHP 8.x 可能直接报错。
- ❌ 路径写死旧账户名:
/home/oldacc/...在新主机不存在。 - ❌ 在 Windows 测过就以为没问题:Linux 主机分大小写,文件名不一致会 404。
- ❌ 测完忘了删
info.php:暴露服务器版本和路径资料。
Sources
官方文档: