WordPress_log

使用Linode架设WordPress时的一些建议

我本来使用的是BlueHost的wordpress空间,但由于感觉体验不够好且速度略慢(其实不是真的慢,后面详说),就最终选定了Linode的最便宜的VPS。Linode的灵活性、自由度深深震撼了我,它甚至允许通过SSH以root用户登录服务器!作为一个程序员,用CLI的感觉还是远好于网页版的cPanel的。

Linode提供的各种文档非常丰富,我就不废话了。这里简单说一下其文档没有说明白的几个小问题:

1、打开Apache的ReWrite功能

如果需要安装插件WP Super Cache的话,需要先设置WordPress的链接样式不是默认的http://DomainName/?p=xxx的形式。而这个设置需要Apache支持ReWrite机制,通常虚拟主机都会默认配置好(网上说Godaddy似乎一直不支持ReWrite),但VPS一切都得自己从头配置。配置要点为:

第一步,打开Apache的Rewrite功能,在/etc/apache2/apach2.conf中对wordpress的宿主目录(通常是/var/www)做如下配置:

<Directory /var/www >
Options Indexes FollowSymLinks ExecCGI Includes
AllowOverride All
Require all granted
</Directory>

第二步,将 rewrite.load 添加到 /etc/apache2/mods-enabled中,执行命令:

sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/

第三步,重启Apache2服务;

 2、禁用GoogleAPI的字体

最初使用BlueHost时,我发现WordPress的仪表盘和正常网页都很慢很慢,打开一个几十个字的测试文章需要十秒以上,简直无法忍受,所以我很无奈地和BlueHost的克服沟通后选择了退款。然后我迁移到了Linode这个公认的最好的VPS上,发现仍然很慢很慢!我反复测试,发现不受WordPress管理的文件(例如随便搞一个大html放到apache上非wordpress目录)加载确实非常非常快的,怎么回事儿呢?难道是WordPress有问题?

后来我google了一下后,总算真相大白了。原来是由于Google“作恶”导致的哦。WP中的很多主题、JS脚本、字体等都大量使用了GoogleAPI中的字体,而Google在天朝经常无法联接,所以才会导致页面加载慢。(在此向BlueHost说声对不起了,错怪你们了!顺便说一下,BlueHost是WordPress官方推荐的Hosting Provider之一,详见这里:https://wordpress.org/hosting)

解决方案有三种,详见这里:http://www.wind88.net/news/news-125.html

推荐使用第二种方法,即安装插件Remove Open Sans font from WP core;

顺便说一下,我安装的其他插件还有:Akismet、All In One SEO Pack、Google XML Sitemaps、Jetpack、SyntaxHighlighter、WP-PageNavi、WP Super Cache(说实话,多数来自coolshell.cn陈浩的推荐),但愿对大家有帮助。

3、修改public_html目录的权限和所有者

关于权限,网上一般的说法是,设置目录权限为755,网页文件为644,其中wp-config.php文件权限设置750 。wordpress官方文档:http://codex.wordpress.org/Hardening_WordPress#File_permissions

关于public_html目录所属组,我建议将所有者和组都设置为www-data,因为apache2的用户是www-data,如果Apache2没有权限读写public_html目录中的文件的话,在线安装主题和插件就是基本必然失败的;

4、新增一个专门用于FTP的普通用户,并在防火墙中开启ftp相关端口

一般安装vsftpd即可,按照需求配置/etc/vsftpd.conf,我建议添加一个FTP默认目标目录的配置,日常使用会很方便,通常是 local_root=/var/www/你的域名/public_html

Linode文档中的防火墙配置最好都照做了,如果需要使用普通的FTP(敏感文档最好使用SFTP上传,端到端加密,更安全),则需要开启FTP的端口,在/etc/iptables.firewall.rules增加如下几行:

-A OUTPUT -p tcp --sport 21 -j ACCEPT
-A INPUT -p tcp --dport 21 -j ACCEPT
-A OUTPUT -p tcp --sport 20 -j ACCEPT
-A INPUT -p tcp --dport 20 -j ACCEPT
-A INPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

5、增强WordPress默认编辑器的能力

这是从网上找到的方法,在不增加插件的情况下,增强WordPress的编辑能力。方法是修改当前正在使用的主题的functions.php文件(位于/var/www/你的域名/public_html/wp-content/themes/当前主题/),增加如下一个函数和一个函数调用,可以直接追加到此文件的最后面即可。

function add_editor_buttons($buttons) {
$buttons[] = 'fontselect';
$buttons[] = 'fontsizeselect';
$buttons[] = 'cleanup';
$buttons[] = 'styleselect';
$buttons[] = 'hr';
$buttons[] = 'del';
$buttons[] = 'sub';
$buttons[] = 'sup';
$buttons[] = 'copy';
$buttons[] = 'paste';
$buttons[] = 'cut';
$buttons[] = 'undo';
$buttons[] = 'image';
$buttons[] = 'anchor';
$buttons[] = 'backcolor';
$buttons[] = 'wp_page';
$buttons[] = 'charmap';
return $buttons;
}
add_filter("mce_buttons_3", "add_editor_buttons");

修改后,再次编辑文档时,点击工具栏最右边的“显示/隐藏工具栏”按钮即可展开更多编辑工具,修改前能看到两行工具栏,修改后能看到三行工具栏;

好了,就这些。

开张了!

折腾了几天,我的WordPress个人博客终于开张了!

欣喜之余,我接受了Mr Ego的采访:

Q:博主做个自我介绍呗……

A:已婚的挨踢胖大叔,二流211院校的软件工程科班出身,然学历不高,本科辄止,技术有限,加班无止境,已过而立之年然德功言一无所立,尘世中迷途羔羊一只。

Q:为什么决定做这个个人博客?

A:作为一个有理想有抱负的有痣青年,我很崇敬coolshell.cn的博主陈浩,愿竭尽所能达到陈浩四分之一的才学,所以我决定效仿先贤,做这么一个个人博客出来。另一方面,也是为了强迫自己主动思考和总结知识。最后,有一个自己的独立网站,肯定比写在csdn上逼格高很多,不是么?好吧,我承认,最后一点才是重点。

Q:关于域名?

A:域名binghuodao.com是我在2008年某一天看电视剧(好吧,你猜对了,就是《倚天屠龙记》)时脑子里灵光一闪想到的,觉得不错就赶紧注册了。此间有几个人向我询价想买这个域名,彼时穷疯了我每每给人出价上万,结果数年也无人青睐,无形资产也变成了无形负担。我一直认为冰火岛这个词不适合做技术网站的名字,所以最初打算另择一个更有IT意境的域名。然而绞尽脑汁累死无数脑细胞之后,依然没能找到一个足够高端大气上档次且未被注册的.com域名,算了,就它了吧。

Q:计划的写作内容和频率?

A:本码农最近几年是做Android系统层开发的,所以刚开始时可能这方面的东西会多一些,但既然自诩为有痣青年,就不能自拘于偏狭,所以肯定会写计算机领域的各方面的东西。至于频率,但愿能每周一篇吧。希望我能克服自己的惰性,请大家监督我吧。

Q:怎样联系你?

A:其实你问这个问题有点多余。我觉得是否有人以及有多少人想要联系我,取决于我文章的质量和数量,作为一个屁都不是的nobody,估计没人会关注我的。好吧,如果真的觉得有必要联系我(愿意出高价买域名也算哦),请发邮件至tungstenwang艾特gmail.com,请把艾特替换成符号,你懂的。