Category: 小小草

IT 技术领域学海无涯。其实任何领域都学海无涯,无非 IT 发展太快了,让我有更多嘘唏。希望我掌握的技术有如小小草,虽然渺小,却有旺盛的生命力。

  • 系统还原和安全模式

    办公室有台电脑得了怪病:如IE能正常访问网页,但打印不出网页,每次打印都是空白,而且页脚的url不是网址,而是本地缓存的internet临时文件名;又如outlook express里试图直接打开一些.doc附件,word启动以后就停止响应…

    我实在google不到解决方案,只好用上系统还原。无奈,无论我选择哪个还原点,电脑重启以后都遗憾地通知我系统无法还原到这个系统检查点。难道要我用绝招——重装系统?汗,幸好用”system restore not working”搜到一个方案:进入安全模式,然后再运行系统还原。一试,果然管用!

  • 关于WordPress一次安装,多处使用的构想

    首先,我不能用WordPress Mu版。因为某些plugin 和 theme不支持Mu版。况且,WordPress Mu版相对于WordPress的特有功能是用户自助申请Blog功能,而我所谓“多处使用”,只需要集中管理一个WordPress框架下多个网站,多个网站能同步升级WordPress程序部分,所以,Mu版在此没有优势。

    其次,我肯定不是有WordPress一次安装,多处使用需求的第一人。我参照了前人的做法,但觉得它们不够完善。不完善之处主要是前人的想法要求多个网站指向同一个document root,而不同的网站很可能装有其他程序,还会有不同的图片等其他文件。例如,domain1和domain2共用一个WordPress,那WordPress以外的静态页面或静态文件,比如domain1/static-page-or-file-outside-of-wordpress,就会被domain2/ static-page-or-file-outside-of-wordpress访问到。

    再次,我的构想适合在独立服务器LAMP环境下实现。以下是具体的实现步骤:

    1. 在一个主控域名上按常规安装WordPress。假设主控域名是domain1,它的document root是/www/domain1。
    2. 假设第二个域名是domain2,它的document root是/www/domain2,WordPress甚至可以安装在子目录/www/domain2/wp。
    3. 除.htaccess和index.php以外,把/www/domain1下WordPress其他文件和文件夹用软连接的方式连接到/www/domain2/wp。多数情况下,不同网站会有不同.htaccess的要求,所以我建议.htaccess还是单独建立为好;domain2的index.php则需要稍作修改(大家看着改吧,应该是很简单的)。
    4. Domain1的wp-config.php则需要为新增的domain2添加一些配置,为不同的域名启动不同的数据库、表、keys等。
    5. Domain2的WordPress安装完成后,进入后台,调整uploads目录的位置,默认是wp-content/uploads,应该改为绝对路径,如/www/domain2/wp/wp-uploads。Full URL path to files (optional)不再是optional,必须作相应修改以便前台能访问到上传的文件。我曾经为隔离domain1和domain2的uploads考虑得死去活来,为了属于domain1 的 static-page-or-file-outside-of-wordpress 不被 domain2/static-page-or-file-outside-of-wordpress访问到,我想过在domain1下建立软连接到domain2的uploads目录,然后用防盗链的方式防止 domain1 和 domain2 对各自 uploads 目录的相互访问。但最后才发现,WordPress uploads folder本来就支持绝对路径(默认值是相对路径),一个复杂的问题就这样轻松解决了。
  • 802.11n果然不同凡响

    我不是追新族。在802.11g还大行其道的今天,我本没有打算升级至802.11n。但因为需要在一幢大楼内组网,我想了好多方案,比如:

    • 用homeplug(怕途中电表太多干扰太大,觉得这个方案不好)
    • 用WDS,也就是wireless repeater(买了belkin的802.11g repeater,经常死机,换了一个也是如此,退货;linksys也有一款repeater,贵于belkin,但我对linksys的产品没信心,懒得买来再退了)
    • 用高增益天线(ebay HK有人卖得很便宜,贪便宜买来发现是烂货,教训啊,千万别上ebay买东西——其实我知道的,但就是禁不住便宜的诱惑,抱着反正几镑钱,就当扔水里也不太心疼的心理又去买了个教训)
    • 用高功率无线路由(恰好我有一台2Wire 2700HGV,但就算调到100mw效果也不理想)

    802.11n的优越的传输性能我有耳闻,但百闻不如一见,我用买一个linksys repeater同样的价格买了一套Tenda 802.11n (draft 2)无线路由加USB无线网卡,两地用802.11n接通以后,效果出奇得好,已经完美解决我中长距离组网的需求。尽管走了很多弯路才落实这个方案,但我还是非常高兴。

    而且,我发现Tenda的无线路由还带有WDS功能,这可是802.11n级别的WDS啊,比起单纯一个linksys repeater,仅是802.11g级的,要划算好多好多啊。

  • Godaddy mod_rewrite

    I have two Godaddy accounts now. One is for a dedicated server, the other is for a deluxe share hosting package. Actually I do not need any share hosting once I get a dedicated server, but someone bought this for me, so I spent some time inspecting how good / bad it is.

    I should regard myself as a Godaddy loyal client. I am 100% satisfied with their dedicated server service, and also, Godaddy domain management is the most powerful and convenient I have ever seen. However, Godaddy share hosting is definitely not something workable for me.

    I am recently struggling at setting up magento in Godaddy share hosting. Magento setup is 50% successful. I mean, magento can run homepage, wishlist, popular search, etc all right, but it run into blank pages at many points, e.g. about us, customer service, etc. Initially I thought it was mod_rewrite problem, so I used phpinfo to check. I did not find mod_rewrite enabled. I quickly installed wordpress to double check, and if I enable wordpress search engine friendly url features, it runs into 404 error. I searched Godaddy Knowledge Base (FAQ centre). It says:

    Mod_rewrite is an Apache web server module installed on all of our Linux servers by default; it does not have to be installed or enabled. Our Linux hosting accounts support most mod_rewrite functionality.

    You do not need to enable mod_rewrite in your httpd.conf, as this is handled at a global level. All you need to do is add the desired code to the body of your .htaccess file.

    For more information about mod_rewrite see the Apache Module mod_rewrite documentation.

    NOTE:The .htaccess file containing the rewrite rules must be in the same directory as the target files.

    This article did not help me. So I had to submit a ticket. Within several hours, I got the reply (I am satisfied with Godaddy support reponse speed) but it only contained the same words as the answer from Godaddy Knowledge Base. I googled “godaddy mod_rewrite” after I could not get a clear reply from Godaddy. I should have googled it earlier because soon I found someone mentioned rewrite rules in .htaccess with Godaddy share hosting DO NOT TAKE IMMEDIATE EFFECT.

    This solved all my queries. Although I still do not know how Godaddy hide mod_rewrite from phpinfo, after several hours of being installed, wordpress is working properly.

    However, magento is still not running properly. I assume it has nothing to do with mod_rewrite settings. By all means, to my opinion, magento is not suitable to run on a share hosting package. Installing magento on Godaddy share hosting account is only for my curiosity. I have been running magento successfully on my dedicated server.

  • Gmail Gcal Integration

    Gmail可以以Contact为单位,列出与某个Contact来往的Conversions。Google Calendar也可以搜索Who,把与某个人有关的Events都列出来。Google Contacts Management是以email address为identifier,而Google Calendar的客人名单也可以从Google Contacts里选取,可见Google Contacts, Google Email, Google Calendar可以三位一体。

    但我研究了一天也没找到一个办法:选定某个Google Contact后,把Conversation (Email) 和 Events一起按时间顺序列出来。我知道很多人用 Gmail 和 Gcal 做 Business Diary,针对一个Google Contact的history可以视不同情况分别记录到Gmail或Gcal,但如果能合并查看的话,将会方便很多。

  • Magento Base

    最近发现我的magento后台不能更新数据,但系统每次都提示保存成功,一开始我还以为数据库出了问题。

    查了好久的原因,这才发现是因为我把www.goods-pro.com全部重写到goods-pro.com (non-www)的缘故。设定301规则之前,我没有更改Magento Base。这样,magento base记录的base url跟我维护时登录的url是不同的,大概为了安全考虑,magento不允许保存数据。但是,如果不允许,早说嘛,浪费我好长时间找原因。

  • Godaddy Offsite DNS

    我非常感谢Godaddy提供的Offsite DNS服务,我已经全面实施。

    最近发现Godaddy Offsite DNS一个考虑不够周到的方面:Setup Domain for Offsite DNS 之前不进行域名持有人的身份验证,这可能会有一些安全隐患。

    我在Godaddy有若干帐号,帐号1对某个域名A设置的Offsite DNS,帐号2购有一个Godaddy Deluxe Plan,Deluxe Plan是个Share Hosting Plan,目前对我来说已经没有使用价值了,但以前曾针对域名A搞了一个测试。Deluxe Plan有自动设置DNS的功能,我没有从帐号2里删除域名A,造成帐号1里域名A的Offsite DNS无法生效。

    这里我不理解的是:Offsite DNS和Deluxe DNS使用各自不同的Nameservers,但Deluxe DNS还是影响到了Offsite DNS。

    这里我觉得不安全的是:如果帐号1和帐号2分属不同的人,或者域名A转让了主人,而前后主人都使用Godaddy DNS,那岂不是问题多多?

  • 奥运成就了多少人的财梦

    今天读到一篇报道,说某无纺布袋厂承接了奥运会的10万个礼品袋的订单,4块钱一个,不赚钱,全厂加班加点赶制出来,还说这种袋子市场价格在6块钱,云云。

    这样的报道明显就有失水准,4块钱,这里指的应该是工厂销售价格;6块钱?绝对是指零售价格。如果也是指工厂其他订单销售价格的话,那我很难想象这会是怎样一个金贵的无纺布袋。而我采购过的数量在10万个,就算非常非常精美的,单价超过4元的无纺布袋,好像还没有过。

    我想,中国肯定会有大把工厂愿意为奥运会不赚钱承接订单;但摆出4元/个的价位,还会有更多的工厂想抢这个订单,名利兼收,何乐不为?

  • NameVirtualHost has no VirtualHosts

    这个问题不大。如果是我自己手写Apache conf文件,我一般不会用到NameVirtualHost。

    我发现这个问题出现在Godaddy Server上,预装的是Godaddy自带的Simple Control Panel。Simple Control Panel会把Virtual Host信息保存在simplepanel.conf。如果通过Simple Control Panel重启Apache,不会看到任何症状;但如果在ssh下运行/etc/init.d/httpd restart,就会有若干个Warning “NameVirtualHost xxx.xxx.xxx.xxx:80 has no VirtualHosts”。

    Simple Control Panel为每个配置的域名都添加一个ip-based NameVirtualHost directive,其实是不必要的,过多相同的NameVirtualHost就导致了Warning,删掉就可以了。

  • 在Fedora上安装mcrypt

    最近我为了让Godaddy的服务器支持magento,就要装mcrypt module,顺便也可以了却phpmyadmin登录时的一段warning message。

    Linux 的大虾们别笑话我,这么点小事让我忙乎了半天。对我来说,Windows下很简单的问题,Linux下就不简单。Linux命令我只能依样画瓢,很少能举一反三。Linux有不同版本,我的Godaddy Server装的是Fedora,好不容易找到一份明确适用于Fedora的mcrypt安装步骤。当然知道了步骤,操作起来是相当简单的。

    1. At the terminal, su root – you are now going to yum, not ./configure, make, and make install…
    2. yum install mcrypt – this will get you libmcrypt, mhash, and mcrypt
    3. yum install php-mcrypt – this will get you the functionality within PHP