分类目录归档:WordPress

利用缓存插件WP Super Cache与又拍云构建WordPress全站CDN

之前写过如何利用缓存插件W3TC与又拍云构建WordPress全站CDN,经过一年多的使用后,发现W3TC如果通过硬盘进行缓存时,CPU占用较高、消耗磁盘空间较多、配置相对复杂等问题,当然如果选择Memcache等内存缓存的话,效率还是很高的。介于以上原因,改用另一款老牌知名缓存插件WP Super Cache与又拍云联合使用,效果也不错,基本避免了前面所说的问题。具体步骤如下。

1. 安装WP Super Cache插件并启用,在其设置界面中,勾选开启CDN,URL填写你在又拍云中的空间所对应的域名及目录即可。

wpsupercache_4

 

2. 切换到「Advanced」,对照下图设置即可。

wpsupercache_3

 

继续阅读

Nginx中多个子目录下WordPress的rewrite规则

首先推荐一个很有意思的VPS面板:VPSMate,目前作者已完成了主体功能,它的特点很突出:

  • 安装、卸载简单;
  • 占用资源小,内存占用一般可以控制在20~50MB;
  • 界面交互明晰,操作体验流畅。

目前只有hilyjiang独自开发,不过版本发布稳定,作者本人也常在官方论坛中解答用户的提问。
回到题目本身,Nginx相对Apache而言的优点不必多言,当在站点下多个子目录中需要安装WordPress时,它的rewrite规则可以这样写:

目录所在的location中,写上如下规则:

  if (-f $request_filename/index.html){
    rewrite (.*) $1/index.html break;
  }
 
  if (-f $request_filename/index.php){
    rewrite (.*) $1/index.php last;
  }
 
  if (!-f $request_filename){
    rewrite (.*) /web/index.php last;
  }

继续阅读

利用缓存插件W3TC与又拍云构建WordPress全站CDN

又拍云是一个好东东,自从去年年底使用至今,稳定靠谱,价格适中,部署简单。之前有分享过使用Hacklog Remote Attachment插件来实现将WordPress的附件上传至又拍云。不过这一方法略有遗憾之处在于,无法便捷地将整个WP站点中的静态文件推送至又拍云。今天再介绍另一个方法,利用经典缓存插件W3 Total Cache与又拍云一起来实现WordPress全站CDN,具体步骤及要点如下:

1. 安装好W3 Total Cache插件,并启用。

2. 在W3 Total Cache的General Setting中启用CDN,并将类型选为Self-hosted,如下图所示。

General Settings-W3 Total Cache

3. 在插件的CDN选项中,勾选以下这些。其他的选项可以根据自己的实际情况选择是否开启。

Content Delivery Network-W3 Total Cache-1

4. 配置中,填入在又拍后台中设定的FTP用户名、密码等信息,FTP主机推荐使用v0.ftp.upyun.com。FTP路径建议根据自己域名下的实际路径填写;如果网站中的子站为二级域名,最好每个单独创建又拍存储空间。主机名中,可根据自己的情况填写,如果在又拍上绑定过独立域名,可填写独立域名;最后不要忘记点击Add CNAME。

Content Delivery Network-W3 Total Cache-2

继续阅读

初体验:又拍云存储

又拍团队推出云存储服务后,成功案例不少(周末画报iweek.ly、携程旗下驴评网等都在使用其服务),一直想亲自体验一下,于是12月2日上午填写申请信息,当天下午五点多就收到了邮件通知已审核通过,更为贴心的是,有专人添加了我的QQ,告知我:可以开始体验,如果遇到问题也可与他直接联系。

又拍云存储界面-1

一、主要体验了又拍云存储与wordpress的共同使用,基本步骤如下:

1. 在又拍云存储上按照步骤正常创建空间和操作员。创建空间类型推荐选择:文件类,毕竟很难保证博客中不会上传PDF等非图片文件,而且图片的自动生成缩略图这一步骤wordpress本身已可做到,未必需要又拍云进行。

2. 在wordpress后台,添加并启用一款名为Hacklog Remote Attachment的插件(更多信息可见作者博客)。

3. 在该插件的设置中,FTP server、FTP username、FTP password填写又拍云存储后台中获取到的FTP信息即可,其中FTP server一项推荐填写 v0.ftp.upyun.com,它可以自动判断网络提供商。Remote base URL一项填写创建云存储空间时设定的域名(如有网站备案,也可申请绑定独立域名,一般在2小时左右可审核完成)。

4. 更新文章中的文件URL,该插件已提供一键更新;当然也可以通过phpMyAdmin直接通过SQL语句批量修改文件地址:
UPDATE `wp_posts` SET post_content=REPLACE(post_content,'到原文件目录的绝对 URL','到新文件目录的绝对 URL');

5. 登录SSH,将wordpress文件目录全部通过FTP发送至又拍云存储的空间中。

二、这样改动的好处:

1. 在拥有专业的文件存储的同时,可一并获得CDN服务。

2. 对于大量使用图片的摄影、创意博客,将会拥有更好的访问体验。

3. 开放FTP,对用户而言门槛更低,不论上传或备份都比较方便。

4. 对创业者,可以使用其API接口做深度开发(移动App开发者尤其值得关注)。

三、以上方案已知的问题:

使用WordPress App for iOS可以正常上传图片,但在App中插入的图片URL仍是博客所在域名。

四、总结:

就目前在测试版上看到的收费标准来看,很是亲民:1GB存储空间+100GB流量,12个月有效期不过一百元出头。计费方式相对简单明了,后台也给出了流量消耗和请求数的统计报表。

现在对于Discuz、PHPWind社区程序已可直接后台设置使用。针对目前WordPress被更多应用在CMS领域的现状,也期待又拍能推出官方插件,更好地将两者集成。

PS: 做好以上方案之后,可以在YSlow下看看得分:)

 

===2011-12-08 更新记录===
文中SQL语句表述有误,已根据荒野无灯在评论中的建议修改。

===2011-12-27 更新记录===
原来荒野无灯已经开发出了基于HTTP REST机制的Hacklog Remote Attachment Upyun(又拍云版) ,并对使用方法及注意事项做了详细说明。撒花:)

===2012-08-02 更新记录===
提供一份本站所用的又拍云存储服务的Ping测试结果截图(已绑定二级域名),供参考。

 

升级CentOS中PHP到5.2.x

在VPS上有个wordpress站点需要升级到最新版,而VPS的LNMP环境尚停留在PHP5.1,未满足WP3.2版需运行在PHP5.2以上的要求。而系统CentOS也没有提供官方正式更新,想直接用yum更新遇到困难。于是Google之,经实践后顺利有效,总结步骤,备忘之用。

1. 编辑CentOS-Base.repo文件。

vim /etc/yum.repos.d/CentOS-Base.repo

2. 添加以下代码在CentOS-Base.repo文件的最后:

[c5-testing]
name=CentOS-5 Testing
baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing

# CentOS-Testing:
# !!!! CAUTION !!!!
# This repository is a proving grounds for packages on their way to CentOSPlus and CentOS Extras.
# They may or may not replace core CentOS packages, and are not guaranteed to function properly.
# These packages build and install, but are waiting for feedback from testers as to
# functionality and stability. Packages in this repository will come and go during the
# development period, so it should not be left enabled or used on production systems without due
# consideration.

3. 检查需要更新的PHP相关组件列表。

yum –disablerepo=* –enablerepo=c5-testing check-update php*

4. 如果列出来的结果没有问题,则开始进行更新。

yum –disablerepo=* –enablerepo=c5-testing update php*

5. 更新安装完成之后,服务器端检查PHP版本。

php -v

6. 重启服务。

/etc/init.d/php-fastcgi restart
service nginx restart

之后即可正常用wordpress内置的update升级程序到最新版本了。

更多关于CentOS 5.x升级自带PHP 5.1.x到PHP 5.2.x的信息,也可以参考CentOS官方Wiki中的相关文档