blog公告, php02,21st,2008无叶
蓄谋已久的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才行。
apache, blog, php, wordpress
总说一个人在学校无聊,回到家里却也不知道该干什么,毕设程序懒得写,英语单词懒得看。唯一有意义的就是老妈刚退休没几天,我算是在家陪她舒缓一下失落情绪。
新年了,给我的blog换了个theme,清新绿色,感谢underone发布的G7_v2,上个theme也是他的作品,用wordpress的不妨试试。另外,推荐大家试试google reader,以后看blog不用到处点了,哪个更新了都一目了然。
update 20080205: 点这里看google reader使用方法。
近期重大新闻有两个。
一是微软收购雅虎,高于市价62%的,雅虎的股东应该乐疯了吧,再不通过没道理啦。可见微软也疯了,被google折磨的。只是这收购的好坏也未知,就像HP收康柏后CEO下台,AMD吞了ATI后巨亏...
二是whest更新了blog。强烈谴责那些开通又N年不写blog的人,我都不知道要看什么啦!pat一下师傅,徒弟支持你哈。其实前一阵我也很depress。同学一个个走了,不大的宿舍却显得空空荡荡,孤独无孔不入,心都有些扭曲了。晚上无端的,好多往事一股脑涌上来,收都收不住,也说了一些傻话,听的不要太在意哈。特别要向snowyu道歉,我的态度很不好,是因为我怕那个小孩把我的好朋友抢走了...
blog
这个笑死我了,很强大。。。
其实我也挺讨厌新浪的,blog没有trackback也就不说了,非注册用户留言都不能留URL,这还是blog么?鼠目寸光,没啥前途了。
来做做Web概论考试最后一题吧:
List the three fundamental changes that Blog bring to Web.
1.From Readable to Writable
2.From Pull to Push
3.Form one-way link to two-way reference
http://ddqiang.yculblog.com/post.2890519.html
去你妈的,就你事儿多
东东枪 @ 2007-12-27 12:18
刚才在一人的博客上回复了一句。
是新浪博客。
留言内容写好,发现默认的昵称是“新浪网友”。
别你大爷了。改。
把昵称改成“你他妈才新浪网友呢”。点提交。
蹦出一对话框,上头写——
发表评论失败:很抱歉,昵称不能超过8个中文字符,且只能输入中文、英文、数字以及下划线,不支持空格,请重新输入:)
去你妈的,就你事儿多。
好歹咱是copywriter,专业添字儿去字儿的,怕你这个?再改。
改成“你丫才新浪网友呢”,数了数,8个没错。
再提交。又蹦出一对话框——
发表评论失败:很抱歉,您的昵称输入无效,请更名后重新输入:)
操。什么叫他妈输入无效啊?难道连“丫”都是敏感词了?
怎么那么敏感啊您?您连腿肚子上都是G点了。
那就接着改。改成“非新浪网友”。
提交。还是那对话框——
发表评论失败:很抱歉,您的昵称输入无效,请更名后重新输入:)
再试几个——“傻逼新浪网友”、“不是新浪网友”……
都不成。都是昵称无效。
有你们丫这么欺负人的么?我连“不是新浪网友”的权利都没有了?
哎,我他妈豁出去了,试验一下——把昵称改成“傻逼”。
又不是没傻逼过。反正“傻逼”也比“新浪网友”强。而且,留言内容咱可以再找补回来啊。
(枪:在这里再次向那博客主人隆重道歉,委屈您了。当时一时没措好词,本来不必的。确实也是我一时犯傻逼了。)
再提交。“恭喜您!您的评论发表成功!”
操。
我确实一直讨厌新浪。平时看新闻从不去新浪看,讨厌新浪博客,甚至还很偏见地有点瞧不上用新浪博客的人。
原因很多。反正也是冰冻三尺非一日之寒了。
但这次,确实让我对新浪的本质有了更深刻的认识——
什么叫新浪?
新浪就是:你是个傻逼都没事儿,但不许你不是新浪网友。
blog, 笑话
给涅十分钟
让涅告诉你不要对涅太好
涅每天都迷迷糊糊地活着
涅每天都晃晃悠悠地走路
涅每天都吃很多很多的东西
涅总是听不懂你说的话
还自言自语地说一些傻话
涅总是很容易忘却
比如你的名字比如70602的死
涅总是用无辜的眼神看着你
其实你并没有对涅做错什么
涅常常走路都会摔倒
涅常常喝水都会呛到
涅常常睡得比星星都晚
有一天涅会忘记你的名字甚至是你
忘得比涅记住的英文单词还快
有一天涅会不经意地狠狠伤害你
伤得你很痛很痛而涅却不知道
有一天涅会改变不会再像现在这样子
变得连涅自己都不再认识自己
变得庸俗世故像路边讨价还价的妇女
所以,
不要对涅太好
涅不会对你很好超过你对涅的好
尽管涅很用力地去做
但是涅只是个暴利资本家
涅幼的blog,一个爱画铅笔画的小女孩,画风我挺喜欢。
blog
有了新域名http://elegy.cn,下一步准备搬迁服务器,可是这个需要米比较多......
重新开放了匿名访问,希望不会有什么麻烦~
blog
最近忙着在家和学校之间来回跑,后悔选那门通选了,老师讲的极差-_-...
一个好友和我说(我唯一come out的女生),有个同学竟然问她我是不是有女朋友了,原因是那个同学看到我写blog,并且都是男他。天啊,天知道他看到了什么,有没有记下网址!
我简直不敢在想下去了,所以连夜去弄了个身份验证,详细说明看这里。虽然blog的访问量会受影响,但是经历过那么多自己和别人的事情,还是小心为好吧。
也感谢这么多朋友能经常到这里看看,blog会继续更新,大家多多支持哈:)
blog
基于隐私的保护,我决定为blog加把锁。
第一次来到这里的游客,请先注册(右侧栏),留下你的登录用户名(英文)、信箱(请尽量让我可以辨认你是谁^_^),初始密码会发到你的信箱。
您可以使用这个用户名、密码登录,并修改你的密码和设置。
随后请耐心等待(或尽快联系我),我会为您开通浏览相关文章的权限。
开通后,您就可以通过这个用户名和密码顺利访问blog了。当然,您可以在登录时选择“记住密码”(若离开时不“登出”,下次就不会提示输入密码)。
繁琐之处,还请谅解,谢谢!
另外,如果无法收到初始密码,请直接联系我~
blog
最近mysql都不是很稳定,所以blog没法访问我也没在意。
回来后,发现mysql可以读取,但php不能get参数。查了点资料,用phpspy察看了一下环境变量,果然php.ini的register_globals变成off了。
sigh,也怪写php时犯懒没用_GET[]...教训啊,现在受php.ini的气。我又懒得和弄服务器的人废话(又和我扯安全性...),难道我就要全改成_GET[]???
还好,查到这样一句,可以把_GET[]之类的自动导成全局,放到config里面一include就完事了。哈哈,看来像我这样的懒人还是有不少...
import_request_variables("GPC");
如我所料,一切恢复正常。
可是blog的问题还是没有解决,症状是白页,就像网页还没有下载完(进度条停在中间),似乎服务器端的php在死循环。没办法,从index.php开始,注掉代码逐渐恢复的方法来查,这可是wordpress啊,天知道我要查到哪里才是头?还好,才include了几个php就出现了问题。最后锁定到wp-db.php的function query($query)。晕死,所有访问数据库可都是这个函数,原来好好的也没人动怎么会出事?
罪魁是这句:@mysql_fetch_field($this->result);函数死在这里怎么也不返回了。还好,整个wordpress也都没用到察看数据表的field名(天知道他写这句干什么,可能为以后升级准备吧)。果然,注掉获取field信息的这一段循环,blog就活了。
后来,索性趁热打铁把wordpress升级到了2.0.3,换了大名鼎鼎的k2,一个k2_mod的清新theme,自己做了个logo,然后装了个据说好用的Sidebar Widgets Plugin。接下来就是烦人的调整,改CSS,调sidebar(插件根本不好用,还得自己写代码,除了那个动态的拖曳比较酷)……
弄了一天才算基本搞定。同时,还发现2.0.3的一个bug,友情链接的分类管理中的“格式”不管用!看了links.php才发现根本没写在代码里,看来2.0.3出来还真是匆忙(记得2.0.1里面没这个功能),改两句话,一切OK。
仔细想想,估计是服务器进行了升级(包括php和mysql),造成运行不稳定(来回调参数:()。mysql_fetch_field可能是管理员限制了数据库的权限吧,可是也没有死循环不返回的道理啊,看来要追究php4-mysql模块的责任:)
总之,现在一切问题都基本解决了,还真是麻烦。以后要注意经常备份数据库!要不然,服务器挂了哭都来不及...
blog, php, wordpress