默认下, proftpd 和 ftpshut 安装在 /usr/local/sbin/,ftpcount 和 ftpwho 安装
在/usr/local/bin/,配置文件在/usr/local/etc/,man帮助页在/usr/local/man/man?/.
此外,/usr/local/var/proftpd/ 被用来存放运行时的 scoreboard 文件。参考
'./configure --help' 输出中的 "Directory and file names" 一节中的参数来改变这
些默认设置。 比如:把所有目录放置在 /usr/ 下而不是 /usr/local/ 下时,你可以
使用以下命令:
$ ./configure --prefix=/usr
或者, 把配置文件放在 /etc/ 下,而把运行时的状态文件放在 /var/proftpd/下,你
可以使用以下命令:
$ ./configure --sysconfdir=/etc --localstatedir=/var
可选的ProFTPD模块可以通过使用'--with-modules=LIST'参数包含进来,其中的'LIST'
是一个由冒号隔开的列表。这只适用于那些 contrib/ 目录下的可选模块( modules/
目录下的核心模块不是被强制包含了就是被默认包含了)。例如,如果你希望包括readme
和LDAP两个模块的话,你可以使用命令:
$ ./configure --with-modules=mod_readme:mod_ldap
如果你希望使用系统的 shadow 密码文件来进行用户认证的话,你在某些系统上就需要
添加上 '--enable-autoshadow' 或 '--enable-shadow'了。使用 autoshadow 的话就
使 proftpd 既能使用 shadow 密码文件也能使用传统的密码文件。
如果你希望使用 SQL 来进行用户认证的话,你必须指定 mod_sql 和一种 后台 SQL 模
块(SQL backend module), mod_sql_mysql 或 mod_sql_postgres 。此外,后台 SQL
模块(SQL backend module)必须紧跟在模块列表的后面给出,比如:
'--with-modules=mod_sql:mod_sql_postgres'. 否则,编译完后,SQL认证功能是不
能起作用。
确信在你重新执行 configure 配置脚本前,首先执行了 'make distclean' 命令。
2. 核实正确的配置x作。
观察 configure 脚本的输出。在 configure 脚本运行完后,你可以检查 config.h 文件,
确信 configure 脚本没有对你的系统做任何错误的假设。
3. 编译这个软件。
在源代码的顶层目录运行 'make'。在某些系统(比如:BSDI),你可能需要使用 GNU make
(也经常称作 'gmake' 或 'gnumake')来代替系统缺省的 make。观察编译过程的输出,
确认没有错误产生。在某些系统(特别是AIX 和 IRIX)你可能看到一些编译或连接警告。这
些一般都可以不理睬。
4. 测试软件。
从 ProFTPD 1.2.0 起,没有自动的回归(regression)测试了。
然而,鼓励去执行你自己的 ad-hoc,手工测试。
注意,你能够直接在命令行启动proftd,不过,记住,只有作为 root 运行时才能正确
获得所有的功能特性。虽然如此,很多x作能够在没有 root 权限的情况下实现。通过
使用命令行参数 '-c' 可以指定其他的配置文件。在配置文件中,可以改变默认的TCP
端口 ftp (21) 和 ftp-data (20) 为其他的值,也可以指定一个其他的 passwd文件。
既然作为守护进程不能更改它的uid,你也同样必须指定用户名和组名来匹配来启动守
护进程。
为了示范这些过程,一组配置文件示例给出在了 sample-configurations 目录下。
% sh sample-configurations/PFTEST.install
Sample test files successfully installed in /tmp/PFTEST.
% ./proftpd -n -d 5 -c /tmp/PFTEST/PFTEST.conf
然后,打开另一个窗口,连接到非特权端口。PFTEST.conf 使用了 2021 端口,而
PFTEST.passwd 定义了一个用户名和密码都为 "proftpd" 的用户。使用传统的 Unix
ftp 客户端软件连接的话,应该会得到以下的状态:
% ftp -n -d
ftp> open <hostname> 2021
ftp> user proftpd
---> USER proftpd
331 Password required for proftpd.
Password: [proftpd]
---> PASS proftpd
230 User proftpd logged in.