在phpcloud上搭建wordpress

2013年03月20日

前两天在一个小站上无意间看到利用盛大云提供的免费CAE服务搭建wordpress的帖子,建立一个独立博客是我很久前就有的想法。

利用盛大云提供的模板功能可以非常方便地建立一个wordpress驱动的博客,安装过程很简单。但是博客的速度那叫一个无法忍受,同时据以前用过新浪类似服务的网友吐糟,国内这种免费服务很不保险,说不定哪天就要收费、关停了。

于是乎,兴致来了又在网上找其他提供相似服务的服务商。开始准备用GAE来着,因为我已经有GAE的帐号了,但是终究仰慕WP的大名,就不嫌折腾,找到了这家phpcloud,它是php的掌门zend旗下的一家云服务商。大概试用了一下感觉虽然是国外的公司,但是速度还行。

下面介绍在zend上面部署WP的步骤。

  1. zend申请一个帐号,然后去phpcloud登录。登录后会生成一个密钥,我用的Linux系统,所以选择PEM格式的密钥,有了这个密钥后后面就能使用sftp部署程序代码。

  2. 填写资料,新建一个container。container应该属于云上的个人空间,目前phpcloud默认只允许申请一个container,但是你可以申请多要空间。在一个container中可以有多个应用。不用担心新建container的时候资料填错,除了名称外其他像邮箱设置的都可以后面再改。 zend

  3. 在container中已经有一个默认的应用,可以先删除它,点击‘新应用’就可以新建一个应用。和盛大云一样,phpcloud也提供了应用模板,闲麻烦的可以直接选择WP从而新建一个博客系统,否则,可以新建一个空应用。不知道怎么回事,往一个空应用中上传好代码过后,这个系统还不能正常工作,可能是不仅仅要部署代码,还需要有一些类似激活的动作。所以,我在这里利用模板新建了一个应用。

  4. 在phpcloud中,可以利用git或者sftp上传代码。注意对于WP,需要有一个配置文件wp-config.php,这个可以用刚才新建模板后产生的那个,那里面有如何访问数据库等方法,也可以自己做一些修改。用git的操作步骤基本如下:

       git clone url (此url值可以在container中应用上点击git得到)
       git commit =-m "init"
       git push
    
需要注意的是,采用git部署代码的时候有可能会出现错误`error: RPC failed; result=56, HTTP code = 0`,可能是git的缓冲太小了,只需要改变一下其大小就行了:

       git config http.postBuffer 524288000
    

若采用sftp部署代码,当采用Linux下命令行sftp时,使用命令:

       sftp -i path/zend.pem mycontainer@mycontainer.my.phpcloud.com
    

其中`path/zend.pem`为步骤1中获得的密钥。

若采用winscp部署代码,还需要将密钥转换为putty支持的格式,具体方法见[采用WinScp部署代码][4]。
  1. 代码部署完成后就可以点击应用运行它了,标准的5分钟设置WP。若有需要,可以设置一下contianer的相关项,查看一下数据库。正式运行后还可以到zend server查看应用运行情况。

  2. phpcloud提供的域名太长了,可以考虑用自有的域名。我上dot.tk申请了一个顶级域名,但是CNAME总也绑定不上去,不知道是怎么回事。于是借助国内服务商dnspod来实现cname。申请账户就不大说了,首先在dnspod中添加一个域名,就是在dot.tk中申请到的域名,将会得到两个DNS地址,到dot.tk中设置申请的域名使用这两个DNS服务器。然后回dnspod添加记录CNAME, 像下面这样

主机记录 记录类型 线路类型 记录值 MX优先级 TTL
@ NS 默认 f1g1ns1.dnspod.net. - 600
www CNAME 默认 phpcloud给的那个域名 - 600

这样,采用www.tk域名就可以访问WP了。

  1. phpcloud提供的空间在连续两天没有访问时就会自动休眠,这时,可以利用监控宝来监控博客的运行情况,它会定期访问博客以测试其是否正常运行。

注:

很悲催的是tk竟然把我域名收回了,并且完全没有给任何消息。好吧,还是老老实实用phpcloud的域名吧,长点就长点,放心些。

进入数据库后台,执行以下SQL语句更改域名。

# 更改设置
UPDATE wp_options SET option_value = replace( option_value, 'old.name', 'new.name' ) ;
# 换文章中出现的链接
UPDATE wp_posts SET post_content = replace( post_content, 'old.name', 'new.name' ) ;
# 换评论里面的链接
UPDATE wp_comments SET comment_content = replace( comment_content, 'old.name', 'new.name' ) ; 
UPDATE wp_comments SET comment_author_url = replace( comment_author_url, 'old.name', 'new.name' ) ;