Back again

国内的网络审查越来越过分,经过多天停机后,我的博还是来到了大洋彼岸的米国。

google撤出的事情还是有些伤心。不是为一家商业公司的决定,而是对国内网络环境倒退的寒心。我亲爱的祖国,你怎么了?

I'm Back

之前一个月,服务器一直断断续续。原因是国内正在全面审查服务器,先全部下线,然后一个一个的清查。所以主机商把服务器从上海转移到重庆又转移到北京...

最近国内的互联网政策鸡飞狗跳,无奈。以后考虑租国外主机了,只是租金较贵,如果有合租意向的童鞋(比如独立blog或个人网站),欢迎和我联系。

blog搬家

蓄谋已久的blog搬家行动胜利完成!
请大家使用新域名[http://nonleaf.net],原来域名目前仍旧可以访问,会自动转向新域名。

本以为很轻松的搬家工作,还是遇到了不少困难,大概清楚了从域名解析到Apache mod_rewrite。

问题记录如下,以飨后人:

1.将备份的数据库用文本编辑器打开,将原来的URL批量替换为新的,然后导入新数据库。随后发现wordpress的侧边拦没法载入,报错总是在wp-includes/widgets.php里面的一些语句。Google未果,研究发现问题出在数据库上,有些表(如wp_options)的文本数据有类似这样的格式:s:6:"string",6表明后面的string的长度,我没仔细看代码,估计这么做是为了快速定位,但是如果string里面含有URL,都被我批量替换掉了,替换前后长度必然不相等,所以造成wp读出奇怪的数据down掉。

解决办法:
自己写个程序改一下备份的数据库文件,将s后面的数字数出来替换。或者对原来数据库只改关键地方--wp_options表里option_name='siteurl'的那一行,其余的通过在旧服务器上写.htaccess重定向解决,前提是原来服务器apache有mod_rewrite。
编辑旧服务器的wordpress目录下的.htaccess文件——
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ http://nonleaf.net/wordpress/$1 [L,R=301]

2.cPanel暂时不支持域名绑定在深层目录下,但是这个对于一个虚拟主机多个人共享是需要的。可以通过mod_rewrite达到目的(写.htaccess)。

解决办法:
例如要从test.nonleaf.net对应到到主机的根目录(/home/user/public_html/)下的一个深层目录/home/user/public_html/nonleaf/test/。
首先在域名商那里将test添加如A记录,IP指向主机(当然你也可以添加CNAME),同时将这个域名加入到cPanel的域名中,让主机能接受来自这个域名的请求。然后在public_html下面创建.htaccess文件——
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/nonleaf/test/.*$ [NC] #防止反复rewrite造成死循环
RewriteCond %{HTTP_HOST} ^test.nonleaf.net$ [NC] #识别出test.nonleaf.net域名
RewriteRule ^(.*)$ nonleaf/test/$1 [L,NC] #rewrite到子目录

当然,如果在test目录下的.htaccess中还有rewrite,需要考虑加上RewriteBase。总之mod_rewrite的功能很好很强大,可是实现机制有些复杂,要多看manual才行。

blog隐私保护

基于隐私的保护,我决定为blog加把锁。

第一次来到这里的游客,请先注册(右侧栏),留下你的登录用户名(英文)、信箱(请尽量让我可以辨认你是谁^_^),初始密码会发到你的信箱。

您可以使用这个用户名、密码登录,并修改你的密码和设置。

随后请耐心等待(或尽快联系我),我会为您开通浏览相关文章的权限。

开通后,您就可以通过这个用户名和密码顺利访问blog了。当然,您可以在登录时选择“记住密码”(若离开时不“登出”,下次就不会提示输入密码)。

繁琐之处,还请谅解,谢谢!

另外,如果无法收到初始密码,请直接联系我~