海洋 CMS 网站迁移需要修改哪些配置文件
海洋 CMS(SeaCMS)网站迁移,真正必须手改的配置文件只有两个:data/common.inc.php(数据库连接)和服务器的伪静态规则文件;其余的站点域名、附件地址都在数据库和模板里,靠 SQL 替换和批量查找替换解决,改完再清一次 data/cache 缓存就基本能跑起来。
海洋 CMS 迁移第一步要改哪个文件?
结论:先改 data/common.inc.php,这是海洋 CMS 唯一的数据库连接配置文件,改错它整站直接报「数据库连接失败」。
用编辑器打开这个文件,里面是几个 PHP 变量,典型长这样:
$cfg_dbhost = 'localhost'; // 数据库地址
$cfg_dbuser = 'root'; // 数据库用户名
$cfg_dbpwd = '密码'; // 数据库密码
$cfg_dbname = 'seacms'; // 数据库名
$cfg_dbprefix = 'sea_'; // 表前缀
$cfg_dbcharset = 'utf8'; // 字符集
对应改成新服务器的值即可。注意三点:一是表前缀必须和导入的 SQL 文件一致,导库时如果被别人改过前缀,这里不改就全站空白;二是数据库地址多数情况填 localhost,只有数据库和网站不在同一台机器时才填 IP;三是文件编码保存为 UTF-8 无 BOM,用记事本改容易带 BOM 头导致页面顶部多出空行。
数据库里的站点地址怎么改?
结论:数据库里存着旧域名,不改会出现「后台能登录、前台图片和链接全指向老站」的情况。
最稳的做法是进后台改:系统 → 系统基本参数 → 网站地址,填新域名并保存,海洋 CMS 会自动重写配置缓存。如果后台进不去,就直连数据库改:先执行 SHOW TABLES LIKE '%config%'; 找出配置表(不同版本可能叫 sea_config、sea_sysconfig),再定位存域名的字段,通常是 vValue 或 value。
全库替换旧域名可以这样批量跑(把表名和字段换成你实际的):
UPDATE sea_config SET vValue = REPLACE(vValue, 'http://www.old.com', 'http://www.new.com');
改完记得再检查一遍文章正文、缩略图字段里的绝对地址,尤其是有采集内容的站,sea_*_body 之类的字段里会残留旧域名。
伪静态规则要不要跟着改?
结论:要改,但改的不是域名,是站点根目录路径和后台目录名。
海洋 CMS 默认开启伪静态,Apache 用根目录的 .htaccess,Nginx 用你站点配置文件里的 rewrite 段(宝塔面板里在「网站 → 设置 → 伪静态」)。迁移后如果目录层级变了,或者你把后台目录 admin 改成了别的名字,规则里的路径就要同步改,否则会出现内容页 404、后台登录页跳回首页。
Nginx 下改完执行 nginx -t 检查语法,再 nginx -s reload 生效,比直接重启安全。
模板和静态文件里写死的旧域名怎么批量替换?
结论:用 grep 先找、再用 sed 批量替换,比手动一个个开模板快 10 倍。
grep -rl "www.old.com" /www/wwwroot/seacms --include="*.php" --include="*.html" --include="*.js" --include="*.css"
# 确认无误后批量替换
sed -i "s/www\.old\.com/www.new.com/g" $(grep -rl "www.old.com" /www/wwwroot/seacms --include="*.php" --include="*.html" --include="*.js")
替换前先整站打包备份,sed 是不可逆操作。如果模板里写的是相对路径(/images/...),就不用管。
迁移后必须做的两件事
结论:清缓存、修权限,缺一个都可能白屏或图片不显示。
清缓存:删掉 data/cache/ 目录下的所有文件(保留目录本身),海洋 CMS 会在下次访问时自动重新生成;后台「系统 → 清除缓存」也能达到同样效果。
修权限:Linux 下执行
chown -R www:www /www/wwwroot/seacms
chmod -R 755 /www/wwwroot/seacms
chmod -R 777 /www/wwwroot/seacms/data /www/wwwroot/seacms/uploads
data(配置和缓存写入)和 uploads(附件上传)这两个目录必须可写,其余 755 就够,别整站 777。
迁移自检清单
按顺序过一遍:data/common.inc.php 的库名/用户名/密码/前缀 → 后台站点地址 → 全库域名替换 → 伪静态规则 → 模板和 JS 里的硬编码域名 → 清 data/cache → 目录权限。全部做完后打开首页、打开一篇内容页、登录后台发一篇测试文章,三步都正常,迁移就算完成。
原文链接:https://www.gj0.com/thread-1127.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。