前两天在一个小站上无意间看到利用盛大云提供的免费CAE服务搭建wordpress的帖子,建立一个独立博客是我很久前就有的想法。
利用盛大云提供的模板功能可以非常方便地建立一个wordpress驱动的博客,安装过程很简单。但是博客的速度那叫一个无法忍受,同时据以前用过新浪类似服务的网友吐糟,国内这种免费服务很不保险,说不定哪天就要收费、关停了。
于是乎,兴致来了又在网上找其他提供相似服务的服务商。开始准备用GAE来着,因为我已经有GAE的帐号了,但是终究仰慕WP的大名,就不嫌折腾,找到了这家phpcloud,它是php的掌门zend旗下的一家云服务商。大概试用了一下感觉虽然是国外的公司,但是速度还行。
下面介绍在zend上面部署WP的步骤。
-
去zend申请一个帐号,然后去phpcloud登录。登录后会生成一个密钥,我用的Linux系统,所以选择PEM格式的密钥,有了这个密钥后后面就能使用sftp部署程序代码。
-
填写资料,新建一个container。container应该属于云上的个人空间,目前phpcloud默认只允许申请一个container,但是你可以申请多要空间。在一个container中可以有多个应用。不用担心新建container的时候资料填错,除了名称外其他像邮箱设置的都可以后面再改。
-
在container中已经有一个默认的应用,可以先删除它,点击‘新应用’就可以新建一个应用。和盛大云一样,phpcloud也提供了应用模板,闲麻烦的可以直接选择WP从而新建一个博客系统,否则,可以新建一个空应用。不知道怎么回事,往一个空应用中上传好代码过后,这个系统还不能正常工作,可能是不仅仅要部署代码,还需要有一些类似激活的动作。所以,我在这里利用模板新建了一个应用。
-
在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]。
-
代码部署完成后就可以点击应用运行它了,标准的5分钟设置WP。若有需要,可以设置一下contianer的相关项,查看一下数据库。正式运行后还可以到zend server查看应用运行情况。
-
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了。
- 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' ) ;