Jul 01

背景:因为收到了Google的加速服务Page Speed Service的邀请邮件,打算使用Page Speed Service来提高网速,但是有一个很郁闷的问题,Page Speed Service不能对裸域进行设置,只能对形如a.abc.com二级域名进行加速,而我准备将www.abc.com作为正常访问的加速后的域名,所以我就必须重新设置一个二级域名,还需要保证这个二级域名的内容与裸域的内容一致,这时我就想到了WordPress多站镜像同步方案来了,可以设置一个二级域名与裸域共用一个数据库,这样只需要在裸域下进行内容的更新就可以了,同时www.abc.com进行加速后内容也与裸域保持一致,这样就达到了预期的目的了。

参照方案:http://www.wx35.cn/archives/735/

具体步骤如下:
1.首先安装你的裸域名WordPress,主域名无须特别设置,只需要共享MYSQL远程链接。Godaddy的数据库是可以设置MYSQL共享的,但是需要在一开始的时候设置,如果没有实现设置,那么安装完成以后就不能设置了。这里的MYSQL共享是指可以将镜像WordPress安装到另外一台主机上,但是内容一模一样。由于我没有实现设置,所以不能安装到另外一台主机上,但是我将镜像安装到了同一主机下就变相地达到了目的。

2.安装镜像站WordPress,版本与主域名一致,最好直接将主域名的安装文件直接复制过来,只需要修改一下镜像站的wp-config.php文件,完整代码如下:.

<?php
// ** MySQL settings ** //
define('DB_NAME', 'name');  
define('DB_USER', 'user'); 
define('DB_PASSWORD', 'pass'); 
define('DB_HOST', '主域名MYSQL地址'); 
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
define('WP_HOME', 'http://m.chunchu.org');
define('WP_SITEURL', 'http://m.chunchu.org');

$table_prefix  = 'wp_';   // Only numbers, letters, and underscores please!

define ('WPLANG', 'us_EN');

/* That's all, stop editing! Happy blogging. */

define('ABSPATH', dirname(__FILE__).'/');
require_once(ABSPATH.'wp-settings.php');
?>

由于我的镜像与主域名是同一主机,所以将wp-config.php文件修改完成后,连基本的安装过程都不需要就可以正常的访问了。

3.图片及文件共享。将图片及文件分离出来,你可以绑定一个独立域名来访问图片及文件,完整的MYSQL命令如下:

UPDATE wp_posts SET post_content = replace(post_content, 'http://chunchu.org', 'http://img.chunchu.org')

由于我写文章的时候,直接就将图片和文件放在Google Storage上了,所以不需要这一步了,而且速度快,容量大,便于多次使用。至于原文中提到的使用cos-html-cache将WordPress真正的静态化,我就不需要这个插件了,记得很久以前就是由于使用了这个插件,导致一片文章发表后很长时间首页仍然不能更新后,就再也不想用它了,我的WordPress很少使用插件的。

Mar 31

Heroku是支持语言最多的云平台之一,官方没有公开提示可以支持PHP语言,但是有大牛已经试验过了,可以在这个云平台上安装Wordpress,过程稍稍有点麻烦,但是Heroku提供5Mb的数据库,考虑到云平台的安全性,而且可以绑定域名,所以用来写写博客还是不错的选择。下面就将具体的步骤记录下来,以备不时之需。

(1).在Heroku注册账号
Heroku的官方网站是https://heroku.com/,注册过程很简单,在这里就不详细记述了,建议使用国外的邮箱注册,国内的邮箱可能收不到验证邮件。

(2).安装heroku toolbelt
登陆https://toolbelt.herokuapp.com/,有三种平台Mac OSX、Windows、Debian/Ubuntu可供选择,由于我使用的是XP系统,所以我就下载Windows平台下的heroku toolbelt。安装完成后可以一并将Rails和Git安装了。

(3).下载Wordpress软件和PostgreSQL for WordPress插件
到http://wordpress.org/下载最新的软件包和PostgreSQL for WordPress (PG4WP)并解压,将pg4wp文件夹放到wordpress/wp-content/文件夹下,然后再将pg4wp文件夹里面的db.php文件复制到wordpress/wp-content/文件夹下。因为Wordpress需要MYSQL数据库,但是Heroku提供的是PostgreSQL数据库,所以需要使用PostgreSQL for WordPress (PG4WP)插件。复制配置文件wordpress/wp-config-sample.php文件为wordpress/wp-config.php,并修改数据库账号、密码等信息。将wp-config.php中的代码

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');

/** MySQL database username */
define('DB_USER', 'username_here');

/** MySQL database password */
define('DB_PASSWORD', 'password_here');

/** MySQL hostname */
define('DB_HOST', 'localhost');

修改为

// ** MySQL settings - You can get this info from your web host ** //
$db = parse_url($_ENV["DATABASE_URL"]);

/** The name of the database for WordPress */
define('DB_NAME', trim($db["path"],'/'));

/** MySQL database username */
define('DB_USER', $db["user"]);

/** MySQL database password */
define('DB_PASSWORD', $db["pass"]);

/** MySQL hostname */
define('DB_HOST', $db["host"]);

修改完成后保存退出。

(4).生成public key
进入wordpress文件夹,在DOS命令行下输入命令生成public key。

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/adam/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/adam/.ssh/id_rsa.
Your public key has been saved in /Users/adam/.ssh/id_rsa.pub.
The key fingerprint is:
a6:88:0a:0b:74:90:c6:e9:d5:49:d6:e3:04:d5:6c:3e adam@workstation.local

如果以前没有生成public key,只需要默认下一步就可以了,如果以前有现成的可以不生成。

(5).登陆Heroku账号
在DOS命令行下输入命令:

heroku login
Enter your Heroku credentials.
Email: adam@example.com
Password:
Could not find an existing public key.
Would you like to generate one? [Yn]
Generating new SSH public key.
Uploading ssh public key /Users/adam/.ssh/id_rsa.pub

输入账号和密码登陆后,会将在前面的步骤中生成的public key上传到Heroku中。
如果没有上传成功可以手动添加,命令为:

heroku keys:add
Uploading ssh public key /Users/adam/.ssh/id_rsa.pub

删除public key的命令为:

heroku keys:remove adam@workstation.local
Key adam@workstation.local removed.

查看public key的命令为:

heroku keys
=== 1 key for joe@example.com
ssh-dss AAAAB8NzaC...DVj3R4Ww== joe@workstation.local

(6).新建Heroku Apps账户
Heroku平台支持三种类型:Aspen、Bamboo和Cedar。其中Aspen、Bamboo只支持Ruby,而且操作系统不同。而Cedar则比较新,支持PHP,所以我们需要选用Cedar平台。

在DOS命令下输入命令:

heroku create --stack cedar

这是会生成一个随机的Heroku Apps账户,如果你需要生成自己的喜欢的账号就需要使用-app参数,具体命令如下:

heroku create --stack cedar -app yourappsname

这是生成的账号的地址为http://****.herokuapp.com/,如果选择是Aspen、Bamboo,则会生成http://****.heroku.com/的地址。

(7).上传Wordpress源文件
DOS命令下切换到wordpress源代码所在的地址,一次输入以下的命令:

git init
git add .
git commit -m "init"

然后将源文件推送到Heroku服务器,使用如下的命令:

git push heroku master

(8).完成Wordpress的安装
按照Wordpress正常的安装流程完成安装。

(9).绑定域名
这一步还是需要在DOS命令下完成。绑定域名的命令如下:

heroku domains:add www.example.com
Added www.example.com as a custom domain name to myapp.heroku.com

删除一定绑定的域名的命令如下:

heroku domains:remove www.example.com
Removed www.example.com as a custom domain name to myapp.heroku.com

如果需要将所有绑定的域名一次性全部删除咋可以使用下面的命令:

heroku domains:clear
Removed all domain names for myapp.heroku.com

如果要绑定裸域名,这需要在DNS解析服务器上使用A记录,Heroku提供了三个可以使用的ip可供绑定:

75.101.163.44
75.101.145.87
174.129.212.2

如果不需要绑定裸域名而绑定二级域名的话,使用CNAME记录就可以了,只需要将www.example.com指向myapp.herokuapp.com就可以了。

最后提醒一下,Heroku不能在线安装插件和皮肤,所以需要事先将需要安装的皮肤和插件到放到指定的文件夹里面,然后推送安装。如果需要更新Wordpress,也需要下载最新的Wordpress最新的源代码然后再推送到Heroku服务器。

Mar 31

.XXX域名的注册有两种方式:一种只是保护性注册,就是任何人都可以去注册商注册,但是只能注册不能解析;另外一种就还需要注册成为ICM的会员,这样就可以解析了。成为ICM会员是免费的,而且也很简单。

想到注册商处注册成功后,会在24小时之内收到ICM的电子邮件,提醒你去注册成为ICM会员,按照邮件中给出的链接完成注册就可以了。其中有一点需要注意,电话号码必须填写正确能用的号码,然后会有电话打进来,可以选择电话的语音类型,一般选择英文电话。电话打进来后,按照要求按1,然后会以很慢的速度说出4个数字,这就是那个认证码,将认证码填到ICM的网站上然后确定就可以了。最后会给出一个十六位的号码,就是所谓的Member Authorization Token,也就是注册商的.XXX Member ID。你可以将这个Member ID填写到注册商的网页上,完成上面的步骤后注册商就会开通你的.XXX域名。

.XXX域名的注册费用较高,所以到目前为止还有很多好的域名可以注册。我曾试着将.XXX域名绑定到Google Apps上,但是提示.XXX是不能识别的顶级后缀,其实是屏蔽了这个后缀的域名。能解析.XXX域名的免费DNS服务器有Godaddy、HE DNS,dnspod好像不能添加。更有意思的是可以开通QQ域名邮箱,收发邮件都是正常的。

Feb 19

2004年.pro域名就已经出来了,只不过这个通用国际域名是面向具有特定从业资质的专业人士和组织注册的,一般的认人是不容易注册的。“pro”是“professional”(专业)一词的缩写,主要是律师、会计师、医生、工程师这些人才能注册的。近来好像限制条件已经逐渐放开了,所以一些个人也能注册了。由于受众很小,所以也没有引起很大的关注,到目前为止还有很多4位的可以注册,至于能注册的单词就更多了。

我在去年就开始关注这个域名了,一直想注册一个,但是有两个疑虑,一是个人资质问题,另外一个就是费用问题。今天开年后又来关注了一下,找到了一个费用相对较低的就注册了一个4位的,过程相当曲折。

前两次注册都是是通过Paypal付款的,注册好后经过修改DNS就可以解析了,第二天后被删除了。看网上的教程说是会受到一封电子邮件,点击其中的链接提交资质材料,认证通过后就可以使用了,悲剧的是我的邮箱将这封邮件归到垃圾邮件中去了。我因此也没有看到。后来还是通过这个这个链接将资质提交了,而且很容易就通过了。

第三次我注册完后给客服发了一封邮件,说明了一下情况,然后询问是什么原因。由于时差第二天早上才收到回复,信中提到我的地址可能涉嫌欺诈,要我提交身份证的传真过去。我马上就回复了邮件,说从中国想美国发送传真很不方便(事实上我也不知道怎么发),就将我的身份证的扫面件通过电子邮件发过去了。有等待一个晚上第二天早上收到回复,说不认识上面的中国画汉字,让我提供可读的包含有英文地址的文件过去。在提交我的身份证的时候我就知道老外是不认识汉字的,所以我特意将我身份证上的地址标识出来,希望他能通过地址中的数字之类的大致判断一下就算了,没想到不行,还是要我提交其他文件。没有办法我只好将另外一个域名的证明文件发过去了(上面含有英文地址),另外附带了这个域名的whois信息的地址,希望他能通过whois信息的地址与我注册.pro的地址进行比较得出我未曾造假的结论。这封邮件发过去后第二天早上就收到回复,我的域名注册信息已经通过了。

在这件事情过程中我也总结了一下:由于我不是专门炒作域名的,所以我遇到了一个很喜欢的域名,除非是确实不够资格不能注册的,不然我是不会放弃的。这个.pro域名我的资质应该还是能够通过的。另外遇到什么问题一定要试着先沟通,我花费了几天的时间来弄这个事情,终于通过了还是值得的。

Feb 13

我第一个注册的域名就是.info结尾的,一直想注册一个.com结尾的,今天在论坛看到一个处理域名的,就从中挑选了一个5位纯数字的,73865.com。这个域名5月份就要到期了,现在在易名网上,准备将它转移到Godaddy.com,便于管理。

我准备收集一套尽可能齐全的后缀的域名,除了那些不可能注册的和暂时还不想注册的,还有一个.com在别人手里,已经建站了的,估计是很难拿到手的,所以先弄一个4位纯字母的玩一下。

按照老规矩,还是将这个新拿到手的域名绑定到这个博客上,DNS用的是国内的dnspod.cn的服务,主要是想适用一下这个解析服务怎么样。