代码

关于编程的技术,包括Autolisp,JavaScript、CSS、PHP、Python 等。

揪出拖慢WordPress后台加载速度的又一元凶

之前做过类似的调试,想加快wp的访问速度:

链接1:WordPress加载速度缓慢的两个原因及解决办法,时间太久了,已经没有参考意义。

链接2:关于Google fonts、Gravatar、Fontawesome的那些事儿

现在的基本情况就是:google fonts已经不是问题,gravatar有解决办法,fontawesome本地化。可是打开后台还是慢怎么办?

关于css和js加载方式

随着wordpress的不断升级,发现后台加载速度突然变得很缓慢,从原来的秒开,发展到最近的7~8秒,实在不能忍。用chrome分析工具,发现load-scripts.php和load-styles.php两个文件严重拖慢了后台加载速度。

这两个文件应该是想降低http请求数量,进而加快网页访问速度。但是,不知为何,反而在我这里严重拖慢网页速度,后台/wp-admin/加载的ttfb时间竟然达到10几秒。可能是我的服务器太垃圾了。

解决办法很简单,在wp-config.php文件中加入如下代码:

define('CONCATENATE_SCRIPTS', false);

禁用掉load-XXXX.php相关功能,恢复js库文件和css文件的分别加载就可以了。

如果使用了较复杂的插件,请测试后使用,部分插件会出现加载js失效的情况。

启用缓存插件

关于前端加速,可以使用wp-super-cache等插件,配合php语言的Memcached扩展,实现毫秒级的加载体验,网上有很多教程,不再赘述。

检查MYSQL数据库引擎

如果上述工作都做了还是觉得有点慢,不妨去看一看自己的Mysql数据库引擎,是innoDB还是MyISAM,wp建议使用innoDB模式,查询效率更高。

启用CDN加速

目前,常用的CDN加速有阿里云oss,七牛云,又拍云等等。我试了一下又拍云的全站加速,效果还是有一些的,可以一定程度上加快访问速度。

其他

如果上面都检查了,还是不满足你的要求,那就去花钱换更好的主机吧。

用Tiny Tiny RSS搭建属于自己的rss阅读器

写在前面

曾经盛极一时的Rss技术,已经很少有人用到了。它逐渐演化成了一个极客、小众的技术。然而,直到现在,老派还固执的认为,Rss的易用性和开放精神比当前那些自我封闭,整天想着拉用户、涨流量的XX号、XX平台要强太多了。

从这一点上来讲,我并不觉得互联网这些年有了多大的进步,开放性这个东西早已被大家抛之脑后。不开放的互联网只是资本的游乐场而已,根本没有表面那么繁荣。这一点从近年来最火爆的编程语言来看也是成立的,最受欢迎的语言排行逐渐被开源社区强大的Python、JS等新兴语言所占据。自我封闭并不是互联网的未来。

当然,rss这个东西的消亡也有其原因,那就是替代品太多,互联网平台化发展使得大家获取信息的渠道逐渐单一化。可对于有特殊需求的人来说,rss还是有不可替代的作用。例如,老派我就是信息流的洁癖患者,我非常不喜欢公众号、微博、朋友圈的氛围和那些恶心app的垃圾推送。我想看的东西,不是你们说给就给的!

什么是TinyTinyRSS?

用官网上的话说:

Tiny Tiny RSS is a free and open source web-based news feed (RSS/Atom) reader and aggregator

它是一个开源的新闻阅读器(RSS/ATOM)和聚合器。

其功能类似于之前已经关闭了的Google Reader服务,国内的鲜果等rss订阅服务。 Google reader已经阵亡,国内的rss服务现状也惨不忍睹。圈内比较流行的是国外的inoreader服务,奈何免费版限制太多,专业版每年几十$的费用也不是谁都愿意出的。

对于熟悉web开源程序,或者喜欢建站的朋友们,与其花费大量的金钱购买服务,还不如自己搭建一个平台来的划算。对于有自己服务器的朋友,还能够借此充分利用服务器资源,避免浪费。

准备工作

有一台自己的服务器,aliyun、腾讯云或者什么其他的什么云,或者国外的什么vps都可以;到官网上下载tt-rss安装包

然后,深吸一口气,准备遇到各种坑……

步骤

  1. 在宝塔面板里新建一个网站;同时自动新建一个数据库和ftp账号;记录号这些账号密码。
  2. 绑定一个域名,或者二级域名也可以。
  3. ftp连接网站空间,上传解压tt-rss文件。
  4. 直接访问域名,自动跳转/install访问页面。
  5. 填写页面所要求的信息,包括数据库用户名、密码等等。
  6. 安装完成,登录界面,新建订阅源,或者导入opml文件。

好了,休息一下!是不是感觉已经大功告成了? Too Young !

不出意外的话,这时候你试一下,会发现

根!本!用!不!了!

这就是tt-rss不太方便的地方,如果不进行设置,tt-rss是默认不自动更新的。按照官网的说法:

You will also need to decide on the method tt-rss uses to update feeds. This is a separate topic, outlined in UpdatingFeeds.

好的,很多好学的同学都会点开那个链接,然后一脸蒙圈。弄啥嘞这是!

好吧,简单解释一下就是,你需要通过服务器的命令行添加一个守护进程,来定时运行tt-rss的自动更新程序。啥是守护进程?管他呢,想试一下的朋友可以尝试一下在非root用户下执行crontab -e命令,然后在打开的配置文件中加入类似这样的代码:

*/30 * * * * /usr/bin/php /path/to/tt-rss/update.php --feeds --quiet

里面的时间、php命令目录、update文件目录都要自己确定。而且最崩溃的是,这个过程要用到vim编辑器,反正我是不想学也不想用。

其实,如果用宝塔面板,就不用这么麻烦。宝塔面板自带定时执行任务的功能:计划任务。只要在宝塔面板里新建计划任务,然后shell代码里输入类似如下代码就可以:

su -m www -c "/usr/bin/php /www/wwwroot/fxrss.fxpai.com/update.php --feeds"

代码中的www你要替换成自己的服务器账户名称,注意,不能是root账户。后面引号中的代码分别替换为你自己服务器php目录和tt-rss update.php文件目录。这样设置以后,你的rss阅读器就可以按时自动更新了。

如果这个办法你也实在是搞不定,还有个更简单的办法,就是更改config.php文件中的SIMPLE_UPDATE_MODE常量为true,当你打开浏览器的时候,所有rss源就会自动更新,稍等一会儿就可以了。

需要注意的问题

一定要把config.php中的ENABLE_GZIP_OUTPUT常量改为true,改了这个以后,读取速度有肉眼可见的提升,非常明显。对服务器的消耗可以忽略,反正我的aliyun乞丐版没有什么负载增加。

另外,经过我的测试,不能够通过直接开启宝塔ssl证书的方法来开启全站https。会不停报错,自动更新功能也无法实现
是我域名设置的问题,不是tt-rss的问题。域名设置好就没问题了。可以正常使用全站https。

在为rss站点设置二级域名的时候,碰到了一点问题,不过这个和tt-rss没有什么关系。宝塔的二级域名绑定有点让我迷糊,如果有其他朋友遇到类似的问题,欢迎讨论。

拓展

tt-rss另一个吸引人的地方就是官方的Android应用(没有ISO系统的),可以从GooglePlay市场获得,专业版需要花3.9$买个unlocker。从网页后台打开偏好设置>>允许外部客户端通过 API 来访问该账户,打钩。手机端app输入用户名密码即可连接。使用起来速度很快。总体感觉不错。

除此之外,tt-rss有不少插件和theme,使用方法也都很简单,再次不再赘述。

实在没时间截图。不好意思。

以上。

关于Google fonts、Gravatar、Fontawesome的那些事儿

WordPress爱好者们都知道,如果刚安装完wp代码,或者刚换了个新的theme,再或者安装了一些插件后,网站访问速度突然变慢了。那么一定是标题里这些个东西在搞事情。

这种情况出现的最主要的原因是google的字体服务器、gravatar的图片服务器、fontawesome文件服务器远在美利坚,访问速度或多或少会受到影响。

另外,你的网站使用到字体和图片的数量也有关系。引用越多,页面越卡。

其实,还有一种情况,就是当你第一次访问引用资源的页面时会比之后再次访问相比,肯定要慢一些,当然,是在不清空浏览器缓存的情况下。这也是缓存的好处,对于公共引用库,只要在某个网站加载一次,其他网站可以在缓存中共用。

前几年,老派为了保证访问速度,干脆安装disable google font插件,全局禁用了google font字体,再把fontawesome文件加载到本地服务器然后调用,gravatar换成duoshuo的api。这三大板斧下去,效果显著。

但是,全部禁用和本地化也不是没有缺点。没了google字体,后台英文显示惨不忍睹,后来wp官方在后台管理界面里禁用了外部字体,而是使用了优先使用系统自带字体的方法,这一做法收到了中国用户的好评,终于不用担心后台访问速度和英文显示效果了。

可好景不长,近期的wp更新了古腾堡编辑器,又把google字体给“请”了回来。不过,这时候就要区别看待了,因为有个好消息可能很多人都不知道,那就是google fonts的服务器已经迁址到北京海淀区了,国内服务器访问不成问题。利用外部加载反而在一定程度上缓解了服务器的压力。

相比较而言,gravatar和fontawesome就没那么幸运了。不过,也不是没有办法。

首先,经测试Gravatar不是不能访问,但是速度堪忧,常用的办法有禁用、替换国内api、缓存。前两个方法不推荐,因为禁用影响体验,国内api自己也挂了,剩下的办法就是利用wp的缓存插件,定时或者在加载网页的同时将gravatar头像图片存到本地服务器上,以便随时调用。

对于fontawesome图标库,我也有两个办法,到官网下载库文件放到本地服务器上,再用functions.php里面的代码调用。或者使用国内的fontawesome服务,以.cn为后缀网址的那一个,但是国内的版本是自发组织的,不保证以后会不会挂。除了这两个办法,还有个不是办法的办法,那就是使用wordpress自己的图标库,wp的图标库在后台界面已经广泛使用了,我们只需要在前段调用就行。常用图标的形状差不了太多,我觉得wp自带的就很不错了。

说了这么多,总结一下就是处理好这三个东西,你的网页才不会龟速。其实,对于一般访问量的网站,处理好他们就足够了,页面访问会很快。拥有更大访问量的网站速度优化,涉及到静态缓存和memchromed等等设置,不属于本文讨论范围。

最后,老派祝大家都能愉快的玩耍wordpress。

阿里云+宝塔+WordPress避坑记录

写在前面

随着云服务器的价格越来越亲民,越来越多的博客爱好者希望通过架设自己的服务器,以便拥有更加自由的操作空间和更加灵活地主机配置。但是,购入了一台云服务器就相当于自己架设了一台网络主机,涉及到关于主机系统的安装和维护,这些工作对小白用户非常的不友好,甚至对专业用户来说,也是非常浪费时间和精力的。如果只是想架设一个Wordpress博客或者其他网站,安装一个主机面板是一个非常好的选择。

首先,说说我的主机,作为业余爱好者,主机稳定、便宜为最好,阿里云时常便宜到啥程度呢?我感觉每年主机花费在千元左右都是可以接受的,这还是虚拟主机的情况下,几百块的虚拟主机我学生时代也用过,连存储空间都不够。现在的阿里云ECS有时候几百块一年,甚至便宜到一、二百一年,这简直是做慈善啊。

当然,国际版正常情况下好像没这么便宜,国内线路主机需要域名备案。代价是抽出一点时间来配合阿里云的流程,好处是国内主机速度要好很多。

准备工作

一台云服务器,下载宝塔面板(免费的),WordPress主程序(或者你需要迁移的文件和数据),一点耐心。

第一步 配置云主机

云主机配置不写了,都是简单操作。

这里说一下aliyun的营销问题,刚购买完相关产品,营销电话救过来了,还冒充技术人员,我交流了两句,发现技术一窍不通,然后拼命让我买其他产品什么的。

千万别信这个,他们根本就不了解你的需求,配置还是量力而为

我除了ECS最低配的主机之外,仅激活了弹性公网IP,而且是后付费的,用多少交多少,一般个人博客的流量远用不着包年或包月(大牛博客例外)。

第二步 安装宝塔

根据宝塔面板官方的安装说明操作即可。

注意:

  1. 关于主机的最低要求,官方最新版6.X的要求,内存512m以上,经我亲测,主机内存至少1G以上。否则就算安装面板没有出现问题,后续安装pHp7.0以上版本时,也会报错,安装进程直接被kill了。
  2. aliyun安装完成宝塔面板后,第一件事就是该云主机安全策略。这里的安全策略说白了就是端口配置,把宝塔需要开通的端口都开通就行了。ssh,ftp,phpmyadmin这些都有特殊的端口,宝塔面板自身也有8888端口需要使用。我配置成功后基本端口如图1:
  3. 安装宝塔完成后的所有用户名和密码,都要保存好,自动生成的登录地址和用户名密码都很复杂,肯定记不住。
图1:阿里云ECS宝塔面板端口配置图

第三步 配置宝塔运行环境,安装拓展

第一次打开宝塔会提示安装一键包,有LNMP和LAMP两种选择,个人习惯apache,选择后者。

安装完毕后可以安装不同版本的php、Mysql,还需要独立安装ftp服务方便上传文件,其他的拓展视情况安装。

注意:

  1. php7.0以上版本我安装的时候出现了杀进程的状态,因为主机的内存太低了,512m肯定不够用,升级1G内存就正常了。
  2. 建议先在程序管理里面先卸载Memcached服务,如果不在这里先先卸载,在php扩展管理里面安装Memcache会报错。这个应该是bug。

第四步 安装/迁移Wordpress

新安装WP实在没啥可说的,已经傻瓜化了。

迁移就涉及到比较多的问题,我主要遇到的问题是数据库导入的事情,我原来的数据库是UTF8mb4格式的,导入的时候没有注意,选择了UTF8格式,结果文章内容全都导入失败,这一点千万注意。关于两种格式的区别和关系请自行百度。

此外,宝塔也自带了SSl功能,一件启用很好用。建议开启宝塔自带的图片防盗链功能,节省流量。

第五步 WordPress加速问题

根据大牛们的测试,wp开启Memcached+Batcache加速功能会极大的提高运行速度,降低主机负载。这个过程中涉及到安装Memcached拓展的问题,这里再一次重点提示一下,宝塔面板里需要先卸载程序里面的Memcached扩展,然后再进入php的扩展模块进行安装才能够安装成功。

我利用我爱水煮鱼大神的wpjam-basic插件开启了Memcached功能,然后,又安装了wp-super-cache插件。后者似乎自带了Batcache功能。两者配合使用,使网站确实加速了不少。

这里有个坑要注意:如果同时在宝塔里安装了两个WP站点,即两个域名指向同一个弹性公网IP的情况下,两个网站的数据库前缀名不能够相同,例如:默认安装两个站点数据库前缀都是“wp_”,这种情况下启用Memcached相关服务会产生问题,可以改为自己喜欢的例如“wpfxp_”或其他。

此外,我还顺便对我的主题上的图片使用了lazyload技术,配合Masonry布局和ajax加载,使网站整体上感觉很操作比较流畅。有时间也想写篇文章讲一下Lazyload+masonry+ajax这三个功能的整合问题。

写在最后

这篇文章简单记录了我在整个过程中遇到的坑,其实都不是什么大问题,更详细的安装教程网络上一搜一大片,我就不复制粘贴了,没啥意思。只给要入手的同学提供一个壁坑记录,仅供参考。


宝塔一键全能管理服务器,1分钱体验525.6元的插件,还有专业版奖励,立即一起来组队https://www.bt.cn/team.html?MTI0NjYweno=

今天开始AutoLisp项目的研发项目工作,第一段完整代码下线。在这之前准备工作做了有一段时间了,这是一个好的开始。争取今年10月到来之前,拿出完整的东西来。

wamp本地解析域名进行wordpress调试

update 2018.7.17:这样太麻烦,还容易出问题。看无痛方法


之前记录了把wordpress站点移植到本地进行调试的过程。其实,还有可以改进的地方。之前要实现wp在本地顺利访问,需要修改远数据库中的site_url和home值为localhost/xxx。改完之后,文章里的链接和媒体的链接,都还是原来的域名,虽然可以通过使用插件或者直接写sql语句完成替换,但这样一来数据本身发生了变化,无法回用到站点上进行部署,还可能会产生意外错误。

那么最完美的解决方法就是在本地对域名进行解析,达到完全模拟线上运行的目的。

  1. 找到apache系统的httpd.conf文件(不同的部署方式位置会有所不同),确保

    LoadModule vhost_alias_module_modules/mod_vhost_alias.so

    语句生效(语句前没有#)。

  2. 找到apache系统的xxx/extra/httpd-vhosts.conf文件(位置视部署方式而定),增加配置,例如:
    <VirtualHost *:80>
    	ServerName fxpai.com
    	DocumentRoot D:/wamp/www/wp/
    	<Directory  "D:/wamp/www/wp/">
    		Options +Indexes +FollowSymLinks +MultiViews
    		AllowOverride All
    		Require local
    	</Directory>
    </VirtualHost>

    域名和目录按照实际使用情况填写。

  3. 找到系统hosts文件,例如windows系统一般在c:/windows/system32/drivers/etc/目录下。打开文件添加解析域名,例如:
    127.0.0.1 fxpai.com

    ,域名视具体情况填写。

  4. 重启wamp或其他apache系统。
  5. windows系统打开cmd命令行,输入ipconfig /flushdns刷新dns记录。

访问你解析的域名,就可以正常访问本地网站了。

我的wordpress必备插件

用wordpress写博客很久的了,用过的插件不计其数。中间也有想不开的时候,将功能统统写到主题的functions里面。后来还是觉得维护和使用都不方便而作罢。况且,有人做好了轮子免费给你用,何必再自己造轮子?

下面是我一直到现在仍然在使用的plugins:(排名不分先后)

  1. Clean Archives Reloaded
    虽然已经2年没更新了,但是这么简单实用的功能谁在乎更新呢?效果请点击顶部menu > catagories > archives 归档 [all of articles]。
  2. Crayon Syntax Highlighter
    代码高亮插件,类似的插件有很多,这个算是功能很全的一个了。可能会产生些额外的样式和JS文件,但是现在网速这么快了,为了代码展示的漂亮一点,增加几十k又怎样!
  3. Delete-Revision
    删除多余的文章版本,这个功能对个人站长应该有用处吧。当然,经常改完文章就找后悔药的同学还是不要使用这个功能了。反正我从来都是写完就不管了,然后定期删除所有自动保存的文章版本。有人说现在主机也不贵,而且容量不低,何苦节省这点数据库?那我的回答就是:宝宝就是想要把垃圾删干净,然后心里爽。
  4. Google XML Sitemaps
    生成XML文件,有利于SEO(搜索引擎优化)。其实,我并不在乎这个事情,但是大家都会做一些优化,我也做吧。带google这个词的东西,就算没有用,拿出来秀一下也挺有面子的呗。
  5. My Category Order
    顾名思义,就是给自己的分类进行排序,用在侧边栏上还是很方便的。wp本身是没有这个功能的。很奇怪这个插件在wp官方网站上找不到了,后台链接的是作者自己的页面。也有很多类似功能的插件吧,但是我用习惯了,懒着换。当然,现在我把类别放到菜单里,就用不上这个了。
  6. My Link Order
    还是这个人写的插件,还是order功能的插件,只不过order的是友情链接。这个功能太有用了好不好,原版wp链接管理没有排序功能,反而搞了一大堆链接关系什么的,搞不清是怎么想的。这个插件在官方也没有了,只能从作者网站页面下载。
  7. WP Slug Translate
    对英文渣来讲(虽然我不太愿意承认),这个插件可以代替你生成漂亮的文章固定链接,使用的是bing的机器翻译api,翻译效果差强人意。但是固定链接就是简短一点就可以啦,实在不行动手修改一下,也不用费心去翻英汉词典了(sorry,现在已经没有人翻英汉词典了吧,估计都是手机翻译软件)。
  8. WPJAM TOC
    中国wp大牛我爱水煮鱼写的插件,自动根据文章标题生成目录。很像维基百科的页面目录样式。跟维基百科一样就是好的好吧,不要犹豫!
  9. 多说
    国产社会化评论系统。功能没得说,团队维护,使用更放心。关于国产社会化评论系统,我很久以前写过一篇评测:评测,仅供参考。
  10. 微信机器人高级版
    现在做微信的人好多,把微信和wp结合起来的也有几个,甚至已经有完整商业化的服务。这个也是我爱水煮鱼的作品,目前还是收费的,不过定期会搞一些活动免费获得。这个不知道是不是最好的,但是用起来没什么问题。用它自己架设一个微信订阅号平台,实现基本的功能分分钟的事情。好处就是网站内容和微信内容统一管理,数据安全性也有保障,不会被微信莫名其妙删掉。本站当然也有微信订阅号啦:
    微信订阅号二维码
  11. Force Regenerate Thumbnails
    来介绍这个插件,大概是我最喜欢的插件了。它的功能很简单,一次性重新生成所有图片媒体。有什么用?如果你曾经换过一些themes,或者用过一些不靠谱的themes,那你真的应该打开ftp,去服务器上看看,图片上传的文件夹里有多少用不上的图片尺寸。以前我的每张图片上传后,都会自动生成7~8张不同尺寸的图片。更换主题或者在后台更改三个媒体尺寸以后,以前的图片是不会重新生成的。当然,这么做是绝对正确的。但是对于不需要将图片外链的个人站长来说,这完全就是浪费空间。用完以后,虚拟主机都可以降低一个档次了!但有一点需要提醒用户,使用这个插件的时候,最好在本地测试好,确保不会发生意外事件,使用的时候一定要关闭所有的其他插件,注意,是所有其他插件。这个插件的破坏力太强了,谨慎使用。
  12. 还有两个插件就是disable google fonts插件和replace google fonts插件,都是国人开发的,用来避免google fonts服务无法使用而造成的网页加载缓慢的问题。但是现在我已经不再使用了,因为google fonts在国内已经恢复访问了,而且replace那个插件,使用的是360的公共库,最近也不太稳定,索性禁用掉就行了。另外,我之前还写过一篇优化wordpress访问速度的文章,仅供参考。

以上就是我目前在使用的插件,如果你还用过什么好的插件,也可以推荐给我。

Minecraft1.8 Python编程整合包

前些天,一本书的发布轰动了Minecraft游戏圈——《零基础学MineCraft编程》。这本面向11~15岁青少年的游戏编程教程,一下子成了MC信众们心中的宝贝,众多人纷纷表示,为了信仰,一定要把书里的内容学完。

可惜的是,我已经不是11~15岁的少年了(虽然是实话,但是说出来还是显得有些臭不要脸)。其次,我根本算不上信仰,只是对这么值钱的一款游戏感到好奇(微软花了25亿美金把它给收购了)。而我就是在游戏世界里用手撸树、盖“火柴盒”的那种毫无存在感的小绿人。

去年底,一名知乎上的建筑大神在出版的新书里也推荐过这款游戏,他认为这是跟建筑有关的游戏里很神奇的存在。另外,这是一款开源游戏,有着丰富的mod和插件,甚至还有官方的API接口。Minecraft已经不是一款游戏了,而是以游戏形式存在的3d设计软件和一个程序开发包。

所以,我觉得这个游戏还是值得体验一下。买书当然是一时冲动,书里的编程内容太过基础,没有太大参考价值。当然,如果你是刚入门也无伤大雅,边学边玩就是了。

闲话完毕,进入正文。书中所用的craftbukkit服务器版本为1.6.4,太悠久了好么,到官网上去看了一眼,竟然没有下载链接了,新旧版本都没有,是因为一个什么声明,懒得研究了。好在有镜像并且作者一直在更新。树莓派插件也在更新,没什么问题。其他的mcpi,anyio好像没有变化。把几个东西整合了一下,按照书中给出的方法做了1.8版本的安装包,懒得重新做包的同学们拿走就是了。

下载《零基础学MineCraft编程》配套编程包1.8版本

WordPress网站从服务器转移到本地调试

update 2018.7.17:这样太麻烦,还容易出问题。看无痛方法


update 2016-07-25:第5项更改两个关键值实现本地访问并不是最好的方法。比较完美的方法是:使用apache的虚拟主机功能,绑定域名后,在本地hosts文件中解析域名至127.0.0.1来实现本地带域名调试。具体请点击我的另一篇介绍


很多wordpress爱好者可能都遇到过这样的情况:刚接触wp的时候,直接在虚拟主机(或者云服务器)上安装并运行了wordpress。并且,在很长一段时间内,都在网路上直接进行维护,甚至是编辑主题。但是,当你的网站需要进行大范围的改版,或者你想根据自己的内容重新进行设计工作的时候,麻烦就来了。要在本地重新建设一个环境,并把网路上的网站和数据原封不动的搬运过来,这并不是一件简单的“复制/粘贴”工作,还是有一些需要注意的问题的。非学派在这里详细列出几个步骤和注意事项,希望对正在计划进行类似操作的coder和设计师们有所帮助。

1. 建立本地调试环境

我自己在很多年的时间里,都在用一个叫做PHPnow的“环境包”(故且这么叫),这是一个很方便的东西,每当要更换电脑的时候,只要把整个文件夹拷贝/粘贴到新设备上,然后激活一下就可以了。正常情况下只要80端口没有被占用,一切都可以正常使用。但是,这个东西貌似2012年以后就没有更新了,考虑到php环境的版本等原因,我还是建议换一个先进一些的。记得以前在Linux环境下用过一个超级好用的环境包叫做LAMP——一个开源的Aphache,Mysql,Php开发环境,这么好用的东西当然要适配到windows上咯。于是,就有了这个东西WAMP

在网站上下载安装以后,持续“下一步”安装即可。安装完了以后就可以访问http://localhost访问本地页面了。

2. 官网下载WordPress安装包,并安装到本地环境

这一步其实是可以省掉的,但是我还是建议这样做,这样可以尽可能的搭建一个全新的wp环境,避免干扰和一些奇怪的问题。

在这里还是罗嗦一下,在安装wp之前,需要在phpmyadmin下新建设数据库和用户,这一步很重要。用惯了虚拟主机的站长习惯于主机商提供商数据库、用户名、密码等数据,但是在本地环境下需要自己完成这件事情。

具体步骤是:进入http://localhost/phpmyadmin页面>>右侧“数据库”选项卡>>填写新建数据库名称>>点“创建”,创建完成后,左侧点击新建的数据库>>点击右侧“权限”选项卡>>点击“添加用户”>>由上至下分别输入用户名,“localhost”,密码>>页面下方,点击“创建”,就完成了。

把你填写的这些内容,按要求再填写到由wordpress的wp_config.php文件中,就可以了。

安装WORDPRESS其他具体过程就不赘述了。

3.复制必要的文件

这一步完成以后,就开始搬运了。从你目前的主机上,下载./wp_content/themes/、./wp_content/plugins/这两个文件夹,粘贴并覆盖到本地文件相应位置。另外,还要拷贝跟你自己有关的上传文件夹。例如,我的是./upload,这个文件夹的位置与每个站长的使用设置有关。最后检查自己私人定制的文件夹,看看还有没有遗漏的。

4. 备份/恢复数据库

备份数据库比较简单的有两种方法,第一种是进入你的虚拟主机管理系统,备份整个网站或者仅备份数据库,用得到的sql文件从本地phpmyadmin中导入到相应数据库。

另一种是在虚拟主机的phpmyadmin中导出sql文件,再通过本地phpmyadmin导入到本地相应数据库中。

两种方法效果一样,且只要会操作phpmyadmin就行了。

至于其他的wordpress备份插件,我没有用过,也不想用,觉得是多此一举。

5. 修改数据库的两个关键值

倒入数据库以后,还有一项必须要做的工作,就是在数据库里改掉网站的域名和home网址,不改掉这个,网站在本地是无法正常访问的。

第一步,在你之前创建的数据库中,找到并点击wp_options表>>siteurl项>>在option_value输入框中,将域名改为http://localhost/XX。(“/XX”是你的wp项目文件夹名,如果wp安装在“/www”根目录,就不用写这部分)>>点击“执行”。

第二部,在你之前创建的数据库中,找到并点击wp_options表>>home项>>在option_value输入框中,将域名改为http://localhost/XX。(“/XX”是你的wp项目文件夹名,如果wp安装在“/www”根目录,就不用写这部分)>>点击“执行”。

改完上面这两项,浏览器输入http://localhost/XX,(“/XX”是你的wp项目文件夹名,如果wp安装在“/www”根目录,就不用写这部分)就可以正常访问网站了。当然,点击文章页面是不能访问的,因为没有启用服务器rewrite功能,启用方法请继续往下看。

6.启用本地Aphache服务器的rewrite功能

WAMP的Aphache默认是不开启rewrite功能的,这会导致WP的固定链接功能无法使用。开启的方法很简单:

修改C:\wamp\bin\apache\apache2.4.9\conf目录下httpd.conf文件,第154行行首的“#”去掉,保存。

就是下面这一行:

#LoadModule rewrite_module modules/mod_rewrite.so

重启服务器以后,进入WP的后台>>固定链接选项页面>>点击一次确定,就可以正常使用固定链接功能了。

总结

我这里没有放图片,单纯就是因为我懒。当然,文字写的也不是非常详细,只是一个原则性的过程。每个人在操作过程中多多少少都会遇到些问题。尤其是用了很长时间的网站,转移起来就更加麻烦了。不过为了更加方便的编辑和改版,这些辛苦都是值得的。