我想建立一个带有 sftp 和虚拟账户的文件服务器,所以我使用 ProFTPD。
系统信息:red hat enterprise linux 6.8-x86_64
proftpd 信息:proftpd-1.3.6
OpenSSL 1.0.1e-fips 2013 年 2 月 11 日
错误:openssl/rand.h:没有此文件或目录
我做什么:
mkdir /usr/local/proftpd
mkdir /etc/proftpd
cd /usr/local/src
wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.6.tar.gz
tar -zxvf proftpd-1.3.6.tar.gz
cd /usr/local/src/proftpd-1.3.6
./configure --prefix=/usr/local/proftpd --sysconfdir=/etc/proftpd --enable-openssl --with-modules=mod_sftp
make
错误信息:
--------------
Build Summary
--------------
Building the following static modules:
mod_ident
mod_quotatab
mod_quotatab_file
mod_sftp
mod_cap
--------------
[root@slave1 proftpd-1.3.6]# make && make install
echo \#define BUILD_STAMP \"`date +"%a %b %e %Y %H:%M:%S %Z"`\" > include/buildstamp.h
cd lib/ && make lib
make[1]: Entering directory `/usr/local/src/proftpd-1.3.6/lib'
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -g2 -O2 -Wall -fno-omit-
........
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -g2 -O2 -Wall -fno-omit-frame-pointer -c table.c
table.c:30:26: error: openssl/rand.h: No such file or directory
table.c: In function ‘tab_get_seed’:
table.c:366: warning: implicit declaration of function ‘RAND_bytes’
make[1]: *** [table.o] Error 1
make[1]: Leaving directory `/usr/local/src/proftpd-1.3.6/src'
make: *** [src] Error 2
安装
The mod_sftp module is distributed with ProFTPD. For including mod_sftp as a staticly linked module, use:
$ ./configure --enable-openssl --with-modules=mod_sftp ...
Alternatively, mod_sftp can be built as a DSO module:
$ ./configure --enable-dso --enable-openssl --with-shared=mod_sftp ...
Then follow the usual steps:
$ make
$ make install
Note that if the libsodium library is available, mod_sftp will auto-detect this, which enables other supported algorithms. You can ensure that mod_sftp compiles with the libsodium library like so:
$ ./configure --enable-openssl --with-modules=mod_sftp ... \
--with-includes=/path/to/libsodium/include \
--with-libraries=/path/to/libsodium/lib
答案1
ProFTPDmod_sftp
模块需要 OpenSSL 库;您遇到的这个构建错误:
error: openssl/rand.h: No such file or directory
表示您的系统上未安装 OpenSSL。
在运行 ProFTPDconfigure
脚本之前,您需要确保 OpenSSL发展安装库后,使用例如:
$ yum install openssl-dev
然后您可以再次运行 ProFTPD 的构建命令:
$ ./configure ...
$ make clean
$ make
$ make install
稍后,如果您发现想要使用mod_sql
和mod_sql_mysql
模块,那么您将需要安装 MySQL 库:
$ yum install mysql-devel mysql-lib
你不是必需的提供 MySQL 标头的位置(用于--with-includes
ProFTPDconfigure
脚本);假设默认安装,ProFTPD 构建系统通常足够智能地找到它们。
综上所述,那么:
$ mkdir /usr/local/proftpd
$ mkdir /etc/proftpd
$ cd /usr/local/src
$ yum install mysql-devel mysql-lib openssl-dev
$ wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.6.tar.gz
$ tar -zxvf proftpd-1.3.6.tar.gz
$ cd /usr/local/src/proftpd-1.3.6
$ ./configure --prefix=/usr/local/proftpd --sysconfdir=/etc/proftpd --enable-openssl --with-modules=mod_sftp:mod_sql:mod_sql_mysql
$ make
$ make install
希望这可以帮助!