代码中包括了一个 init 脚本的示例: "contrib/dist/rpm/proftpd.init.d"
10. 创建运行时状态目录。
为了使 MaxClients 和 MaxClientsPerHost 指令以及 ftpwho 和 ftpcount 工具能够
工作,proftpd必须要有一个目录来彼此它的记分板(scoreboard)文件。缺省使位于
'/usr/local/var/proftpd/'的,不过,它可以在安装配置过程的第一步中进行修改。
默认的位置还可以在运行时被 proftpd.conf 配置文件中的 "ScoreboardPath" 指令
的值所覆盖。不管使用的哪个目录,它都必须在启动 proftpd 前就已经预先存在了。
如果你是采用的是软件包安装方式安装的,安装脚本可能已经创建了缺省的目录了。虽
然如此,如果它没有的话,你必须手工创建。这个目录没有什么特殊的权限要求,除非
你希望限制 ftpwho 和 ftpcount 的运行。
11. 核实x作。
一旦 proftpd 以 inetd 模式或 standalone 模式运行起来了,试着 ftp 到你的系统
中以确信一切已经开始运行了。如果你遇到了问题,请查看下面的"疑难解答"和"帮助"
部分。
12. 定制 proftpd 配置文件。
如果你希望添加一个匿名 ftp 或另外创建一个更完善的 ftp 配置文件,请阅读更多的
有关 ProFTPD 配置方面的文档:
配置文件示例: sample-configurations/*.conf
配置参考文档: doc/Configuration.html
配置 FAQ: doc/FAQ-config.html
文档: http://www.proftpd.org/docs/
FAQ: http://pdd.sourceforge.net/faq/linked/faq.html
注意,某些系统为匿名ftp和任何其他 chroot 目录的预备需要特定的系统特性。同样,
需要清楚,对于"PersistentPasswd"、RequireValidShell"和"UseFtpUsers"这样的配
置指令需要给予特别的注意。
为检查新的或修改过的配置文件,可在命令行下运行'proftpd -t -c <new_conf_file>'
命令。
你可以在不妨碍一个正在运行的服务器的情况下,通过在另一个不同端口运行一个分离
的测试服务器来测试你的配置文件中的实际功能。通过配置文件中的 "Port" 指令来指
定要使用到的端口,不过,在将新配置文件应用到最终服务器时不要忘记将端口号改回
来。
祝您好运!
--------
疑难解答
--------
这个部分很不完全,请参考FAQ和其他的资源来获得更多协助。
T1. 编译时的很多问题通过给出正确的选项和到编译器的搜索路径就可以很容易的解决了。
然而,有些问题确实解决起来很困难。常常有问题是因为头文件或C语言的预处理宏名
有冲突而产生的。少数包(packages)已经知道安装 conf.h 头文件在
/usr/local/include.有时,必须要求助于查看预处理器的输出才行。尽管类似于
`cc -E file.c`的命令经常可以解决,不过,还是请参考你的编译器文档,从而决定
应该怎么做。
一些常见的错误信息包括:
o "symbol ap_signal undefined in main.o"
这通常意味着 fnmatch.h 头文件被包括在了 Apache 的 ap_config.h
头文件中,尽管 proftpd 并没有链接 Apache 的库。这个错误主要产生
在 Solaris 8 系统上,不过,类似的问题也曾经在 Red Hat 6.0 系统
中的 <hsregx.h> 头文件上被报告过。
T2. 如果你遇到了运行时问题,先检查你的系统日志(syslog)中的消息。proftpd 守护进程
记录了它遇到的所有错误情况,包括解析配置文件时出现的问题。认证相关的消息被系统
日志工具 "auth" 或 "authpriv" (如果可用的话) 记录下来。其他所有的消息使用
系统日志的守护进程工具来记录,除非使用命令行选项 "-n" 或 SyslogFacility 、
SystemLog 指令来进行重定向。查看你系统中的 syslogd.conf 来了解 syslogd
怎么处理这些消息。
一些常见的错误信息包括:
o "inet_create_connection() failed: Operation not permitted"
这通常意味着proftpd不是以root用户的身份开始运行的。
o "bind: unable to bind to port" or "Address already in use"
这通常意味着另外一个进程已经在使用指定的ftp端口了,不是inetd、xinetd