浏览模式: 标准 | 列表 2009年09月3日的文章

discuz论坛迁移流程

一朋友网站备案审核中,网站不给访问,每天都可以说在损失,遂荐其购US的VPS(偶提供技术小支持),马上改掉域名A记录,不用备案,立马上线!这不,腰也不酸了,腿也不疼了!网站也不抽筋了,开始运作了!

废话完毕,进入正题!

先说下论坛原来的运行环境以及搬迁后的运行环境:

之前:windows 2003 虚拟主机 + php 4 + mysql 4 + discuz 6.1

之后:linux VPS + php 5 + mysql 5 + discuz 6.1

因为网站已经无法访问,所以不用关闭网站也是可以的。原主机是虚拟主机,可以在phpmyadmin里备份,或者让服务器管理员停掉网站的mysql数据库,直接拷贝出数据库(我采用后者)。在空间后台将整个网站进行打包后用ftp将网站打包数据以及数据库打包数据下载回来。

配置VPS这一块请见:http://blog.is36.cn/nginx_php_mysql_centos_128MB/

将域名解析记录解析到VPS上,先放置一个正在维护更新的页面。

在ssh下进入mysql管理系统,或者装下phpmyadmin也可以,为了不出错误,建立一个跟原来同登录名、密码、数据库名、数据库编码方式(这一点重要,下面会说明)的数据库!

  1. CREATE DATABASE `bbs_data` ; //创建数据库 
  2.  
  3. CREATE USER 'bbs_data'@'localhost' IDENTIFIED BY 'mima123'; //创建一个没有任何权限的用户 
  4.  
  5. GRANT USAGE ON * . * TO 'bbs_data'@'localhost' IDENTIFIED BY 'mima123' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; //设置数据库 
  6.  
  7. GRANT ALL PRIVILEGES ON `bbs\_data` . * TO bbs_data'@'localhost' WITH GRANT OPTION ; //将数据库所有权限赋予给该mysql用户 

将原来下载好的数据库拷贝到mysql对应的建立了的数据库下

将所有网站资料上传,推荐先上传除了附件以外的所有资料,最后依照最新顺序,上传最近的附件!这样访客打开不会看到太多的无图片显示在那里了。

上传完毕后,记得设置某些目录权限为777权限!如下:

比如安装和升级 Discuz! 需要修改 ./attachments、./customavatars 、./forumdata、./forumdata/cache、/forumdata/templates 、./forumdata/threadcaches、./templates、./templates/default、./templates/default/*.* 的文件权限

安装和升级 SupeSite/X-Space 需要修改 ./templates、./channel/、./channel/*.*、./data、./data/robot、./data/temp、./data/system、./templates/、./templates/default、./templates/default/*.*、./user 的文件权限。

等域名生效后(如果没有可以本机设置hosts文件记录进行访问),看看网站是否正常了。可能会出现页面上有乱码,那肯定就是连接数据库的编码方式有问题了。

搜索下载下来的网站里带config的文件,我这里是:

bbs\config.inc.php

uchome\config.php

ucenter\data\config.inc.php

找到MYSQL字符集(dbcharset)选项,将其设定为你之前建立的数据库编码方式,如果你不知道设置成哪个编码方式,可以phpmyadmin里查看,或者进入mysql管理系统:

show create database bbs_data;

就会知道是什么编码方式,将各个连接数据库的配置文件的MYSQL字符集修改过来,那么乱码问题就没咯!


需要注意的如下,遇到问题可以想想如何解决:

VPS自行管理,自由度更大,不过如果技术不够的话还是不要尝试咯!

Linux下对于任何文件夹或者文件都是大小写敏感的,这点很重要!

如果原来论坛启用了rewrite,记得要再nginx中加入这些记录,具体见:

http://blog.is36.cn/SaBlog2_discuz7_rewrite_rule_at_nginx/