Ubuntu服务器上的最优WordPress方案
WordPress是一个经典而又强大的博客程序,并且易于安装与搭建,在OpenShift上不花半分钟就可以免费建起一个WordPress博客,Ubuntu上只需要使用apt-get install wordpress就能快速安装。
不过问题在于WordPress的程序非常不科学,以致于百度WordPress贴吧的加精帖都是在吐槽它如何的没前途。个人的经验是,如果不进行优化,采用传统Apache 2+PHP 5的方式,访问量稍微大一些,就会撑爆RAM和CPU。从高考前(今年4月)的到现在的几个月我一直在研究怎样方便而又优雅地搭建一个省资源的WordPress博客,尝试了几乎所有的方法后最终总结出一套比较完整的方案,自认为是目前最好的一种了。
要求:
64位Ubuntu操作系统,最好是14.04 LTS
512MB RAM,最好带swap(如果是OVZ必须不能超售啊,否则用HHVM会死的很惨)
足够硬盘空间
通畅的网络
个人认为在国内VPS上用WordPress似乎没有在国外舒服。
这个教程在Linode和Wable的Ubuntu minimal上测试通过。
从这里开始请全程使用root账号执行。
安装nginx
首先卸载很多VPS自带的apache2: apt-get purge apache*
推荐使用1.6.0版本的nginx-extras,而不是Ubuntu默认源的1.4.7版本。
apt-get update; apt-get upgrade -y; apt-get install -y python-software-properties software-properties-common; #如果你的VPS上没有add-apt-repository命令,就执行这一步。 add-apt-repository ppa:nginx/stable; apt-get update; apt-get install -y nginx-extras;
这样nginx就安装并启动了。访问你的服务器IP地址查看是否出现Nginx欢迎界面。
::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::0
安装HHVM
HHVM是Facebook编写的高效PHP运行时,它将PHP编译为字节码并缓存在内存中,在没有修改PHP文件的前提下会直接运行内存中的字节码而不是去重新解释PHP,这样就非常好地克服了WordPress的缺陷。具体表现就是对同一个页面,在高并发下RAM增长也不明显,基本维持稳定。从我的经验上看HHVM把WordPress变得比Ghost博客还快而且高并发省内存我会乱说?
HHVM官方提供了各个操作系统的软件包,参考https://github.com/facebook/hhvm/wiki/Prebuilt-Packages-for-HHVM ,安装的时候一定要选对版本。
以Ubuntu 14.04 LTS为例,这里执行以下命令
wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | apt-key add -; echo deb http://dl.hhvm.com/ubuntu trusty main | tee /etc/apt/sources.list.d/hhvm.list; apt-get update; apt-get install hhvm;
请注意-O和-0的区别,最好直接复制粘贴命令。
安装FastCGI
/usr/share/hhvm/install_fastcgi.sh;
HHVM安装完成后使用以下命令加入启动项
update-rc.d hhvm defaults;
这样一来HHVM就安装完成了。
安装数据库
WordPress的数据库是MySQL,当然你可以安装MariaDB,不过没有MySQL方便。
apt-get install bsdutils; #minimal系统不执行这一步会报错 apt-get install mysql-server;
安装过程中会让你设置mysql密码,由于mysql只对127.0.0.1开放,所以为了方便,留空即可。可能需要按三次[Enter]。
安装完后连接到mysql,并创建数据库
mysql -u root -p #会让你输入密码,直接Enter create database wordpress; #mysql命令这一句千万别掉分号 exit;
编辑nginx配置
首先删除默认配置文件
rm /etc/nginx/sites-enabled/default; nano /etc/nginx/sites-enabled/default;
加入以下内容(**使用你的域名替代example.com和www.example.com )
server { server_name example.com www.example.com; listen 80; listen [::]:80 ipv6only=on; root /usr/share/nginx/html; index index.php index.html index.htm; include hhvm.conf; location / { try_files $uri $uri/ /index.php?$args; } client_max_body_size 1024M; }
然后执行命令nginx -s reload重新载入nginx配置。
安装WordPress
cd /usr/share/nginx/; rm -rf html; wget http://cn.wordpress.org/wordpress-3.9-zh_CN.tar.gz; #安装中文版 tar xzf wordpress*; rm wordpress*.tar.gz; mv wordpress html; chown -R www-data html html/*;
现在你可以直接访问你的域名了。
::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::1
::__IHACKLOG_REMOTE_IMAGE_AUTODOWN_BLOCK__::2
开始享受WordPress安装吧!注意:千万不要用admin、root等常见账号名作为用户名,否则你就等着被暴力破解吧。
优化WordPress
如果你不优化WordPress,那么可能会发生这些事情:
1.如洪水一般的垃圾评论
2.从中国大陆访问极其缓慢(哪怕服务器在国内)
3.后台密码被暴力破解
4.css、js文件不能被正常缓存
如果你刚搭建好的WordPress后台在国内访问非常慢,你可以考虑暂时挂上VPN,优化完毕后不再需要。
优化步骤:
1.升级到最新版本(后台会提示)
2.移除默认插件
3.安装以下插件:
Comments Link Optimization (评论链接跳转)
Disable Google Fonts (移除google字体)
Limit Login Attempts (限制登录尝试次数)
NoSpamNX (评论反垃圾)
Query Strings Remover (移除Query String)
并且进行相关配置。至于其他插件,建议少用。首先可能造成前端性能问题,其次对HHVM的兼容性也是未知,容易造成错误,比较麻烦。
4.删除主题中的google字体(如果是Twenty Forteen自带主题,就在functions.php文件内,在后台-外观-编辑里可以修改)
5.修改主题的footer.php,移除WordPress链接并加入内容版权信息和ICP备案号。(可选,如果你觉得不碍眼的话自豪地采用WordPress还是给留着吧)
6.进入 设置-固定链接 ,使用自定义结构,推荐如下结构:
/%year%/%monthnum%/%post_id%-%postname%.html
这样配置出的WordPress应对高访问量,压力是非常小的,除非你的服务提供商真的坑,坑到家,CPU性能极其低下(比如Windows Azure国内试用账号的A0虚拟机)或者RAM问题严重(无良OpenVZ)。
推荐使用Linode(Tokyo或Fremont)、DigitalOcean(San Francisco)搭建,但是如果只是一个小网站,$5/mo或者$10/mo未免显得太土豪,可以挑选一些小一些的便宜VPS并且做好备份,比如我前些时介绍的wable等。
RAM一定要足够,这是原则问题。目前来看,一个DigitalOcean最小号VPS用HHVM大约可以放5个中小规模的WordPress。