2010-03-22 小记

前几天手闲买了两个256M VPS用于学习VPS的配置,这两天有所心得,小记一下。
不好意思啦,长篇大论太辛苦了,以后要走简洁风的。

注:两个VPS分别是CenOS 5.4 32bit, Debian 5 32bit.

1. Kloxo安装脚本太傻瓜了,傻瓜到出错都不会stop

其中一个VPS购买的时候我选择了预置Kloxo,但是主机商说内存没有512M所以不予部署,好吧,我手闲自己安装一下试试就是了。下载了那个脚本之后,./kloxo-install-master.sh,开始安装。

由于是通过SSH的方式,我开着以后就没管了,从早上9点多一直到下午4点多,SSH里面一直很活跃地展现着《骇客帝国》的数字雨画面效果,我受不了了,Ctrl+C之后发现,滚屏上的文字一直都在重复,眼睛瞟到一个写着error的信息,看了一下,原来是某个PHP的模块没有卸掉,所以……很遗憾的是,我没有记下来那个没模块叫什么。

但是我比较不明白的是,为什么它error之后就一直Try again,而不是Stop让用户看看错误信息,所以那个Kloxo的安装脚本,我运行了整整6个小时,还好,主机商方面没有什么提示。其实为什么我会等这么长时间呢?因为很久很久以前,我经常连续花几天时间编译安装Gentoo Linux,这让我面对CLI的时候有足够的耐心,嘿嘿嘿~

还有,我参照的是这篇教程,感谢作者。

Tips: 要是你安装Kloxo超过30mins(国内可能不好说),请检查滚屏文字是否包含error。

2. 主机商没错,256M的VPS别装Kloxo

恩,这个确实是教训,在上面花了6个小时之后,我卸掉那个PHP模块,只用了短短几分钟Kloxo就部署好了,然后是……从VPS面板上我看到,256M的内存一直在60%~89%之间徘徊,然后Kloxo感觉一点都不快,VPS的主机CPU是4核的XEON E5520。

Tips: 服务商不一定都是忽悠你的。

3. 搞定Apache2单独用户权限配置

好吧,我承认在高中的时候朋友熊哥借过我一本Apache配置指南并且我一直都没还,但是也一直都没怎么看,基于两个VPS内存过低的原因,我开始自己配置服务器。以前的我算是轻微入门,这次又轻轻入了一点点,慢慢来咯。

今天遇到的问题就是Apache2+PHP5目录写入权限。
之前我在使用Dreamhost的时候,/home/user/public_html 755是写入可行的,但是我的VPS上表现为无法PHP写入文件,好吧,我将real_user加入apache运行组www-data后修改权限为775之后是可以的,但是我不甘心,并且同组写入在商业化虚拟机上是不可行的,并且DH上面确实是755,于是研究。

利用DH的SSH我登录上去在有限的权限内我开始翻系统的文件,我考虑到了用户组混搭 ((灵感来自犀利哥,嘿嘿,开玩笑的~))方面的问题,于是我实验了一个办法,并且通过了:

把用户 www-data ((Debian里面的Apache2默认以此用户名/组运行)) 加入 <user-private-group>

但是,反过来把 real_user 添加到组 www-data 并不能实现real_user的权限对www-data开放,除非文件的隶属组是www-data。不过问题在于,不可能主机商会让apache2的run_user加入每一个用户的私有组 ((private group,私有组,用户创建时一同添加的同名组。)),乍一看是没什么安全问题,单向继承权限嘛,但是如果我们一些特定的文件只让Apache读取的时候,问题就来了,这肯定不适用于生产环境的。

于是我又开始GG,找到一个办法,SuExec,但是这个办法有限制:只对CGI和SSI有效,那么PHP就要以CGI的方式运行。但是,同一篇文章提到了一个模块:apache2-mpm-itk,据说效果跟效率要比SuExec好,而且配置也不复杂,在<VirtualHost>部分就可以为每个虚拟机单独配置一个读写用户。

于是在自己的Debian VPS上测试通过,~/public_html的权限为755即可,同时在相关的VirualHost配置部分加入

配置即可。
这也同时解决了我长久以来的一个疑惑:这个Apache2用一个用户/组来跑所有虚拟主机不是很危险么?不过以前没想过要认真解决掉……

请跳转参阅:
1. 使用mpm-peruser为apache的虚拟主机提供一个绝对安全的单用户进程访问机制
2. Running Vhosts With Apache2 mpm-itk On Debian

Tips: 恩,Google是个好东西。

4. 几个关键词

gpasswd -a, useradd, id, a2enmod, /etc/skel, /etc/default/useradd.
mysql -u[user] -p -h[host] database << (zcat database.sql.gz)

以后以笔记类博文为主,这样写起来没有压力,请各位见谅~

延伸阅读:
1. 10 个最酷的 Linux 单行命令
2. Debian下为Apache启用rewrite模块(htaccess)
3. URL Rewriting Guide

Dreamhost到Hawkhost搬家手记

前言

2009年4月,因为朋友GordianZ帮助的关系,购入一个777优惠码的Dreamhost(简称DH)主机,之后的几个博客便都搭建在上面,总的来说,还是稳定可靠的,不过,今年4月到期的续费价格高达$119.40,这对不从博客上获得收入的21来说还是一笔很大的开支,于是我便策划着搬家。

2009年12月,因为朋友老卫的非盈利性主机评论博客提到一家主机商叫Hawkhost(简称HH),俗称老鹰主机,在12月份推出了一个高达50%的优惠码,基础方案$3.29/mo的费用打折后堪称亲民,于是毫不犹豫就购入一个帐户(老卫把这种行为叫“不理智消费”),但是为什么没有一购入就搬家呢?

搬家前其实是基于两点考量:

  1. 稳定性未知。虽然官方声称能达到99.9% Uptime,但是我们都知道这个99.9%可以有很多种算法。
  2. 可靠性未知。我们知道有些小主机商实际上是骗人的,一两个月后就消失,需要观察。

所以,在设置了一个Uptime以后,就暂时闲置了,直到一月初在我的建议之下朋友Tomato也成为WP党的一员,于是应用方面的监测也开始了。就到目前为止的情况来看,长达两个月时间的监测,Uptime非常不错,值得信赖 ── 除了前两个月电信的线路抽风外,所以我决定将DH上的几个博客都迁移过来。

首先说明,因为这是DH到HH的手记,具备一些部分主机可能不具备的特性,所以请酌情参考,有疑问请留言。
Dreamhost和Hawkhost同时具备一个条件:SSH,也就说,很多复杂或者麻烦的操作,我可以通过SSH直接在主机上操作,避免了FTP上传下载需要花费的额外时间开销。这也是这篇手记与一般教程不同的地方。
Continue reading Dreamhost到Hawkhost搬家手记

辟谣之WordPress专业主机

先声明,本文不是针对时下流行的“WordPress专业主机”,
仅仅是从技术普及应用方面来解释说明关于“WordPress专业主机”的一些广告误导。

基础

、什么是WordPress

WordPress作为一款优秀的、开放源代码的、免费的PHP博客(Blog/部落格)程序,是使用PHP语言编写的一种Web应用(Web Apps)。WordPress是构建与PHP平台之上的一个程序,简单的说,我们可以理解为“Microsoft Office是构建于Windows系统之上的应用程序”一样来理解,不过,WordPress主要面对的是互联网、运行结果是HTML代码。

、WordPress的运行环境

运行WordPress需要满足PHP和MYSQL数据库(通过插件可以实现SQLite数据库)这两个条件,而出于支持静态链接(Permalinks)的必要,还需要服务器具备支持Rewrite规则(Rewrite Rules)的特性,而Rewrite规则的支持通常需要Apache的Mod_rewrite模块来实现,并且Rewrite规则一般保存于与WordPress目录同级的一个叫.htaccess的文件,并且这个环境在Linux/BSD/Unix平台上运行效率最佳、支持度最高、表现最完美,通常被统称为LAMP平台,组成结构为Linux+Apache+MySQL+PHP。
而这样的环境同时也可以“完美运行”任何基于LAMP架构组件的Web Apps,包括Discuz!/PhpWind/MediaWiki/DedeCMS/Sablog/b2evolution/Typecho等等。

同时,在Windows上我们也可以通过ISAPI_Rewrite这个模块来支持Rewrite,但是规则略有不同、可能会存在一些意想不到的问题,所以,并不推荐使用Windows平台来运行PHP程序。

关键词: WordPress, Linux, Apache, MySQL, LAMP, Rewrite, Web Apps
Continue reading 辟谣之WordPress专业主机

Dreamhost Promo Code

以下都是我自建的Dreamhost优惠码,欢迎使用。

90OFF21
You can get $90 discount first year.
你可以获得90美元的优惠。

50OFF1D1I
You can get $50 discount first year and 1 free domain name & 1 free unique IP lifetime.
你可以获得50美元的优惠,并同时得到一直有效的免费域名和免费独立IP各一个。

65OFF1I
You can get $65 discount first year and 1 free unique IP lifetime.
你可以获得65美元的优惠,并且同时得到一个一直有效的免费独立IP。

80OFF1D
You can get $80 discount first year and 1 free domain name lifetime.
你可以获得80美元的优惠,并同时得到一个一直有效的免费域名。

迁移完毕

耗时半个月的备案、搬迁工作总算是结束了。

现在Mr. 21更换了新的域名 https://mr21.cc/
空间由 Site5wfans.org 的合租迁移到 Dreamhost-独立账户 上,
目前无偿提供小量的WP博客空间,有需要的同学请Comment。

同时,为了更有保障,请订阅 http://feed.feedsky.com/live21
当然,http://rss.live21.org 将继续有效,
只是为了搬迁能够算是彻底,可能会停用live21.org的RSS子米,
不过请不必担心,至少半年内不会有这样的行为发生。

感谢参观、订阅我的博客Mr. 21,
新的名称新的域名新的空间,表示这将是一个新的开始,
我会继续努力Blogging,谢谢。

关于备案、迁移的有趣过程,请参考我的另一博客 75%
搬家备案一条龙 – 始 http://www.weki.cn/blog/2009-04-515.html
搬家备案一条龙 – 末 http://www.weki.cn/blog/2009-04-516.html

Btw,
如果你的DreamHost使用的是不适用于中国内地的优惠码购买,那么将不能绑定.CN,客服说的。
谬误,是绑过优惠码的米都不行,我弄错了一个米……真是抱歉了

最近搬家

最近,
Mr. 21将由Site5迁移到DreamHost
期间,
可能会出现一些访问上的问题,例如无法打开,或者速度很慢,或者压根没有你需要的东西,
所以,
在此提前向各位访客表示歉意,希望您能理解。

Btw,
如果有使用RSS订阅的同学,
请统一更新你的Feed的为 http://rss.live21.org ,
当然,即使我更换域名为Mr21.in,依然有效。

Google CheckOut账户被冻结

事情起因是我的打算购买DreamHost的空间,
因为使用777的(复活节)优惠码,可以获得首年$9.24加一个免费域名的超级优惠,于是心动了,

不过那个优惠码不允许国内使用,但是,US可以,
于是我用上了著名的Hotspot Shield,用于翻墙获取美国IP然后买空间,
事实证明这招伪装是相当有效的,
因为DH允许我通过777优惠码下订单了,并且可以进行支付,

于是,我断开Hotspot Shield,然后注册Google CheckOut
然后填写信用卡信息,然后走正常流程,按照大多数教程说的,地区写了:HongKong。

为什么不用Paypal呢?
因为DreamHost规定,使用Paypal你将得不到退款,即使你购买失败了。
为什么不直接用信用卡呢?
因为我的信用卡信息是国内的,DH一验证就可以cancel我的订单了,相当于白买……

然后呢,重新连接Hotspot Shield,
进入DH,正式下单了(前面到确认订单的时候就取消了),
然后呢,引导到支付页面,选择了Google CheckOut,
然后呢,用我的账户登录,然后支付,然后DH提示下单OK,等待到款,
然后呢,我收到邮件,告诉我的DH账户开通了,但是款项没有支付,
然后呢,我收到邮件,Google Checkout说:

Order receipt from DreamHost Web Hosting ($9.24)

然后呢,我又收到邮件,Google Checkout说:

Your order from DreamHost Web Hosting has been cancelled!

问题来了!最后的邮件Google Checkout说:

Hello Chen,

We were unable to verify the account information for your recent purchase with Google Checkout. As a result, your account has been temporarily suspended and your recent order has been cancelled:

被临时冻结,这是为什么呢?
Continue reading Google CheckOut账户被冻结

虚拟主机

最近有意向购买虚拟空间,不打算合租了,
顺便给一些朋友用,
在此虚位以待,顺手放一些优惠码~

Just Host
SPECIAL20OFF 折扣20%
50OFF 优惠50%!

FatCow
IC383 首年$46

Pronet Hosting
Click Here + freefirst 首年$4.95
CN25offfaDS32a 折扣25%
30off 折扣30%
[From Free8.com]

Dream Host
777 首年$9.24+一个免费域名!
MR21DI 优惠$35+一个免费域名+一个免费独立IP
MR21D 优惠$70+一个免费域名

View: https://mr21.cc/2009-05/dreamhost-promo-code.html

Site5
EASTER09 折扣25%
specialoffer20 折扣20%