关于合租主机上每个人可以共享的资源

大前提是我不想在资源上做太多的限制。

  1. 关于网站的类型,我只打算接受非营利性的。可以是 blog,可以是 wiki,当然您如果想放公益网站,我是相当欢迎。
  2. 可以添加的域名数量和数据库数量,作为一个完全自主的 VPS,是没有限制的。而我也不打算给大家加上限制。
  3. 磁盘空间一共是 10G,装上操作系统和和一些必要的软件后,剩下的没有 10G,所以每个人分不到 1G。但作为人个网站来说,我想基本上没有问题。
  4. 每个人都可以使用 FTP 和 SSH,但为了安全考虑,您会被限制在自己的 HOME 目录下,但功能上不会有什么不同。大家应该可以理解。

主机资源是大家共用,以国内的网络环境,大家对放上网站的内容要多多小心,不要违反法律,不要色情不要不和谐,这些都是老生常谈了。但您必须清楚,如果被和谐了,不光是您,所有人都会跟着遭殃。

现在有意向合租的同学还不够十个,如果有意,请继续报名。

Tags: , , , ,

建立 Subversion 服务器 - part3

在 Apache 中部署 Subversion 实际上并不比用 svnserve 难多少,它的难点在于一般人没有修改 Apache 配置的权限,如果你有相应的修改权限,那么搭建一个 svn 服务器不是一件难事,我们来看看应该怎么配置。

准备工作

首先确定 Apache 正确安装,mod_dav 和 mov_dav_svn 这两个模块也被启用,在 Debian 系的 Linux 上可以这么安装:

sudo apt-get install apache2 subversion libapache2-svn

在 Windows 平台上,可以下载一个 XAMPP,Apache MySQL PHP 什么的就都有了。

确定 mod_dav 和 mod_dav_svn 被打开:

a2enmod dav dav_svn


基本设置

以上的准备工作做完后,就正式开始了,还是拿 part2 的机器网络环境,同样的例子。

我准备让 repo 的网络访问地址成为 http://192.168.0.1/svnprojects/projectX

修改 /etc/apache2/conf 下的 httpd.conf,加入如下代码:

<Location /svnprojects>
DAV svn
SVNParentPath /path/to/svnprojects
</Location>

更多详细的<Location>命令用法请参见 Apache 手册,下同。SVNParentPath 命令用来把网络访问地址和 repo 的实际地址对应起来。

这样就设置完了,如果你把 repo 建立好了,现在就已经可以 checkout 了,输入:

svn checkout http://192.168.0.1/svnprojects/project1

设定用户的权限和验证

但这样肯定是不够的,因为还没有设定相应的用户权限,现在不管谁都可以往 repo 里塞东西,为了更好的控制,我们还需要设定访问权限,比如让指定的用户可以 commit,其他的只能 checkout。

因为我们在 Apache 上,所以访问权限的控制就可以直接借用 Apache 的,首先为你的用户设定用户名和密码:

htpasswd -cmb /path/to/passwdfile/passwords user1 test1

这样就把用户名和密码储存在 passwords 中了,加密方式为 MD5。如果需要添加新的用户,

htpasswd -mb /path/to/passwdfile/passwords user2 test2

以此类推。

然后回到我们在 httpd.conf 中添加的代码,修改一下:

<Location>
DAV svn
SVNParentPath /path/to/svnprojects
AuthType Basic
AuthName "Test Repository"
AuthUserFile /path/to/passwdfile/passwords
<LimitExcept GET PROPFIND OPTION REPORT>
Require valid-user
</LimitExcept>
</Location>

在这段代码的控制下,任何人都可以对 repo 进行 checkout,但只有 user1 和 user2 才可以 commit,<LimitExcept> 的作用是控制 HTTP 请求,如果 HTTP 请求是 GET PROPFIND OPTION REPORT 中的一种,则不需要去验证用户。

最后,你需要把 repo 所在的目录和文件的所有权都改成系统中操作 Apache 的用户,这样在 commit 的时候才会被 Apache 认可。在 Ubuntu 中,这个用户叫 www-data:

sudo chown -R www-data /path/to/repo

如果你用其它系统或是用 Windows,可以在 Apache 的配置文件中找到 User 这个命令来知道应该把目录的所有权交给谁。

以上就是一个初步的 Subversion 服务器的搭建,这一篇考虑到实际上用的人可能不多,要用的人估计肯定会自己配置,因此我写的不够细致,比如说没有说到基于 SSL 的设置步骤。如果你确实需要了解,可以联系我,我们一起探讨。

目录
建立 Subversion 服务器 - intro
建立 Subversion 服务器 - part1
建立 Subversion 服务器 - part2

Tags: ,

建立 Subversion 服务器 - part2

让我们来点真的吧

Part1 中介绍了在本机上建立 repo 自用,但如果想把 repo 放在网上供其他用户 checkout,则还需要架设 svn 服务器--这也是本文的目的。

svn 服务器可以用两种方法架设,一种比较简单,使用 svn 自带的 svnserve 实用程序,另一种直接利用 Apache 架设,需要加载额外的模块。svnserve 简单够用,我打算在这篇里先说说怎么用它架设 svn 服务器。

svnserve 就包含在 subversion 的程序包中,你的电脑上安装了 subversion 就自动有了 svnserve 这个小型 svn 服务器。这个服务器跟 Apache 这个巨无霸比起来简单轻便,使用自己的一套协议,访问时区别于 http:// 前缀,使用 svn:// 前缀。

用 svnserve 搭建 svn 服务器

我们要把 svnserve 运行起来,我将在例子中介绍具体的使用方法。

下面假设我在本机上运行 svnserve,IP 为 192.168.0.1,这个 svn 服务器为局域网内的电脑提供 svn 服务。我打算把 svn 服务器的访问地址设为 http://192.168.0.1/svnprojects/projectX,其中 X 为不同的多个项目。整个过程如下(以 windows 下为例):

首先确定 repo 在本机上的储存的位置,比如我准备把 repo 放在 D:\svnprojetcs\ 下,那么在命令行运行 svnserve -d -r d:\svnprojects 就可以了。其中 -d 参数让 svnserve 运行在后台,-r 参数限定了 repo 在网络上可以访问的地址。这样如果网络上其它的计算机要 checkout 这个服务器,只需要输入

svn checkout svn://192.168.0.1/project1


而 repo 在本机上实际的位置是 d:\svnprojects\project1。
同理,如果想 checkout project2,则把上面的 project1 改成 project2 就可以了。

到此,一个简单的 svn 服务器就算是基本架设好了。但如果要正常使用,我们还需要设定用户的验证和相应的权限
Read the rest of this entry »

Tags: ,

我爱 goober

我觉得是时候夸夸 goober 了。

goober 是谁?谁是 goober?是猫是狗?

goober 是我在 Dreamhost 上用的服务器名。从第一天我的网站就呆在 goober上,一直到现在。

Dreamhost 在去年暑期经历过一次大的不能访问事件,好像是 Cisco 的主干路由器 OS 的 bug 导致的故障,好了又坏,坏了又好的,断断续续的大概持续了几个星期,对 Dreamhost 的声誉造成了很大的破坏,现在 webhostingjury 上给 Dreamhost 的恶评大部分都是因为那个时期的问题。但牛的是,我在那个期间确一直用的好好的,一点问题也没有,goober 一次也没让我失望。除了这个,goober 在绝大部分时间里都在勤勤肯肯地工作,绝少有 downtime。

除了这个,似乎 goober 他的配置也不错,经常在 dreamhoststatus 上看到哪台服务器被换主板了啊,升内存了啊,挪地方了啊。但从来没见提起 goober 过。

今天看到 dreamhost 又在大规模的给服务器们换机架,一番折腾,这么大的数量,也没见着 goober 的名字。

The server moves are almost all done! We do have a few major server moves left though. One of those will start tonight at 10 p.m. PST. The following servers will be switching racks tonight:

lenny, mcclure, millhouse, willie, seamus, burns, brandine, kearny, cletus, apu, lisa, skinner, chalmers, wiggum, limbo-postal, bigredgiant, marge, flanders, ralphie, cheeky, alexander, baht, contra, centipede, defender, joust, bob, rupee, pizarro, donkeykong, bomberman, abbazaba, smores, skor, rampart, wilmington, schnapps, mills, aero, aviation, altoid, butterfinger, kiki, hyperion, cerritos, york, poprock, hillmont, necco, shocktart, warhead, bottlecap, bazooka, archibald, taffy, limbo-spunky2, xekogame, fc23, bounty, nougat, juniormint, and reeses.

Although that looks like an enormous undertaking we, being the super smart people that we are, will break it into segments to minimize downtime! No server should experience more than 20 minutes of inaccessibility. Check this space for updates.

goober 真是个乖孩子,一定是个乖孩子。

Tags: , ,