|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
写学习日记,这是学习历程的见证,同时我坚持认为是增强学习信念的法宝。以上是我学习Linux的心得体会,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。
在安装PureFTPd之前,要做好以下筹办事情:
1.安装FreeBSD4.9体系。
2.定制内核,在内核中到场“optionsQUOTA”以完成用户配额的撑持(注:其他*nix体系怎样完成,请列位本人搜刮完成。)
3.安装好APACHE+PHP平台,由于我们前面要用PHP_Manager完成用户在线办理。(注:关于这个安装的内容网上有良多教程,在FreeBSD下能够间接用PORTS体例安装就能够了。)
做好以上筹办事情以后,我们就能够入手下手进进真实的安装历程了。
(注:以下安装全体接纳PORTS体例安装)
1、安装Mysql
我安装的Mysql是4.0版本的,以是假如有最新人人也能够实验啊。
#cd/usr/ports/databases/mysql40-server
#makeinstallclean
安装完后发生启动剧本在/usr/local/etc/rc.d/mysql-server.sh
你能够运转以下命令,看Mysql服务是不是已启动。
#ls|grepmysql
假如有前往信息,就暗示Mysql已启动了,假如没有启动,运转以下命令。
#cd/usr/local/etc/rc.d
#./mysql-server.shstart
假如你要中断Mysql服务。
#/usr/local/etc/rc.d/mysql-server.shstop
确认服务启动后,我们来测试数据库运转是不是一般:
(注:默许情形下Mysql的用户是root,暗码为空,以是请当即登录Mysql修正root用户的暗码)
#mysql
呈现上面内容暗示运转一般。
WelcometotheMySQLmonitor.Commandsendwith;org.
YourMySQLconnectionidis16toserverversion:4.0.18
Typehelp;orhforhelp.Typectoclearthebuffer.
mysql>
输出exit加入Mysql。
为Mysql的root用户设置一个口令123456
#mysqladmin-urootpassword‘123456
设置完后我们再来测试一下暗码是不是失效了。
#mysql-uroot-p
Enterpassword:
呈现提醒暗码,输出准确暗码并回车。
假如呈现以下内容,暗示设置乐成。
WelcometotheMySQLmonitor.Commandsendwith;org.
YourMySQLconnectionidis16toserverversion:4.0.18
Typehelp;orhforhelp.Typectoclearthebuffer.
mysql>
假如呈现以下内容,暗示设置失利。(假如如许,你就惨了,哈哈)
ERROR1045:Accessdeniedforuser:root@localhost(Usingpassword:YES)
2、安装PureFTPd
1.上面我们入手下手安装PureFTPd,一样以FreeBSD的Ports体例安装。
#cd/usr/ports/ftp/pure-ftpd
#makeWITH_MYSQL=1MYSQL数据库撑持
WITH_LANG=simplified-chinese提醒笔墨为简体中文
CONFIGURE_ARGS=
--prefix=/usr/local/pureftpd安装目次
--with-paranoidmsg//唔....不知该怎样说.算是能够给特定人的信息吧.
--with-welcomemsg//撑持登录后的信息显现,我归正弄不定,哈哈
--with-uploadscript//当一个文件被完全上传完后主动呼唤某一script往对这个文件
处置.固然.这个script得你本人写.
--with-largefile//撑持下载凌驾2G的文件.
--with-cookie//利用者进站看到的东东.相似进站画面.
--with-virtualchroot//平安的chroot.
--with-virtualhosts//跟http的virtualhost有殊途同归之妙.
--with-virtualroot//假造root撑持
--with-diraliases//跟Serv-U下面的link功效一样.
--with-quotas//利用quota.(非体系下的quota)
--with-sysquotas//同意利用操纵体系的Quota(磁盘限额)
--with-ratios//高低传比率撑持.
--with-ftpwho//利用pure-ftpwho命令检察线上用户.
--with-everything//一切功效全上.(本人看着办吧)
--with-throttling//频宽可设限.
installclean
安装完后,就会在/usr/local目次下天生一个pureftpd目次,我们要利用的文件都在这个目次中。
2.上面我们入手下手设置pure-ftpd.conf文件
在这里我全利用默许值,只修正上面内容以撑持MYSQL。(注:Pureftpd能够同时撑持ldap,mysql,pgsql,puredb认证)
#MySQLconfigurationfile(seeREADME.MySQL)
MySQLConfigFile/usr/local/pureftpd/etc/pureftpd-mysql.conf
3.设置文件详解(摘自网上陈景峰所著《Pure-FTPd+LDAP+MySQL+PGSQL+Virtual-Users+QuotaHowTo》)
ChrootEveryoneyes
chroot每个用户,同等于Proftpd中的DefaultRoot~,能够限定用户在某个中央举动,加强服务器的平安性。利用过wu-ftpd的利用都应当晓得cd/会产生甚么!
TrustedGID50
#以上二者要一同用
BrokenClientsCompatibilityno
MaxClientsNumber50
#最年夜链接数
Daemonizeyes
#Forkinbackground以保卫历程体例在背景运转
MaxClientsPerIP5
#每一个ip最多链接数,最好设小点。
VerboseLogno
#是不是要把一切client真个指令都log上去
DisplayDotFilesno
#显现开首的文件
AnonymousOnlyno
#是不是只让匿名登录
NoAnonymousno
#不开放匿名登进
SyslogFacilityftp
#应当是对日记做一下过滤(auth,authpriv,daemon,ftp,security,user,local*)可让日记只纪录想要的信息
DontResolveyes
#不反向注释客户真个ip
MaxIdleTime5
#最年夜闲置rg
#LDAPConfigFile/usr/local/pureftpd/etc/pureftpd-ldap.conf
#利用LDAP认证,
MySQLConfigFile/usr/local/pureftpd/etc/pureftpd-mysql.conf
#利用MySQL认证
#PGSQLConfigFile/usr/local/pureftpd/etc/pureftpd-pgsql.conf
#利用PGSQL认证
#PureDB/ftp/etc/pureftpd.pdb
#利用者材料的DB寄存地址[因为我是用PureFTPD的冉DB.固有此选项]
#ExtAuth/var/run/ftpd.sock
#pure-authdsocket路径(具体请看README.Authentication-Modules)
#PAMAuthenticationyes
#开启PAM认证
#UnixAuthenticationyes
#假如你想要有复杂的Unix(/etc/passwd)的认证的
FortunesFile/usr/local/pureftpd/etc/.welcome
#显现的接待信息文件,你能够创立该文件,输出一些笔墨,然后你重启你的FTP服务,就会成心外的发明。
LimitRecursion20008
#ls最多列出3000个文件.最深8层
AnonymousCanCreateDirsno
#匿名用户能够创立目次
MaxLoad4
#当systemload凌驾4r.利用者将不克不及再下载
PassivePortRange3000050000
#主动毗连应对局限
ForcePassiveIP192.168.0.1
#不会译:(
AnonymousRatio110
#Anonymous毗连上传/下载比率
UserRatio110
#用户上传/下载比率(注:假如利用ldap,mysql,pgsql,pam不要启用该功效,不然你在ldap等中设置的Ratio无校)
AntiWarezno
#上传的文件不克不及被下载(ownerisftp).比及localadmin确认
Bind127.0.0.1,8021
#要绑定和ip/port,在你的体系中有两个FTPServer如许你个中一个FTP就要利用别的端口。
#格局->127.0.0.1,21假如只写port表Allip,port
AnonymousBandwidth8
#Anonymous带宽,单元KB/s
UserBandwidth8
#用户带宽,单元KB/s
Umask133:022
#上传文件的Umask.(<umaskforfiles>:<umaskfordirs>)
MinUID1000
#UID最少几才干登录
AllowUserFXPyes
#支不撑持FXP
AllowAnonymousFXPno
#Anonymous支不撑持FXP
ProhibitDotFilesWriteno
ProhibitDotFilesReadno
#(”.”)开首的文件能不克不及被读/写,UNIXLike下以点开首的文件是埋没文件lsCa才干列出
#PureftpdQuota形式下做发生”.ftpquota”文件。
AutoRenameno
#上传文件如有不异文件名主动更名(file.1,file.2...)
AnonymousCantUploadno
#匿名用户上传文件
TrustedIP10.1.1.1
#锁IP.
LogPID
#Log文件增加PID
AltLogstats:/ftp/etc/log/pureftpd.log
#log寄存地址,注日记有几种经常使用的格局
#clf相似apache格局,statsUNIXlog格局,w3c尺度W3C格局,多是HTML格局
NoChmodyes
#不给Chmod指令的权限
KeepAllFilesno
#利用者可续传.但不成h除文件
CreateHomeDiryes
#假如user的home不存在主动创建(我把这个设为YES)
Quota1000:10
#Quota<文件数>:<容量Megabytes>,FTP限定10M空间,能够上传1000个文件(注:假如利用ldap,mysql,pgsql,pam不要启用该功效,不然你在ldap等中设置的Quota无校)
PIDFile/ftp/etc/log/pure-ftpd.pid
#纪录pure-ftpd的PID文件
CallUploadScriptyes
#呼唤UploadScript
MaxDiskUsage99
#当硬盘利用率到几r将中断上传
NoRenameyes
#用户不克不及重定名文件名
CustomerProofyes
PerUserLimits3:20
#<每一个账号最多可登进几回:Anonymous最多可同r登进几回>
4.创立Mysql数据库中的FTP假造用户办理数据库ftpusers
将以下内容存为script.mysql文件
INSERTINTOmysql.user(Host,User,Password,Select_priv,Insert_priv,Update
_priv,Delete_priv,Create_priv,Drop_priv,Reload_priv,Shutdown_priv,Proces
s_priv,File_priv,Grant_priv,References_priv,Index_priv,Alter_priv)VALUES
(127.0.0.1,ftp,PASSWORD(123456),Y,Y,Y,Y,N,N,N,N,N,N
,N,N,N,N);
FLUSHPRIVILEGES;
CREATEDATABASEftpusers;
USEftpusers;
CREATETABLEadmin(
Usernamevarchar(35)NOTNULLdefault,
Passwordchar(32)binaryNOTNULLdefault,
PRIMARYKEY(Username)
)TYPE=MyISAM;
INSERTINTOadminVALUES(Administrator,MD5(123456));
CREATETABLEusers(
Userchar(16)NOTNULLdefault,
Passwordchar(32)binaryNOTNULLdefault,
Uidint(11)NOTNULLdefault2000,
Gidint(11)NOTNULLdefault2000,
Dirchar(128)NOTNULLdefault,
QuotaFilesint(10)NOTNULLdefault500,
QuotaSizeint(10)NOTNULLdefault30,
ULBandwidthint(10)NOTNULLdefault80,
DLBandwidthint(10)NOTNULLdefault80,
statusenum(0,1)NOTNULLdefault1,
ipaccessvarchar(15)NOTNULLdefault*,
commenttinytextNOTNULL,
PRIMARYKEY(User),
UNIQUEKEYUser(User)
)TYPE=MyISAM;
INSERTINTO`users`VALUES(kevin,MD5(123456),1001,2000,/home/kevin,500,30,
80,5);
先在Mysql数据库创建一个对数据库有操纵权限的用户ftp,暗码为123456。
再创立新数据库ftpusers,并新建两个表admin和users,往admin表中到场办理用户帐号,往users表中到场新的FTP用户kevin,暗码为123456。
然后我们运转以下命令来天生数据库ftpusers。
#mysql-uroot-ppassword<script.mysql
注重,-p是输出暗码,它和前面你输出的password中没有空格。
5.修正/usr/local/pureftpd/etc/pureftpd-mysql.conf设置文件
内容以下所示:
MYSQLServer127.0.0.1
#MYSQL服务器的IP
MYSQLPort3306
#MYSQL端标语
MYSQLSocket/var/lib/mysql/mysql.sock
#利用UNIX.sock当地毗连
注:MYSQLServer与MYSQLSocket选择一种便可
MYSQLUserftp
#MYSQLUser数据用户名
MYSQLPassword123456
#MYSQL数据库用户的暗码
MYSQLDatabaseftpusers
#FTP数据数据库
MYSQLCryptmd5
#暗码加密体例"cleartext","crypt","md5"and"password"
#cleartext明文,crypt,md5,password是Backendpassword(‘your-passwd)函数(MYSQL数据库所利用的password()函数)
MYSQLGetPWSELECTPasswordFROMusersWHEREUser="L"
#暗码字段,我利用users表中的Password做为暗码字段
MYSQLGetUIDSELECTUidFROMusersWHEREUser="L"
#UID用户ID字段
MYSQLDefaultUID1000
#默许的UID(注:怎样开启该选项,MYSQLGetUID将得到感化)
MYSQLGetGIDSELECTGidFROMusersWHEREUser="L"
#GID组ID字段
MYSQLDefaultGID1000
#默许的GID(注:怎样开启该选项,MYSQLGetGID将得到感化)
MYSQLGetDirSELECTDirFROMusersWHEREUser="L"
#FTP用户目次如/home/web/www-9812-net
MySQLGetQTAFSSELECTQuotaFilesFROMusersWHEREUser="L"
#磁盘限额,文件数限定。如1000,同意用户上传1千个文件
MySQLGetQTASZSELECTQuotaSizeFROMusersWHEREUser="L"
#磁盘限额,FTP用户空间限定(单元为M),如:100M
MySQLGetRatioULSELECTULRatioFROMusersWHEREUser="L"
MySQLGetRatioDLSELECTDLRatioFROMusersWHEREUser="L"
#上传/下载比率。MySQLGetRatioUL为上传比,MySQLGetRatioDL下载比。如:1:5
MySQLGetBandwidthULSELECTULBandwidthFROMusersWHEREUser="L"
MySQLGetBandwidthDLSELECTDLBandwidthFROMusersWHEREUser="L"
#下传/下载带宽(单元KB/s)。MySQLGetBandwidthUL上传带宽,MySQLGetBandwidthDL下载带宽。如上传500KB/s,下载50KB/s
MySQLForceTildeExpansion1
MySQLTransactionsOn
#不会翻译
修正好该设置文件后,我们持续。
6.运转PureFTPd
为了完成匿名登录,必要在体系中加一个ftp用户。
有了ftp.天经地义得也要有账号才行.
#vipw
ftp:*:2000:2000::0:0:ftp:/home/ftp:
/sbin/nologin
#vi/etc/group
ftpusers:*:2000:
操纵完后我们就增加一个ftp帐号属于ftpusers组,用户id和组id都是2000
启动PureFTPd
#/usr/local/pureftpd/bin/pure-config.pl../etc/pure-ftpd.conf
为了今后便利的举行Ftp服务的办理,我本人在/usr/local/etc/rc.d中新建了一个pureftpd.sh文件。
#vipureftpd.sh
#!/bin/sh
case"$1"in
start)
[-x/usr/local/pureftpd/etc/pure-ftpd.conf]&&
/usr/local/pureftpd/bin/pure-config.pl/usr/local/pureftpd/etc/pure-ftpd.c
onf>/dev/null&&
echo-npure-ftp
stop)
killallpure-ftpd>/dev/null&&
echo-npure-ftp
*)
echo"Usage:`basename$0`{start|stop}">&2
esac
exit0
设置该文件的可实行权限
#chmodu+xpureftpd.sh
今后能够用以下命令启动PureFTPd服务
#/usr/local/etc/rc.d/pureftpd.shstart
用以下命令中断PureFTPd服务
#/usr/local/etc/rc.d/pureftpd.shstop
测试FTP是不是一般了。
#ftp你的IP
Connectedto127.0.0.1.
220----------接待离开Pure-FTPd----------
220-您是第1个利用者,最多可达50个毗连
220-如今是当地工夫09:02。服务器端口:21。
220在15分钟内没有举动,您将被断线。
Name(127.0.0.1:kevin):kevin
Password:
230-利用者kevin有以下组的权限:ftpusers
230-这个服务器撑持FXP传输
230-OK.今朝限定的目次是/
RemotesystemtypeisUNIX.
Usingbinarymodetotransferfiles.
ftp>
祝贺你,你的FTP服务已一般事情了。
3、利用PHP_Manager举行用户办理
下载最新的PHP_Manager软件
#tarzxvfftp_v1.3.1.tar.gz
#mvftp_v1.3.1/www/path/data/ftp
#cd/www/path/data/ftp
#viconfig.php
修正config.php设置文件
$LANG=$ZH_CN;//你的PHP_Manager所用的言语
$DBHost=“localhost”;//你的Mysql服务器的Host
$DBLogin=“ftp”;//登录数据库的用户
$DBPassword=“123456”;//登录数据库的用户暗码
$DBDatabase=“ftpusers”;//完成假造用户办理的数据库的名字
$FTPAddress=“61.132.35.21:21”;//你的FTP服务的IP地点和端标语
然后利用网页体例登录办理。
http://你的服务器域名/ftp
办理员是administrator,暗码是123456,这在后面建数据库的时分能够修正的。
进进以后满是中文,不要我多写了吧。
祝人人康乐!
我已把PHP_Manager修正为撑持中文的了,现传下去给人人用。
http://www.linuxsir.org/bbs/attachment.php?s=&postid=578136
有关其他体系下的安装办法,能够参照陈景峰所著《Pure-FTPd+LDAP+MySQL+PGSQL+Virtual-Users+QuotaHowTo》
在这里你会学到更多的知识,学习linux,更要学习一种geek的精神,python之禅中也说过:以总结分享为荣,以跪求其解为耻; |
|