文章标签 ‘ftp’
所谓简单,是因为ProFTPD的一些复杂功能都没有写进来,比如用户磁盘空间配额、上传下载速率限制等。
所谓轻量级,是因为配这个平台,是为了公司内部使用,用户有限。更复杂的配置,日后再说吧:)
网上的很多关于ProFTPD搭载数据库进行管理的文章,大多用的都是MySQL(搜baidu的结果)和PostgreSQL(搜google的结果),可是单单为了一个公司内部使用的这么一个小平台,使用这么两个重量级的数据库,是在有点杀鸡用牛刀的感觉。对于我的需求,Sqlite这个轻量级的嵌入式数据库,显然是最最合适的选择。在网上跑来跑去找了1个多小时,也没有一篇像样的配置文档,甚至连ProFTPD的官方doc里,提起sqlite也是只言片语。没办法,只有自己对着英文的Howto,自己摸索了。
1,Install Sqlite3 and ProFTPD
下载安装Sqlite3最新版:http://www.sqlite.org/
#tar -zxf sqlite-amalgamation-3.6.13.tar.gz
#cd sqlite-3.6.13/
#./configure
#make
#make install
下载安装ProFTPD最新版:http://www.proftpd.org/
ProFTPD对于数据库的支持,并不是通过linux的PAM方式来实现的
而是内置了模块,这点曾经让我走了很多弯路,TMD居然没有文章提及这点。使用sqlite模块:
#tar -zxf proftpd-1.3.2.tar.gz
#cd proftpd-1.3.2
#./configure –prefix=/usr/local/proftpd –with-modules=mod_sql:mod_sql_sqlite
#make
#make install
2,配置ProFTPD
编辑/usr/local/proftpd/etc/proftpd.conf文件,加入下面列出来的这一大坨参数。
这里只说说跟Sqlite3有关的参数,其他比较有用的参数配置说明,满世界都是。完整配置文件放在最后。
其实除了SQLBackend和SQLConnectInfo两个参数之外,剩下的一些参数在配置其他数据库时也会用到
我在配置这些数据库相关参数的时候,走了很多弯路,查了很多文档,记下来也给自己脑子备个份。
#首先来说这俩,定义proftpd以什么身份来运行,跟apache里的是一个意思
#我是习惯了apache定义为www用户和www组,配置proftpd也就这样了
#以什么身份运行,我个人感觉没啥特别意义,关键是虚拟用户对实体用户的映射!
User www
Group www
#sqlite2跟3差别较大,各软件平台对其支持也是分开来的,比如PHP
#这里就是指明,使用sqlite3
SQLBackend sqlite3
#数据库文件的绝对路径,一定要绝对
SQLConnectInfo /home/www/ftpd.db
#数据库内虚拟用户的密码认证方式
#我认为Backend的意思就是数据库自己的认证方式,比如mysql的password方案
#该方案可以指定多种,使用空格隔开,按照先后,依次try
#下面这句的意思就是“先用sqlite自己的认证方式(我用的明文,其他解决方案没研究)
#如果不行,再使用crypt(3)的方案”,实际配置文件里我只要了一个Backend
SQLAuthTypes [...]

