不能直接迁移。Windows版宝塔与Linux版完全不兼容,需重建环境并迁移内容:先确认Windows服务类型,再在Linux宝塔中匹配PHP版本、扩展及Web服务器,最后规范迁移文件与数据库并验证。

你真正需要的是「重建 + 迁移内容」——把 Windows 上跑着的网站、数据库、域名配置等关键资产,手动/半自动地搬到新装的 Linux 宝塔环境里。下面分三步说清楚怎么做、为什么这么选、以及哪些地方一碰就崩。
确认旧 Windows 环境中实际运行的服务类型
宝塔 Windows 版本质是套壳 IIS + MySQL + PHP(通过第三方组件)+ 伪面板 UI,但底层服务管理方式和路径约定与 Linux 完全不同。必须先搞清你到底在跑什么:
- 网站用的是 IIS 还是 Apache(极少见)还是 Nginx(极少)?查看
inetmgr或任务管理器里的进程名 - PHP 是通过 FastCGI 模块挂载的,还是独立的 php-cgi.exe?版本号是多少?执行
php -v(如果能进命令行) - MySQL 是官方安装包、XAMPP、WAMP 还是宝塔自带的?端口是不是默认
3306?root 密码是否还记得? - 有没有用到 Windows 特有功能:如 .NET Framework、ASP.NET、MSSQL、Windows 计划任务、IIS URL 重写规则?这些在 Linux 宝塔里无法原样复现
如果你依赖的是 ASP.NET 或 MSSQL,这条路基本走不通,得重写或换架构;如果是 PHP + MySQL 站点,才是可平移的主力对象。
在 Linux 上重建等效运行环境(不是“装个宝塔就行”)
Linux 宝塔不是 Windows 宝塔的“升级版”,它是另一套生态。重建时最容易翻车的是环境错配:
- PHP 版本必须一致或更高(比如 Windows 用 PHP 7.4,Linux 就不能只装 8.0 —— 很多老 CMS 如 WordPress 插件、Discuz! 模板不兼容 PHP 8+)
- 扩展模块要对齐:
mysqli、pdo_mysql、gd、mbstring、opcache缺一不可,尤其fileinfo常被忽略,导致上传头像失败 - Web 服务器选型:Nginx 更轻量,但伪静态规则(如 WordPress 的
.htaccess)要手动转成location块;Apache 兼容性好,但内存占用高 - MySQL 推荐用
mysql5.7或mariadb10.3+,避免用 MySQL 8.0 默认的caching_sha2_password认证插件,PHP 7.4 及以下会连不上
安装命令别抄错:wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sudo bash install.sh(注意是 install_6.0.sh,不是旧版 install.sh,否则可能装错架构)。
迁移网站文件和数据库的实操要点
文件和库本身可搬,但路径、权限、编码、换行符全是坑:
- 网站文件从 Windows 打包时,用
zip而非rar,解压后检查中文文件名是否乱码(Linux 默认 UTF-8,Windows 是 GBK);上传前在宝塔文件管理器里点右上角【编码转换】批量修复 - 数据库导出必须用
mysqldump --default-character-set=utf8mb4,导入前在宝塔的 phpMyAdmin 中把目标库的排序规则设为utf8mb4_unicode_ci,否则 emoji 和部分生僻字变问号 - WordPress 类站点,导出后要全局替换数据库里的旧域名:
UPDATE wp_options SET option_value = replace(option_value, 'http://old.com', 'http://new.com') WHERE option_name = 'home' OR option_name = 'siteurl';,再执行一次全表替换(wp_posts的post_content字段) - 宝塔里添加站点时,“根目录”路径别手抖填成
/www/wwwroot/old.com,而应严格对应你解压后的实际路径,且确保www用户对该目录有r-x权限(用chown -R www:www /www/wwwroot/new.com修)
最常被跳过的一步:DNS 切换前,先在新服务器 hosts 里绑一下域名,用 curl -I http://your-site.com 看返回状态码是不是 200,再打开网页看 JS/CSS 是否 404——很多问题出在静态资源路径写死绝对地址,或 Nginx 没配对 root 和 location。










