wordpress网站迁移的步骤和要点
之前给客户做了一个wordpress的网站,大约有40几个页面,存放在供测试用的虚机上,环境是linux+apache+mysql+php。供客户测试使用的同时,为了自己方便存档,就准备把整个网站备份下来后在我的电脑本地迁移一份。wordpress的网站迁移,主要要考虑的是所有文件的复制、数据库的复制、本地环境的配置,以及域名的替换等等。按照思路走了一遍,中间还是有一些坑的,简单描述如下:
1. 虚机wwwroot下所有文件,用ftp搬到本地。这很简单。
2.虚机上打开phpadmin,mysql管理图形界面,将整个网站对应的数据库导出成sql,用ftp搬到本地。
3.在本地安装环境。我选择了最简单的方式,在windows下面安装了一个集成环境wamp,下载-安装-运行,将服务全部打开后online,localhost访问能看到apache界面,表示已经配置成功了,该环境没问题了。谨慎起见,对比一下虚机上php、mysql的版本号,就高不就低的原则,尽量保持一致。
4.把虚机备份的数据都搬到wamp路径的www目录下。其实这也是安装wordpress的行为,因为wordpress本身就是解压就能用的绿色软件,虚机文件里已经包括了所有wordpress的文件了。但此时还没有导入对应的数据库,所以肯定是不能本地访问成功的;
5.打开本地的phpadmin。。。等等,点击wamp服务上的phpadmin,为何出来页面提示403禁止访问?试着把localhost改成127.0.0.1 访问成功了,说明了在配置文件中,可能设定了只能用ip地址来访问。点击wamp的图标,找到apache的配置文件:apache --> Alias目录 --> http://localhost/phpmyadmin/ --> Edit alias,打开后看到
<Directory "E:/WAMP/apps/phpmyadmin3.4.10.1/">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>
把倒数第二行 改成 Allow from all , 存盘后重启服务即可。
在phpadmin下,新建一个和虚机一样的数据库,并添加用户,给与全权限(账号和密码与虚机上一致)。
然后,将备份过来的sql文件导入。。。。。等等,怎么又报错了?提示说可能是文件太大不能导入。。。,OK,这是第二个坑。mysql默认的上传文件最大为2M,所以需要点击wamp图标,找到php.ini ,打开后找到
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
upload_tmp_dir = "E:/WAMP/tmp"
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 2M
把这里的默认2M改成4M,重启环境后,再次执行数据库上传,提示成功了。 这时候本地环境下,已经有了和虚机一模一样的的文件和数据库了。但是,还是不能正常访问的,因为虚机文件中的域名信息也被一并备份过来了,和本地环境并不一致,下面一步是更改数据库中所有的域名数据。
6.wordpress中涉及到域名信息的,有三个表。需要分别按照这三个表执行sql语句,将域名予以替换后,新环境下才能顺利进入前后台。分别是:
wp_options 表: 执行sql UPDATE wp_options SET option_value = replace( option_value, ’原域名', '新域名');
wp_posts 表: 执行sql UPDATE wp_posts SET post_content = replace( post_content, ’原域名', '新域名') ;
wp_postmeta 表: UPDATE wp_postmeta SET meta_value = replace(meta_value, ’原域名', '新域名') ;
此时最大的坑出现了。。。后面会说。。。
7. 虚机上的网站是做过伪静态的,因为在新的服务器环境下,伪静态的支持会不一样,如IIS和apache就不同,而且wamp默认是关闭的,所以,在正式访问迁移过来的网站之前,还得将wamp的伪静态功能开通,不然访问的时候页面会显示500错误。点击wamp图标,找到httpd.conf配置文件,搜索到“LoadModule rewrite_module modules/mod_rewrite.so”,找到这一行,去掉前面的“#”。然后搜索“AllowOverride None”,改为“AllowOverride All”(不止一处)。重启所有的服务。.htaccess文件就是伪静态规则文件,因为wamp下和虚机用的都是apache,所以沿用虚机上的即可。
8. 此时,应该可以顺利用localhost来访问迁移过来的网站和进入后台了。 首页顺利打开,但是页面上提示插件出现了一些错误,有些地方没有能正常显示。其它页面能访问,但是。。。为何进入后台,所有的样式文件都没了。。。各种不正常,返回首页会提示各种404错误。伪静态设置没什么问题,但是始终不能正常打开后台页面,某些插件的显示也完全不正常。思考这究竟是什么问题?突然想起来,我之前三个表中的新域名,都用的是localhost,难道是这个原因?试着改成http://localhost ,居然完全成功!又回到了熟悉的前后台页面!这就是之前说的最大的坑了,猜测可能是mysql对本地域名的解析问题,记着:请写完整的http://localhost
9. 还有最后一步,40几个页面对应的php文档,还有css文档中还有一些基于原虚机域名的引用需要更改。用vscode,对整个目录下所有的文件做批量替换,同样将原域名更换成“http://localhost”。如此,本地环境下的迁移大功告成,用localhost可以直接访问在本地资源上的网站了。
同理,如果将域名A的网站,整体要搬迁到域名B下的新环境,按照以上流程也就能顺利完成了。特别需要注意的是两边的系统环境,尽量配置同样的apache,如果迁移到IIS下,伪静态的设置会不一样,度娘一下做参考即可。

浙公网安备 33010602011771号