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

虚拟主机答疑之「域名转移」

前言

实际上「域名转移」跟虚拟主机之间的关系不是必然的,不过既然有这个系列,就凑合到一块儿一起写吧,基本上这也属于这次大家自发的「网络移民行动」的一部分,所以,就概括来讲了,基本上还是一些基于原理的东西,可能絮絮叨叨的大家也烦,不过所谓一通百通嘛,中国教育在这方面确实可以,比较重视基础科学。不罗嗦了,开始。

现在国内形势紧张,加上前几天51.comit168.comblogbus.com的域名相继被服务商新网互联以“存在低俗内容”的理由进行了ClientHold ((意思是:注册商留置,该状态由注册商设置,域名可以续费,但不能正常使用。)),导致一段时间不能访问,甚至Blogbus.com时至今日还不能使用,可见我们这些野蛮的域名服务商手段之低俗!将域名转移外迁刻不容缓 ((我曾在《关于域名注册的建议》里面提出了相关的建议和解决办法))!

文章目录:

  • 负、 前言
  • 一、 答疑
  • 二、 域名转移流程
  • 三、 额外说明
    1. 你的权利
    2. 关于风险
    3. 关于费用
    4. 关于时间
    5. 关于转移时效性
    6. 延伸阅读
  • Continue reading 虚拟主机答疑之「域名转移」

    虚拟主机答疑之「Addon」&「Parking」

    这篇专门解释cPanel中关于「Addon」绑定和「Parking」绑定的区别与共同点。

    注:习惯性翻译
    Addon Domain : 附加域、附加域名
    Parking Domain : 暂停的域、停放域

    这里提到的「Addon」&「Parking」是两种不同的绑定方式,从原理上来说是相同的,只是表现效果不同。

    首先,先上一个例子,我在国内找到的关于国外主机配置的信息:

    500MB空间 ¥XX元/年
    流量:5G
    网站数量 :2个
    支持CGI/PHP/MySQL(为Linux系统)
    子域名 :5个
    绑定域名 :2个
    FTP帐号 :2个+CP控制面板1个
    MySQL数据库:1个(大小与WEB空间共享)
    IIS限制 :无限制
    CPU限制 :无限制
    每加1G流量+10元

    我们仔细想想,可以发现其实很多cPanel空间商不同方案之间有几个区别

    容量XXXM、流量:XG、网站数量:X个、FTP账号:X个

    容量跟流量我们知道怎么回事儿了,
    但是为什么买一个空间,居然还有个指标是“网站数量:X个”呢?而不是单单标示“绑定域名:X个”呢?
    其实这个“网站数量:X个”就是我们要提的「Addon」,而“绑定域名:X个”就是「Parking」了。

    通常我们在国内购买Windows系列的虚拟主机,一般都是指「Parking绑定」:共享同级目录的不同域名
    也就是说,不论你绑定多少个域名,都是共享一个目录,也就是说,都是指向同一个网站,内容完全一样的,区别只是你的入口(访问的域名)不同,而且无法做到给每个域名分配一个不同的目录。

    那如何实现给每个域名分配一个不同的目录呢?
    这个功能就是「Addon」了,使用「Addon绑定」可以给每个绑定的域名指定不同目录,在访客看来,每个域名所表现的都是一个个独立的网站,彼此之间基本上没有联系(一定程度上也是合租的一种方式)。
    从侧面来理解,也就说,如果允许的「Addon绑定」数量越多,你就能建立越多的不同的网站。
    Continue reading 虚拟主机答疑之「Addon」&「Parking」

    虚拟主机答疑之「绑定」

    通常,我们在使用虚拟主机(Virtual Hosting)的时候,都会遇到一个问题:绑定

    那么,使用过虚拟主机的你,看到绑定二字想到的是什么?

    • 只要是把域名的A记录解析到空间的IP上,这是绑定,对吧?
    • 或者
    • 只要在空间的面板上把域名加进去就好了,这是绑定,对吧?

    两项操作,你觉得哪项对呢?
    其实,绑定是一个双向的行为,也就说需要以上提到的两种配置相配合。
    这就要稍微提到互联网的运作原理了。

    原理简述:
    通常,我们在浏览器里面输入一个网址(域名, Domain Name)后,浏览器会向电脑上设置的DNS(Domain Name Server)发出请求以获取该网址设定的IP,获取该网址的IP地址之后,浏览器再向反馈回来的IP发送HTTP请求,并在HTTP报文中包含host请求,而虚拟主机所属的服务器就会根据报文中的host请求返回相应的虚拟主机数据。而因为host请求的存在,我们可以在一台服务器一个IP上配置无限个站点(理论上)。

    由此看来,如果我们购买了虚拟主机,那么需要进行「双向绑定」,通常可以选择进行两种方式进行「绑定」。
    Continue reading 虚拟主机答疑之「绑定」