Textpattern的主机迁移步骤

发表时间

上周成功转移了网站的主机,除了文件备份和数据库转移等操作,还有与textpattern自身相关的配置。本文记录了我转移主机的具体操作步骤。

上周成功转移了网站的主机,除了文件备份和数据库转移等操作,还有与textpattern自身相关的配置。由于使用textpattern系统不久,都是摸索着做的。主要参考了这篇文章

下面是我转移主机的具体操作步骤:

布置新空间

先布置好新的主机空间,确认IDC提供足够的空间、流量,确认服务器的操作系统、数据库系统、网页语言等是否和textpattern兼容。为了网站能够平稳过渡和对搜索引擎友好,在新站正常启动之前,不能关闭老站。

一般还要在新数据库里建立账号以便能够访问phpMyAdmin这样的数据库管理页面。

备份文件

用FTP备份老站根目录下的文件到自己的电脑。如果是开放式网页,为了保持网站文件的稳定,应该先暂时关闭访问。关闭访问的方法是在Textpattern后台的设置里:“基本设置-状态”。
(Textpattern后台的访问方法:你的网站/textpattern/index.php)

FTP协议下载文件时,对每一个文件都要建立一次连接。所以,用FTP下载多个文件时会非常慢。一般的主机空间都会有在线压缩的功能,只要在控制面板上选择要压缩的目录,系统就会把压缩好的包放在指定的目录下。

导出数据库

主机空间上会有“导出为SQL”的功能,保存到自己的电脑上。

转移文件

用新站的FTP把网站文件的压缩包上传到根目录下(或者你指定的目录),这时要用到主机空间的解压缩功能,

导入数据库

首先要在类似phpMyAdmin这样的数据库管理页面,建立新的数据库,新的数据库名可以与老的不同。建好后就可以导入SQL文件了,字符编码必须和老站相同。对于中文textpattern,选择UTF-8。导入时间视数据库大小和网速而定,几秒钟就完成了。

如果SQL过大,也可以先压缩,在使用数据库管理页面的解压缩命令实现导入,注意要压缩成zip格式。

修改数据库链接

打开新主机的网址,看到的很可能是正常的页面,但是并不代表转移好了。因为在textpattern系统里,保存的数据库信息仍然是老站的信息。你看到的文章内容都是从老站读取的。

配置新的数据库,打开新站的 textpattern/config.php 文件,按下面的内容填入新增的信息:

<?php
$txpcfg['db'] = '数据库名'; 
$txpcfg['user'] = '数据库用户名'; 
$txpcfg['pass'] = '数据库密码';
$txpcfg['host'] = '新站域名';
$txpcfg['table_prefix'] = '安装老站的textpattern系统是填的数据库前缀,一般为空';
$txpcfg['txpath'] = 'textpattern目录在服务器上的绝对路径,一般在服务器控制面板里能找到';
$txpcfg['dbcharset'] = 'utf8';
?>

重新上传覆盖服务器上的版本。

到这里,textpattern系统就转移完毕了。打开新站自己的域名或者IP地址,一般是个二级域名,应该能看到新站的样子。如果看到的页面好像是缺少了CSS文件的样子,可能是textpattern/config.php里的多了空白字符,重新把每行结尾分号之后的空格删除干净,重新覆盖上传试试看。

修改后台管理员账号

在转移数据库后,访问textpattern系统的后台,会发现原来的管理员账号不能用了,这大概是转移数据库的时候,密码的格式被重置了。修改的方法是手动修改数据库里的密码记录。

到phpMyAdmin数据库管理页面,打开textpattern系统使用的数据库,找到“txp_users”的表,一般位列于表的最下方。

寻找“浏览”或者browse的命令,点开它,会列出“txp_users”表的各种信息,包括所有的用户记录。寻找修改表结构的“structure”,点开它。

寻找“pass”字段,一般会列于第3行。寻找编辑“pass”字段的图标,一般是一支铅笔什么的。

点开后,寻找“Length/Values”属性,会看到里面写着“128”,选中,重新输入“128”,点击“保存”按钮。

回到“txp_users”的浏览页面,点开编辑你的管理员账号,或是其他什么你要修改密码的账号,找到“pass”的记录,在后面的下拉框内先选择“PASSWORD”类型,再在后面的文本框内填入你要修改的 明文 密码,系统会自动加密。

注意:密码不要填写大写字母,因为textpattern系统在加密前会先把所有字母转化为小写,这样密码就不能对得上。点击“Go”按钮保存更改。这时返回后台登录界面,就可以用刚才重置的密码登录了。

然而这时输入你申请的通用域名,DNS解析的仍然是老站的IP地址,接下来还需要修改DNS,使域名能指向新的空间。

修改DNS地址

用户解析域名的过程大概是这样的:用户本地的DNS将你的域名一层层向上传,请求解析,直到一个根DNS,而根DNS会去查询这个域名注册商的DNS,注册商DNS会告诉根DNS应该到哪里查,根DNS按照注册商DNS的指向去请求解析。得到结果后,一边更新自己的缓存,一边向下级DNS反馈,直到反馈到最初的用户。

比如我的域名是在狗他爹注册的,简称G,我新买的空间在爱X主机,简称I。那么我在买完空间后,把我的域名告诉I,I会给我两个DNS服务器IP地址,作用是如果有人向这两个服务器请求解析我的域名,它们会反馈我的实际空间的IP地址。然后我再在G那里设置DNS的地方,把I给我的这两个DNS填进去,告诉G,如果有人问起我的域名,就告诉他去I的这两个服务器上找。

就这样,因为所有根DNS最终都会到G的DNS寻求解析,所以都会被G的DNS带到I那里去,也就能正确解析出新的地址。

因为DNS不是实时的,一般要等几分钟或者几小时或者24小时或者72小时不等。有的用户还会被老的DNS缓存带到老站那里去。所以如果不是特别紧急,应该让老站再开一段时间,避免别人和搜索引擎以为你关站了。

(update: 据说爱X空间的DNS不够稳定,还有一种方法就是使用狗他爹提供的默认DNS,并且在DNS添加A记录,指向爱X空间提供的独立专用IP。
只有你配置使用了狗他爹的默认DNS服务器后才能使用狗他爹的DNS manager,点击域名下方的“Edit Zone”,将A记录里原有的IP修改为你的专用IP就行了。)

就这样,一个Textpattern站就迁移完成了。


除非特别说明,本站文章均系原创,并采用 署名协议 CC-BY 授权。
欢迎转载,惟请保留原文链接:https://www.lfhacks.com/tech/move-textpattern-to-another-host