Category: 系统软件部署

proftpd+mysql配置轻松管理

说轻松,配置起来可真不轻松,不过幸好有google,如果靠百度,估计我怎么死的都不知道~ 废话不多说,开始写流程

平台:ubuntu10.04 server
前景重现:已经安装好mysql,安装ispcp正式版、分支版本都失败,决定独立安装

清理垃圾:

apt-get remove preftpd

rm -rf /etc/proftpd

开始安装(mod_mysql是我后来看配置文件才发现要装~)

apt-get install proftpd proftpd-mod-mysql

选择   standalone

vi /etf/proftpd/proftpd.conf

依照如下修改设置

UseIPv6                         off
Include /etc/proftpd/sql.conf             #前面的#删掉

创建ftp权限

groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c “proftpd user” -g ftpgroup ftpuser

mysql创建proftpd库,最好用phpmyadmin

先创建用户,用户名proftpd,密码自定义一个或者随机都可以,然后建立ftp库

create database ftp;
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO ‘proftpd’@'localhost’ IDENTIFIED BY ‘password’;
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO ‘proftpd’@'localhost.localdomain’ IDENTIFIED BY ‘password’;
FLUSH PRIVILEGES;

点ftp库的sql指令选项卡,(命令行操作时,输入 use ftp;)

CREATE TABLE ftpgroup (
groupname varchar(16) NOT NULL default ”,
gid smallint(6) NOT NULL default ’5500′,
members varchar(16) NOT NULL default ”,
KEY groupname (groupname)
) COMMENT=’ProFTP group table’;

CREATE TABLE ftpquotalimits (
name varchar(30) default NULL,
quota_type enum(‘user’,'group’,'class’,'all’) NOT NULL default ‘user’,
per_session enum(‘false’,'true’) NOT NULL default ‘false’,
limit_type enum(‘soft’,'hard’) NOT NULL default ‘soft’,
bytes_in_avail int(10) unsigned NOT NULL default ’0′,
bytes_out_avail int(10) unsigned NOT NULL default ’0′,
bytes_xfer_avail int(10) unsigned NOT NULL default ’0′,
files_in_avail int(10) unsigned NOT NULL default ’0′,
files_out_avail int(10) unsigned NOT NULL default ’0′,
files_xfer_avail int(10) unsigned NOT NULL default ’0′
);

CREATE TABLE ftpquotatallies (
name varchar(30) NOT NULL default ”,
quota_type enum(‘user’,'group’,'class’,'all’) NOT NULL default ‘user’,
bytes_in_used int(10) unsigned NOT NULL default ’0′,
bytes_out_used int(10) unsigned NOT NULL default ’0′,
bytes_xfer_used int(10) unsigned NOT NULL default ’0′,
files_in_used int(10) unsigned NOT NULL default ’0′,
files_out_used int(10) unsigned NOT NULL default ’0′,
files_xfer_used int(10) unsigned NOT NULL default ’0′
);

CREATE TABLE ftpuser (
id int(10) unsigned NOT NULL auto_increment,
userid varchar(32) NOT NULL default ”,
passwd varchar(32) NOT NULL default ”,
uid smallint(6) NOT NULL default ’5500′,
gid smallint(6) NOT NULL default ’5500′,
homedir varchar(255) NOT NULL default ”,
shell varchar(16) NOT NULL default ‘/sbin/nologin’,
count int(11) NOT NULL default ’0′,
accessed datetime NOT NULL default ’0000-00-00 00:00:00′,
modified datetime NOT NULL default ’0000-00-00 00:00:00′,
PRIMARY KEY (id),
UNIQUE KEY userid (userid)
) COMMENT=’ProFTP user table’;

quit;

修改刚刚激活的sql.conf

vi /etc/proftpd/modules.conf

#
# Proftpd sample configuration for SQL-based authentication.
#
# (This is not to be used if you prefer a PAM-based SQL authentication)
#

<IfModule mod_sql.c>
#
# Choose a SQL backend among MySQL or PostgreSQL.
# Both modules are loaded in default configuration, so you have to specify the backend
# or comment out the unused module in /etc/proftpd/modules.conf.
# Use ‘mysql’ or ‘postgres’ as possible values.
#
#SQLBackend        mysql
#
#SQLEngine on
#SQLAuthenticate on
#
# Use both a crypted or plaintext password
#SQLAuthTypes Crypt Plaintext
#
# Use a backend-crypted or a crypted password
#SQLAuthTypes Backend Crypt
#
# Connection
#SQLConnectInfo proftpd@sql.example.com proftpd_user proftpd_password
#
# Describes both users/groups tables
#
#SQLUserInfo users userid passwd uid gid homedir shell
#SQLGroupInfo groups groupname gid members
#
DefaultRoot ~

SQLBackend              mysql
# The passwords in MySQL are encrypted using CRYPT
SQLAuthTypes            Plaintext Crypt
SQLAuthenticate         users groups

# used to connect to the database
# databasename@host database_user user_password
SQLConnectInfo  数据库名@localhost 用户名 密码

# Here we tell ProFTPd the names of the database columns in the “usertable”
# we want it to interact with. Match the names with those in the db
SQLUserInfo     ftpuser userid passwd uid gid homedir shell

# Here we tell ProFTPd the names of the database columns in the “grouptable”
# we want it to interact with. Again the names match with those in the db
SQLGroupInfo    ftpgroup groupname gid members

# set min UID and GID – otherwise these are 999 each
SQLMinID        500

# create a user’s home directory on demand if it doesn’t exist
CreateHome on

# Update count every time user logs in
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE “count=count+1, accessed=now() WHERE userid=’%u’” ftpuser

# Update modified everytime user uploads or deletes a file
SQLLog  STOR,DELE modified
SQLNamedQuery modified UPDATE “modified=now() WHERE userid=’%u’” ftpuser

# User quotas
# ===========
QuotaEngine on
QuotaDirectoryTally on
QuotaDisplayUnits Mb
QuotaShowQuotas on

SQLNamedQuery get-quota-limit SELECT “name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = ‘%{0}’ AND quota_type = ‘%{1}’”

SQLNamedQuery get-quota-tally SELECT “name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM ftpquotatallies WHERE name = ‘%{0}’ AND quota_type = ‘%{1}’”

SQLNamedQuery update-quota-tally UPDATE “bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = ‘%{6}’ AND quota_type = ‘%{7}’” ftpquotatallies

SQLNamedQuery insert-quota-tally INSERT “%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}” ftpquotatallies

QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally

RootLogin off
RequireValidShell off

</IfModule>

wq!

文件编辑完了,添加个用户在ftpuser表里,填写用户名、密码、homedir的位置就可以了

然后重启服务
service proftpd restart  (或/etc/init.d/proftpd restart)

参考文献:http://www.howtoforge.com/virtual-hosting-with-proftpd-and-mysql-debian-lenny

 

3800置AMD5000开四核电脑2G跑win7很爽

5月22日,在北京中关村E世界A839写字间的MLF-DIY之家,老板是一个清华毕业的高材生,现今大概30出头,在我给他一个价格区间的情况之后,以及我提出的高性价比AMD x245和AMD fx-5000两款配置后,他给我拉了一个价格基本上没有超出预算的机器,而且不管是显示器、还是显卡都可称相当可以(以极品13 变速来比较,效果还可以~)

对于超频+开核都一步到位,就是win7的OEM激活问题他们做得不好,没有搞定msi一步激活,但是给安装的确实是MSDN的干净版Win7 ,更体现出其为人厚道!

CPU:AMD phenom FX-5000 (45nm 实际频率2.2G  双核稳超4核  实际始终2.75G,散热好的话可稳上3.3) 风扇 铜管+散热片风扇 380+90元

主板:MSI – 785GTM-E45 (微星 型号说明 785芯片 G:独立显卡,且接口全齐 T:只支持DDR2  M:应该是支持M-FLASH功能  490)
http://www.msi-china.com.cn/index.php?func=newsdesc&news_no=893  总结:785G是目前家庭影院最优秀的主板

内存:1条ddr2  2G(300RMB,外界独立显卡,不吃显存情况下够用)

硬盘:日立1T (390 RMB)

显卡:N卡 GEFORCE GT 240  独立512 可吃到1G 显卡 ( 550 RMB,主要为极品准备,怕HD4200不够用~ )

机箱电源:技展商用型+3600 270w(290RMB)

显示器:AOC e2236VW ( 22寸,LED + 非镜面屏 + touch key 触控操作开关 + usb接口+低电+ DCR 2000000:1 )整体界面圆润黑色  1250RMB 或1280送纪念背包一个,个人认为背包质量较差)

键鼠套装: RAPOO 雷柏 1800套装无线套装,(经过测试,3米外信号很好,首先说雷柏牌子,国内还算响当当,外加其服务态度极佳,特别是E世界6层那个技术负责人,值得称赞! 85RMB)

总体算下来3000多不到4千能拿到这样的配置已经很不错了,现在我的cpu开4核平时的o’clock是1000+再跑,动态频率最高可以到2.7G,经过网上介绍,在开核后最高超频效果可以达到3.4G,而稳定效果是3.3G,但由于我用的风扇虽然据他说已经算相对不错的,但跟专业的比还差得很远(例如双层铜管或者水冷等等),所以建议我查不到到2.7就ok了,不过是包我稳超3.0的

多处理器的性能在跑prime95的时候,运行极品13有稍微卡的情况,但可以顺利跑下比赛,特付几张系统测试图

送的东西包括:一个不到1块钱成本的鼠标垫+一个5米网线+一个5口的大接线板,说实在的,我正急缺接线板~~

对于为什么要写这篇文章,主要有下面几个目的
1、难得碰到一个相对于实在的卖家,也为他做做广告
2、难得碰到一个能用正版msdn下载的30天win7给你做系统测试的卖家,而不是病毒系统~
3、老板一如返顾的亲自了解需求、拉单、报价
4、能真正为用户的预算考虑,以及配置出有性价比的机器
5、由于是用DDR2代内存,老板会直接告诉说,买的越多长久性损失的就越多,老板为人实在的体现

最后说明一下,这次配电脑顺心之外也有些郁闷,我一周去了3次e世界
第一次,买机器和笔记本
第二次,由于第一次走的时候匆忙,外加我亲自拿到机箱,忘了带电源线和3个赠品了,回去拿,顺便给小本买个键盘套和贴膜
第三次,由于自用,导致雷柏接触不良,去6层换了一个接收器,而且很顺利,雷柏大品牌的体现

 

编写.htaccess文件-多语言在线编辑器

.htaccess文件 Editor 是一个免费的在线工具,它能够为你的网站快速生成一个 .htaccess 文件。使用非常简单,在页面左侧选择类别,再按照提示在右侧输入相关信息。最后把生成的代码以“.htaccess”的文件名保存在网站根目录下即可。

什么是.htaccess文件,可以访问本站的.htaccess文件详解获得学习内容

.htaccess在线编辑器地址:http://www.htaccesseditor.com/sc.shtml

 

.htaccess文件详解

Apache服务器的.htaccess是一个非常强大的分布式配置文件,学会使用.htaccess,对虚拟主机用户来说,可以实现众多的功能。这里有一篇很容易理解的.htaccess介绍,作为入门文章非常的适合。文章最初来自freewebmasterhelp.comQiRan作了简单的中文翻译,我将加以完善。

  • Part 1 – 介绍
  • Part 2 – .htaccess命令
  • Part 3 – 密码保护

Part 1 – 介绍

介绍

从本指南中,你将可以学习到有关.htaccess文件及其功能的知识,并用以优化你的网站。尽管.htaccess只是一个文件,但它可以更改服务器的设置,允许你做许多不同的事情,最流行的功能是您可以创建自定义的“404 error”页面。.htaccess并不难于使用,归根结底,它只是在一个text文档中添加几条简单的指令而已。

我的主机支持它吗?

这可能很难用简单的答案来回答。许多主机支持.htaccess,但实际上并不会特别声明,许多其他类型的主机有能力但并不允许他们的用户使用.htaccess。一般来说,如果你的主机使用Unix或Linux系统,或任何版本的Apache网络服务器,从理论上都是支持.htaccess的,尽管你的主机服务商可能不允许你使用它。

判断你的主机是否允许.htaccess,一个标志很好的是它是否支持文件夹密码保护。为达到此功能,主机服务商需要使用.htaccess(当然,少数情况下他们虽提供密码保护功能,但却并不允许你使用.htaccess)。如果你不确定自己的主机是否支持.htaccess,最好的办法是上传你自己的.htaccess文件看看是否有用,或者直接发送邮件向你的主机服务商咨询。

我该怎么做?

你可能疑惑.htaccess到底能做些什么,或者你可能曾知道它的一些功能但并不真正了解你实际到底可以用它来做多少事情。

.htaccess可以做大量的事情,包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件。

创建一个.htaccess文档

创建.htaccess文件也许会给你带来一些困难。写文件很容易,你只需要在文字编缉器(例如:写字板)里写下适当的代码。真正困难的可能是文件的保存,因为.htaccess是一个古怪的文件名(它事实上没有文件名,只有一个由8个字母组成的扩展名),而在一些系统(如Windows 3.1)中无法接受这样的文件名。在大多数的操作系统中,你需要做的是将文档保存成名为:

“.htaccess”

(包括引号)。如果这也不行,你需要将其先命名为其它名字(例如htaccess.txt),再将其上传到服务器上,之后直接使用FTP软件来重命名。

警告

在使用.htaccess之前,我必须给你一些警告。虽然在服务器上使用.htaccess绝对不太可能给你带来任何麻烦(如果有些东西错了,它只是没效用罢了),但如果你使用Microsoft FrontPage Extensions,就必须特别小心。因为FrontPage Extensions本身使用了.htaccess,因此你不能编辑它并加入你自己的信息。如果确实有这方面的需要(并不推荐,但是可能),你应该先从服务器上下载.htaccess文档(如果存在),之后在前面加上你的代码。

自定义错误页

我要介绍的.htaccess的第一个应用是自定义错误页面,这将使你可以拥有自己的、个性化的错误页面(例如找不到文件时),而不是你的服务商提供的错 误页或没有任何页面。这会让你的网站在出错的时候看上去更专业。你还可以利用脚本程序在发生错误的时候通知你(例如我使用Free Webmaster Help的PHP脚本程序,当找不到页面的时候自动Email给我)。

你所知道的任何页面错误代码(像404找不到页面),都可以通过在.htaccess文件里加入下面的文字将其变成自定义页面:

ErrorDocument errornumber /file.html

举例来说,如果我的根目录下有一个notfound.html文件,我想使用它作为404 error的页面:

ErrorDocument 404 /notfound.html

如果文件不在网站的根目录下,你只需要把路径设置为:

ErrorDocument 500 /errorpages/500.html

以下是一些最常用的错误:

401 – Authorization Required 需要验证
400 – Bad request 错误请求
403 – Forbidden 禁止
500 – Internal Server Error 内部服务器错误
404 – Wrong page 找不到页面

接下来,你要做的只是创建一个错误发生时显示的文件,然后把它们和.htaccess一起上传。

Part 2 – .htaccess命令

介绍

在上一部分,我已经简单介绍了.htaccess以及它的一些有用功能,在这一部分,我将向你演示如何使用.htaccess文档去实现这些功能。

停示显示目录列表

有些时候,由于某种原因,你的目录里没有index文件,这意味着当有人在浏览器地址栏键入了该目录的路径,该目录下所有的文件都会显示出来,这会给你的网站留下安全隐患。

为避免这种情况(而不必创建一堆的新index文件),你可以在你的.htaccess文档中键入以下命令,用以阻止目录列表的显示:

Options -Indexes

阻止/允许特定的IP地址

某些情况下,你可能只想允许某些特定IP的用户可以访问你的网站(例如:只允许使用特定ISP的用户进入某个目录),或者想封禁某些特定的IP地址(例如:将低级用户隔离于你的信息版面外)。当然,这只在你知道你想拦截的IP地址时才有用,然而现在网上的大多数用户都使用动态IP地址,所以这并不是限制使用的常用方法。

你可以使用以下命令封禁一个IP地址:

deny from 000.000.000.000

这里的000.000.000.000是被封禁的IP地址,如果你只指明了其中的几个,则可以封禁整个网段的地址。如你输入210.10.56.,则将封禁210.10.56.0~210.10.56.255的所有IP地址。

你可以使用以下命令允许一个IP地址访问网站:

allow from 000.000.000.000

被允许的IP地址则为000.000.000.000,你可以象封禁IP地址一样允许整个网段。

如果你想阻止所有人访问该目录,则可以使用:

deny from all

不过这并不影响脚本程序使用这个目录下的文档。

替换index文件

也许你不想一直使用index.htm或index.html作为目录的索引文件。举例来说,如果你的站点使用PHP文件,你可能会想使用 index.php来作为该目录的索引文档。当然也不必局限于“index”文档,如果你愿意,使用.htaccess你甚至能够设置foofoo.balh来作为你的索引文档!

这些互为替换的索引文件可以排成一个列表,服务器会从左至右进行寻找,检查哪个文档在真实的目录中存在。如果一个也找不到,它将会把目录列表显示出来(除非你已经关闭了显示目录文件列表)。

DirectoryIndex index.php index.php3 messagebrd.pl index.html index.htm

重定向

.htaccess最有用的功能之一就是将请求重定向到同站内或站外的不同文档。这在你改变了一个文件名称,但仍然想让用户用旧地址访问到它时,变的极为有用。另一个应用(我发现的很有用的)是重定向到一个长URL,例如在我的时事通讯中,我可以使用一个很简短的URL来指向我的会员链接。以下是一个重定向文件的例子:

Redirect /location/from/root/file.ext http://www.othersite.com/new/file/location.xyz

上述例子中,访问在root目录下的名为oldfile.html可以键入:

/oldfile.html

访问一个旧次级目录中的文件可以键入:

/old/oldfile.html

你也可以使用.htaccess重定向整个网站的目录。假如你的网站上有一个名为olddirectory的目录,并且你已经在一个新网站http://www.newsite.com/newdirectory/上建立了与上相同的文档,你可以将旧目录下所有的文件做一次重定向而不必一一声明:

Redirect /olddirectory http://www.newsite.com/newdirectory

这样,任何指向到站点中/olddirectory目录的请求都将被重新指向新的站点,包括附加的额外URL信息。例如有人键入:

http://www.youroldsite.com/olddirecotry/oldfiles/images/image.gif

请求将被重定向到:

http://www.newsite.com/newdirectory/oldfiles/images/image.gif

如果正确使用,此功能将极其强大。

Part 3 – 密码保护

Introduction 介绍

尽管有各种各样的.htaccess用法,但至今最流行的也可能是最有用的做法是将其用于网站目录可靠的密码保护。尽管JavaScript等也能做到,但只有.htaccess具有完美的安全性(即访问者必须知晓密码才可以访问目录,并且绝无“后门”可走)。

密码保护的.htaccess文件

利用.htaccess将一个目录加上密码保护分两个步骤。第一步是在你的.htaccess文档里加上适当的几行代码,再将.htaccess文档放进你要保护的目录下:

AuthName “Section Name”
AuthType Basic
AuthUserFile /full/path/to/.htpasswd
Require valid-user

你可能需要根据你的网站情况修改一下上述内容中的一些部分,如用被保护部分的名字”Members Area”,替换掉“Section Name”。

/full/parth/to/.htpasswd则应该替换为指向.htpasswd文件(后面详述该文档)的完整服务器路径。如果你不知道你网站空间的完整路径,请询问一下你的系统管理员。

密码保护的.htpasswd文件

目录的密码保护比.htaccess的其他功能要麻烦些,因为你必须同时创建一个包含用户名和密码的文档,用于访问你的网站,相关信息(默认)位于一个名为.htpasswd的文档里。像.htaccess一样,.htpasswd也是一个没有文件名且具有8位扩展名的文档,可以放置在你网站里的任何地方(此时密码应加密),但建议你将其保存在网站Web根目录外,这样通过网络就无法访问到它了。

输入用户名和密码

创建好.htpasswd文档后(可以通过文字编辑器创建),下一步是输入用于访问网站的用户名和密码,应为:

username:password

“password”的位置应该是加密过的密码。你可以通过几种方法来得到加密过的密码:一是使用一个网上提供的permade脚本或自己写一个;另一个很不错的username/password加密服务是通过KxS网站,这里允许你输入用户名及密码,然后生成正确格式的密码。

对于多用户,你只需要在.htpasswd文档中新增同样格式的一行即可。另外还有一些免费的脚本程序可以方便地管理.htpasswd文档,可以自动新增/移除用户等。

访问网站

当你试图访问被.htaccess密码保护的目录时,你的浏览器会弹出标准的username/password对话窗口。如果你不喜欢这种方式,有些脚本程序可以允许你在页面内嵌入username/password输入框来进行认证,你也可以在浏览器的URL框内以以下方式输入用户名和密码(未加密 的):

http://username:password@www.website.com/directory/

小结

.htaccess是一个站点管理员可以应用的强大工具,有更多的变化以适应不同的用途,可以节约时间及提高网站的安全性。

相关阅读:

.htaccess的特别说明

  • 启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用
  • 如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:

    AccessFileName .config

  • 一般情况下,不应该使用.htaccess文件,除非你对主配置文件没有访问权限。有一种很常见的误解,认为用户认证只能通过.htaccess文件实现,其实并不是这样,把用户 认证写在主配置文件中是完全可行的,而且是一种很好的方法。.htaccess文件应该被用在内容提供者需要针对特定目录改变服务器的配置而又没有root权限的情况下。如果服务器管理员不愿意频繁修改配置,则可以允许用户通过.htaccess文件自己修改配置,尤其是ISP在同一个机器上运行了多个用户站点,而又希望用户可以自己改变配置的情况下。虽然如此,一般都应该尽可能地避免使用.htaccess文件。任何希望放在.htaccess文件中的配置,都可以放在主配置文件的<Directory>段中,而且更高效。避免使用.htaccess文件有两个主要原因,即性能和安全。
 

搞个apache+web.py累死人

最近从observer的牛人博客发现了一个他做的开源项目,获得了源代码之后我打算架设来用,我这个自私的人也不希望资源流失(众生称:可以理解~)由于obs是采用nginx发布,而我的服务器采用的是apache2,而且我没有打算更换发布服务器的想法,也没有打算同时运行两个,所以花了一天的时间来处理apache2+web.py的平台,来支持obs开发的这套程序,若干个错误,对照者apache2的error日志和那伟大的自动更新log命令tail -f xxx.log,解决了基本上所有的,但最后发布时,提到了更多的错误问题

[Mon Apr 26 18:56:13 2010] [error] [client 114.245.184.219]   File “/usr/lib/python2.5/site-packages/web.py-0.34-py2.5.egg/web/application.py”, line 242, in process
[Mon Apr 26 18:56:13 2010] [error] [client 114.245.184.219]     return self.handle()
[Mon Apr 26 18:56:13 2010] [error] [client 114.245.184.219]   File “/usr/lib/python2.5/site-packages/web.py-0.34-py2.5.egg/web/application.py”, line 233, in handle
[Mon Apr 26 18:56:13 2010] [error] [client 114.245.184.219]     return self._delegate(fn, self.fvars, args)
[Mon Apr 26 18:56:13 2010] [error] [client 114.245.184.219]   File “/usr/lib/python2.5/site-packages/web.py-0.34-py2.5.egg/web/application.py”, line 415, in _delegate
[Mon Apr 26 18:56:13 2010] [error] [client 114.245.184.219]     return handle_class(cls)
[Mon Apr 26 18:56:13 2010] [error] [client 114.245.184.219]   File “/usr/lib/python2.5/site-packages/web.py-0.34-py2.5.egg/web/application.py”, line 390, in handle_class
[Mon Apr 26 18:56:13 2010] [error] [client 114.245.184.219]     return tocall(*args)

由于属于第一次接触python这方面内容,所以不太熟悉,还在配置测试中,独立解析很像tomcat的挂载方法,正在测试试用proxypass来挂,希望能成功~

简单介绍一下这个项目,应该是obs本人写的,是一个爬虫程序,目标对象是verycd的内容,这并不是在偷取vc的内容,因为vc只是保留了kde网络和emule的软件连接,所以我们也只是在获取和收集这些链接,说白了,就是一个资源库连接爬虫程序,他将帮助我们获取尽可能多的、在vc上发不过的软件内容

再此,感谢obs提供的内容

由于.py版本众多,且这个项目的最后发布时间于我现在安装的py版本不符,还不向下兼容,导致程序最终没法发布,obs说等有时间会推出一个全新版本,推翻现有的架构,那我就等着他的了