Cent OS Pureftpd 使用Mysql数据库进行管理用户

Pure-FTPd 
是一款免费(BSD)的,安全的,高质量和符合标准的FTP服务器。 侧重于运行效率和易用性。 它提供了简单的答案,他满足了大众化的需求,包括普通用户以及主机供应商们。
安装pureftpd
1、  由于pureftpd不存在于CentOS中yum的官方库中,所以用yum安装pureftpd需要定义非官方的库。
#wget http://mirrors.ustc.edu.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm
#rpm -ivh epel-release-6-8.noarch.rpm
2、  yum安装apache、pureftpd、mysql
[root@localhost ~]# yum -y install httpd httpd-devel php phpmyadmin php-posix
[root@localhost~]# yum -y install pure-ftpd mysql-server
3、  添加ftp用户组(ftpgroup)和用户名(ftpuser),为所有虚拟ftp用户映射。可以自己定义ftp用户组和用户名,还有空闲的用户id2001。
[root@localhost ~]# groupadd -g 2001 pureftp
[root@localhost ~]# useradd -u 2001 -s /sbin/nologin  -g pureftp pureftp
4、  编辑 /etc/pure-ftpd/pure-ftpd.conf 主配置文件
[root@localhost ~]# vim /etc/pure-ftpd/pure-ftpd.conf
修改116 # MySQLConfigFile               /etc/pure-ftpd/pureftpd-mysql.conf 将其# 去掉
修改343 “ #CreateHomeDir              yes ” 将其# 去掉
5、配置 php.in
[root@localhost ~]# vim /etc/php.ini
     short_open_tag = On         修改为On
6、 数据库操作
[root@localhost extra]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 41
Server version: 5.1.73 Source distribution
 
Copyright (c) 2000, 2013, Oracle and/or its affiliates. Allrights reserved.
 
Oracle is a registered trademark of Oracle Corporationand/or its
affiliates. Other names may be trademarks of theirrespective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear thecurrent input statement.
 
mysql>  CREATEDATABASE ftpusers;
Query OK, 1 row affected (0.00 sec)
 
mysql> USE ftpusers;
Database changed
mysql> CREATE TABLE admin (
    ->   Username varchar(35) NOT NULL default '',
    ->   Password char(32) binary NOT NULL default'',
    ->   PRIMARY KEY (Username)
    -> )TYPE=MyISAM;
Query OK, 0 rows affected, 1 warning (0.07 sec)
 
mysql> INSERT INTO admin VALUES ('Administrator',MD5('tmppasswd'));
Query OK, 1 row affected (0.00 sec)
 
mysql> CREATE TABLE `users` (
    ->   `User` varchar(16) NOT NULL default '',
    ->   `Password` varchar(32) binary NOT NULLdefault '',
    ->   `Uid` int(11) NOT NULL default '14',
    ->   `Gid` int(11) NOT NULL default '5',
    ->   `Dir` varchar(128) NOT NULL default '',
    ->   `QuotaFiles` int(10) NOT NULL default '500',
    ->   `QuotaSize` int(10) NOT NULL default '30',
    ->   `ULBandwidth` int(10) NOT NULL default '80',
    ->   `DLBandwidth` int(10) NOT NULL default '80',
    ->   `Ipaddress` varchar(15) NOT NULL default'*',
    ->   `Comment` tinytext,
    ->   `Status` enum('0','1') NOT NULL default '1',
    ->   `ULRatio` smallint(5) NOT NULL default '1',
    ->   `DLRatio` smallint(5) NOT NULL default '1',
    ->   PRIMARY KEY (`User`),
    ->   UNIQUE KEY `User` (`User`)
    -> )TYPE=MyISAM;
Query OK, 0 rows affected, 1 warning (0.05 sec)
 
mysql> INSERT INTO ftpusers.users VALUES ('archermind',MD5('archermind'),65534,31, '/usr', 100, 50, 75, 75, '*', 'Ftp user (for example)', '1', 0, 0);
Query OK, 1 row affected (0.00 sec)
 
mysql>

编辑 /etc/pure-ftpd/pureftpd-mysql.conf,将文本修改为如下

 [root@localhost ~]# vim /etc/pure-ftpd/pureftpd-mysql.conf


############################################################################
#                                                                          #
# PureFTPd MySQLconfiguration file.                                       #
# Generated by theinstallation wizard for the 'User manager for PureFTPd' #
# Seehttp://machiel.generaal.net for more info                            #
# or read theREADME.MySQL for explanations of the syntax.                 #
#                                                                         #
############################################################################
 
# Optional : MySQL servername or IP. Don't define this for unix sockets.
 
MYSQLServer     127.0.0.1
 
# Optional : MySQL port.Don't define this if a local unix socket is used.
 
# MYSQLPort       3306
 
 
# Optional : define thelocation of mysql.sock if the server runs on this host.
 
MYSQLSocket     /tmp/mysql.sock
 
 
# Mandatory : user tobind the server as.
 
MYSQLUser      root
 
 
# Mandatory : userpassword. You must have a password.
 
MYSQLPassword   archermind
 
 
# Mandatory : database toopen.
 
MYSQLDatabase  ftpusers
 
 
# Mandatory : howpasswords are stored
# Valid values are :"cleartext", "crypt", "md5" and"password"
# ("password" =MySQL password() function)
# You can also use"any" to try "crypt", "md5" *and*"password"
 
MYSQLCrypt      md5
 
 
# In the followingdirectives, parts of the strings are replaced at
# run-time beforeperforming queries :
#
# \L is replaced by thelogin of the user trying to authenticate.
# \I is replaced by theIP address the user connected to.
# \P is replaced by theport number the user connected to.
# \R is replaced by theIP address the user connected from.
# \D is replaced by theremote IP address, as a long decimal number.
#
# Very complex queriescan be performed using these substitution strings,
# especially for virtualhosting.
 
 
# Query to execute inorder to fetch the password
 
MYSQLGetPW      SELECT Password FROM users WHEREUser="\L" AND Status="1" AND (Ipaddress = "*" ORIpaddress LIKE "\R")
 
 
# Query to execute inorder to fetch the system user name or uid
 
MYSQLGetUID     SELECT Uid FROM users WHEREUser="\L" AND Status="1" AND (Ipaddress = "*" ORIpaddress LIKE "\R")
 
 
# Optional : default UID- if set this overrides MYSQLGetUID
 
#MYSQLDefaultUID 1000
 
 
# Query to execute inorder to fetch the system user group or gid
 
MYSQLGetGID     SELECT Gid FROM users WHEREUser="\L" AND Status="1" AND (Ipaddress = "*" ORIpaddress LIKE "\R")
 
# Optional : default GID- if set this overrides MYSQLGetGID
 
#MYSQLDefaultGID 1000
 
 
# Query to execute inorder to fetch the home directory
 
MYSQLGetDir     SELECT Dir FROM users WHEREUser="\L" AND Status="1" AND (Ipaddress = "*" ORIpaddress LIKE "\R")
 
# Optional : query to getthe maximal number of files
# Pure-FTPd must havebeen compiled with virtual quotas support.
 
# MySQLGetQTAFS  SELECT QuotaFiles FROM users WHEREUser="\L"
 
# Optional : query to getthe maximal disk usage (virtual quotas)
# The number should be inMegabytes.
# Pure-FTPd must havebeen compiled with virtual quotas support.
 
# MySQLGetQTASZ  SELECT QuotaSize FROM users WHEREUser="\L"
 
 
# Optional : ratios. Theserver has to be compiled with ratio support.
 
# MySQLGetRatioUL SELECTULRatio FROM users WHERE User="\L"
# MySQLGetRatioDL SELECTDLRatio FROM users WHERE User="\L"
 
 
# Optional : bandwidththrottling.
# The server has to becompiled with throttling support.
# Values are in KB/s .
 
MySQLGetBandwidthUL SELECTULBandwidth FROM users WHERE User="\L" AND Status="1" AND(Ipaddress = "*" OR Ipaddress LIKE "\R")
MySQLGetBandwidthDL SELECTDLBandwidth FROM users WHERE User="\L" AND Status="1" AND(Ipaddress = "*" OR Ipaddress LIKE "\R")
 
# Enable ~ expansion.NEVER ENABLE THIS BLINDLY UNLESS :
# 1) You know what youare doing.
# 2) Real and virtualusers match.
 
# MySQLForceTildeExpansion1
 
 
# If you upgraded yourtables to transactionnal tables (Gemini,
# BerkeleyDB,Innobase...), you can enable SQL transactions to
# avoid races. Leave thiscommented if you are using the
# traditionnal MyIsamdatabases or old (< 3.23.x) MySQL versions.
 
# MySQLTransactions On

附件: FTP web 管理界面,请放置/var/www/html 下。配置config.php 对应的数据库名、用户名、密码即可。


你可能感兴趣的:(mysql,pureftp)