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
客戶端連接測試