首页 > 代码库 > centos 6.5 安装pure-ftpd + mysql

centos 6.5 安装pure-ftpd + mysql

                 centos 6.5 安装pure-ftpd + mysql 

一、自己到官网下载pure-ftp的tar.gz 的包,数据库我之前安装好了,这里就不写了,不会的自己百度

root@localhost:[/home/soft] % ll

root@localhost:[/home/soft] % tar xf pure-ftpd-1.0.41.tar.gz

技术分享


二、编译安装

root@localhost:[/home/soft] % cd pure-ftpd-1.0.41
root@localhost:[/home/soft/pure-ftpd-1.0.41] % ldconfig
root@localhost:[/home/soft/pure-ftpd-1.0.41] %
./configure --prefix=/home/pureftpd 安装路径根据自己服务器的情况指定)
--with-mysql=/home/server/mysql         --with-quotas         --with-cookie         --with-virtualhosts         --with-virtualchroot         --with-diraliases         --with-sysquotas         --with-ratios         --with-altlog         --with-paranoidmsg         --with-shadow         --with-welcomemsg          --with-throttling         --with-uploadscript         --with-language=simplified-chinese

./configure --help 参数详解自己去看下上边的意思。

root@localhost:[/home/soft/pure-ftpd-1.0.41] % make && make install



三、设置配置文件

root@localhost:[/home/soft/pure-ftpd-1.0.41] %chmod 755 configuration-file/pure-config.pl
root@localhost:[/home/soft/pure-ftpd-1.0.41] %chmod 755 configuration-file/pure-config.py
root@localhost:[/home/soft/pure-ftpd-1.0.41] %cp configuration-file/pure-config.pl /home/pureftpd/sbin/
root@localhost:[/home/soft/pure-ftpd-1.0.41] %cp configuration-file/pure-config.py /home/pureftpd/sbin/

安装完后安装目录没有-- etc --的目录,需要自己手动创建。

root@localhost:[/home/soft/pure-ftpd-1.0.41] %mkdir /home/pureftpd/etc
root@localhost:[/home/soft/pure-ftpd-1.0.41] %cp pureftpd-mysql.conf pureftpd-ldap.conf /home/pureftpd/etc/
root@localhost:[/home/soft/pure-ftpd-1.0.41] %cp configuration-file/pure-ftpd.conf /home/pureftpd/etc/

1、切换到安装目录【etc】目录

root@localhost:[/home/soft/pure-ftpd-1.0.41] %cd /home/pureftpd/etc/
root@localhost:[/home/pureftpd/etc/]%ls

技术分享

root@localhost:[/home/pureftpd/]%ls

技术分享

2、设置配置文件

root@localhost:[/home/pureftpd/etc/]%cp pure-ftpd.conf pure-ftpd.confbak
root@localhost:[/home/pureftpd/etc/]%cp pureftpd-mysql.conf pureftpd-mysql.confbak
root@localhost:[/home/pureftpd/etc/]%:>pure-ftpd.conf(清空配置文件内容)
root@localhost:[/home/pureftpd/etc/]%vim pure-ftpd.conf(加入如下)
root@localhost:[/home/pureftpd/etc/]% cat pure-ftpd.conf(具体参数自己百度,这里不说了)

技术分享

Bind                    21
ChrootEveryone              yes
BrokenClientsCompatibility  no
MaxClientsNumber            50
Daemonize                   yes
MaxClientsPerIP             8
VerboseLog                  no
DisplayDotFiles             yes
AnonymousOnly               no
NoAnonymous                 yes
SyslogFacility              ftp
DontResolve                 yes
MaxIdleTime                 15
LimitRecursion              10000 8
AnonymousCanCreateDirs      no
MaxLoad                     4
AntiWarez                   yes
Umask                       133:022
MinUID                      500
AllowUserFXP                no
AllowAnonymousFXP           no
ProhibitDotFilesWrite       no
ProhibitDotFilesRead        no
AutoRename                  no
AnonymousCantUpload         no
MaxDiskUsage               99
CustomerProof              yes
AllowOverwrite          on
AllowStoreRestart       on
UnixAuthentication          yes
PassivePortRange            20000 20500
MySQLConfigFile     /home/pureftpd/etc/pureftpd-mysql.conf(这里是地指向pure-ftpd 的数据库文件)
root@localhost:[/home/pureftpd/etc/]%:> pureftpd-mysql.conf(清空配置文件内容)
root@localhost:[/home/pureftpd/etc/]%vim pureftpd-mysql.conf

(加入如下,我的数据库的配置文件就不拿出来,这个是网上的,但配置是一样的,只不过是数据库和表不同。)

MYSQLSocket   /var/lib/mysql/mysql.sock  # mysql.sock文件
MYSQLUser       ftpuser                  # mysql用户名
MYSQLPassword   ftppass                  # mysql密码
MYSQLDatabase   ftpname                  # mysql数据库名
MYSQLCrypt         md5                   #加密方式,这里用md5加密
MYSQLGetPW      SELECT Password FROM users WHEREUser="\L" AND Status="1" AND (Ipaddress = "*" ORIpaddress LIKE "\R")
MYSQLGetUID     SELECT Uid FROM users WHEREUser="\L" AND Status="1" AND (Ipaddress = "*" ORIpaddress LIKE "\R")
MYSQLGetGID     SELECT Gid FROM users WHEREUser="\L" AND Status="1" AND (Ipaddress = "*" ORIpaddress LIKE "\R")
MYSQLGetDir     SELECT Dir FROM users WHEREUser="\L" AND Status="1" AND (Ipaddress = "*" ORIpaddress LIKE "\R")
MySQLGetQTAFS  SELECT QuotaFiles FROM users WHERE User="\L"AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE"\R")
MySQLGetQTASZ  SELECT QuotaSize FROM users WHEREUser="\L" AND Status="1" AND (Ipaddress = "*" ORIpaddress LIKE "\R")
MySQLGetRatioUL SELECT ULRatio FROM usersWHERE User="\L" AND Status="1" AND (Ipaddress ="*" OR Ipaddress LIKE "\R")
MySQLGetRatioDL SELECT DLRatio FROM usersWHERE User="\L" AND Status="1" AND (Ipaddress ="*" OR Ipaddress LIKE "\R")
MySQLGetBandwidthUL SELECT ULBandwidth FROMusers WHERE User="\L" AND Status="1" AND (Ipaddress ="*" OR Ipaddress LIKE "\R")
MySQLGetBandwidthDL SELECT DLBandwidth FROMusers WHERE User="\L" AND Status="1" AND (Ipaddress ="*" OR Ipaddress LIKE "\R")

这里重点说下;这个配置文件是你数据库的对应的数据库和表的内容,不要安照网上的复制,根据自己数据库建立的数据库和表做相应的配置。


三、配置启动参数(一定要这步,不然启动会报错)

root@localhost:[/home/pureftpd/etc/]%vim /etc/init.d/pureftpd (加如下内容)
#!/bin/bash
/home/pureftpd/sbin/pure-config.pl /home/pureftpd/etc/pure-ftpd.conf
:wq

root@localhost:[/home/pureftpd/etc/]%ln -s /home/pureftpd/sbin/pure-ftpd /usr/sbin/


四、查看启动参数

root@localhost:[/home/pureftpd/etc/]%/etc/init.d/pureftpd

Running: /usr/sbin/pure-ftpd -A -c50 -B -C8-D -fftp -H -I15 -lmysql:/etc/pureftpd-mysql.conf -L2000:8 -m4 -s -U133:022-u100 -j -k99 –Z

看到以上内容,说明启动成功

root@localhost:[/home/pureftpd/etc/]%ss -lanp | grep 21

技术分享

root@localhost:[/home/pureftpd/etc/]%ps -ef | grep pure-ftpd

root 98428 1 0 Mar14 ? 00:00:00 pure-ftpd (SERVER) 看到这里说明成功       root 108211 108009  0 11:34 pts/1 00:00:00 grep pure-ftpd

五、配置虚拟用户作为数据库映射和ftp目录

root@localhost:[/home/pureftpd/etc/]%groupadd ftpgroup -g 1000
root@localhost:[/home/pureftpd/etc/]%useradd ftpuser(创建的帐号)-g ftpgroup -u 1000 -d /dev/null -s /sbin/nologin
root@localhost:[/home/pureftpd/etc/]%mkdir /home/ftpdir
root@localhost:[/home/pureftpd/etc/]%chmod -R 755 /home/ftpdir/

六、数据库设置

root@localhost:[/home/pureftpd/etc/]%mysql -uroot -p (进入数据库)

技术分享

mysql> CREATE DATABASE ftpdb;
mysql> GRANT ALL ON ftpdb.* TO ‘pureftpd‘@‘localhost‘ IDENTIFIED BY ‘对应的密码‘; 
mysql>GRANT ALL ON ftpdb.* TO ‘pureftpd‘@‘localhost.localdomain‘ IDENTIFIED BY ‘对应的密码‘; 
mysql>FLUSH PRIVILEGES; 
mysql> USE ftpdb;
mysql> CREATE TABLE tp (
User varchar(16) NOT NULL default ‘‘,
status enum(‘0‘,‘1‘) NOT NULL default ‘0‘,
Password varchar(64) NOT NULL default ‘‘,
Uid varchar(11) NOT NULL default ‘-1‘,
Gid varchar(11) NOT NULL default ‘-1‘,
Dir varchar(128) NOT NULL default ‘‘,
ULBandwidth smallint(5) NOT NULL default ‘0‘,
DLBandwidth smallint(5) NOT NULL default ‘0‘,
comment tinytext NOT NULL,
ipaccess varchar(15) NOT NULL default ‘*‘,
QuotaSize smallint(5) NOT NULL default ‘0‘,
QuotaFiles int(11) NOT NULL default 0,
PRIMARY KEY (User),
UNIQUE KEY User (User)
) TYPE=MyISAM;
mysql>INSERT INTO `tp` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES (‘ftpuser‘, ‘1‘, MD5(‘secret‘), ‘2001‘, ‘2001‘, ‘/home/ftpdir‘, ‘0‘, ‘0‘, ‘‘, ‘*‘, ‘0‘, ‘0‘); (这步是向数据库中加入ftp帐号和密码)
mysql>exit; 退出数据库

表格说明:

技术分享

User:帐号名;status:0 表示帐号被禁用,无法登录服务器;
Password:密码,使用MD5加密;
Uid:前面创建的ftpuser帐户号,我们填写的是2001;
Gid:前面创建的ftpgroup组号,我们填写的是2001;
Dir:虚拟用户的个人目录路径,将在/home下创建(第一次登录);
ULBandwidth:上传文件限制速度,KB/s,0为不限制;
DLBandwidth:下载文件限制速度,KB/s,0为不限制;
comment:备注信息;
ipaccess:* 表示任意IP都可以访问此ftp服务器,输入具体IP地址可以只允许此IP连接服务器;
QuotaSize:用户磁盘空间分配,单位:MB,0表示不加限制;
QuotaFiles:用户可以保存的文件数量限制,0表示不加限制。

七、防火墙设置

root@localhost:[/home/pureftpd/etc/]% vim /etc/sysconfig/iptables
root@localhost:[/home/pureftpd/etc/]%cat /etc/sysconfig/iptables

技术分享

root@localhost:[/home/pureftpd/etc/]%service iptables restart

至此完全配置完成。


八、测试ftp服务器

服务器ftp目录文件

root@localhost:[/home/pureftpd/etc/]% ll /home/ftpdir
total 18020
-rwxrwxrwx 1 ftpuser ftpgroup 18451420 Mar 10 14:39 xyj3and_60005.apk

客户端连接测试

技术分享


本文出自 “昙花一现!” 博客,请务必保留此出处http://2475296.blog.51cto.com/2465296/1906801

centos 6.5 安装pure-ftpd + mysql