测试
n$QFj' sQw-#f7t 首先以root身份执行线程察看命令top,列表中应该有下面几个线程正在运行:
_+i-) E_P]f% PID USERNAME PRI NICE SIZE RES STATE COMMAND
BKk*<WMD $8)/4P?OL 69 root 2 0 440K 296K select natd # 网络地址转换进程
O{PRK5 ^h }V{,
kK 132 root 2 0 3692K 3052K select httpd # apache进程
iVRz 'J}lnt[V 166 mysql 2 0 27480K 4824K poll mysqld # mysql进程
9 +6"<r! H;8(y4; 在浏览器地址栏输入
http://192.168.0.1 ,如果显示apache的欢迎页面,证明web服务器安装成功!web页面文件存放在/usr/local/www/data目录中,你可以把自己的网页拷贝到这个目录,就可以访问自己的主页了!
|Cm}%sgR\0 (@zn[Nq 键入命令
%{Gqhb=u\ 5"+* c@L # mysql
a%kj)ah !jm
a -- 出现下面显示证明mysql安装成功!
G>b1No3%k 8}&cE#@ Welcome to the MySQL monitor. Commands end with ; or \g.
eF9LZ"-s [0$Y@ek[ Your MySQL connection id is 2 to server version: 3.23.52
`?:'_Ki 0)Z7U$ o?>)CAo N{'k
]& Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
zI(Pti Z'E@sc 9 9iUw7-) Uvp?HZ\Z mysql>
`&o|= GC~::m~ 键入exit退出mysql。
h W-[omr0 <]<50 m~v
Ie c EpiagCS 为mysql的root用户设置一个口令123456
xnArYm /cg!Ap5 # mysqladmin -u root password '123456'
5g=" # ],LOkAX 2:]Sy4K{ 0o#lB^e;l 现在我们来安装一个支持php+mysql的论坛。到
http://www.faeryboard.com/去下载完美版的仙境论坛程序。将下载的rar压缩包解开,然后使用ftp上传到/home/ylf/app目录。
5v]xk?Eb 6-o Qs? `
H"5nQRV NQb?&.C 事先备份web服务器演示页面
D^pAf/ek@i |:AjQ&PM) # cd /usr/local/www/data
T@L^RaPX ?h5Y^}8Qg # mkdir backup
wz ,woF| ]2<g"zo0 # mv * backup
~=71){4A fRbVc o,d:{tt 90q*V%cS 将论坛程序拷贝到/usr/local/www/data目录
[wExjLW BjShK+Y # cd /home/ylf/app/vbb2.3.0final
\(u P{,ML + 7Z%N9 # cp –r * /usr/local/www/data
uaS?y1:c ow&R~_ 编辑论坛配置文件
(Fu9lW}n 35ng_,t$ # vi /usr/local/www/data/admin/config.php
_|F h^hq u+]zi"k^s 内容如下
]$7|1-&Y =[P || ^M
MT3UJ6 ~P rC'97`!K /////////////////////////////////////////////////////////////^M
g}f@8;TY g,.iM8 // Please note that if you get any errors when connecting, //^M
wBr0s*1I Z$q}y
79^ // that you will need to email your host as we cannot tell //^M
Ay{4R /rquI y^ // you what your specific values are supposed to be //^M
#PiW\Tq 6pH.sX$!_ /////////////////////////////////////////////////////////////^M
2nf{2edC Y,+$vj:y8 ^M
)!0>2,R1 U+\\#5$ // type of database running^M
uG/Zpi S2`p&\Ifn // (only mysql is supported at the moment)^M
Ts.61Rx oRCj]9I$ $dbservertype='mysql';^M #数据库类型
|'Jz(dv[
OH&&d=~ ^M
1vX97n<} FN G] // hostname or ip of server^M
um[.r,++ w|N LK $servername='localhost';^M #主机名
3t8VH`!mL{ lLnD%*03 ^M
i`X/d= 1Ztoj}!I // username and password to log onto db server^M
.8k9yk O5E \#*<K $dbusername='root';^M #登录数据库用户
%kF6y_h` D&.+Dx^G $dbpassword='123456';^M #密码
LnLuWr<;} t1D6#JP(a ^M
@xmL?wz 7%C6gU!r // name of database^M
BYRf MtT@+ SI-s:%O $dbname='fin230';^M #论坛所使用的数据库名称
M-eX>}CDm ?xIwQd0 ^M
`Os@/S ) !3sB{H // technical email address - any error messages will be emailed here^M
V4_ZBeWA E-CZk_K9 $technicalemail='
webmaster@yoursite.com';^M #管理信息
wPyfne?~, :
xW.(^(d ^M
6m?}oMz U4Il1|
M& // use persistant connections to the database^M
:Oxrw5`= h(ZZ7(ue // 0 = don't use^M
{"-uaH>, 3b~k)t4R // 1 = use^M
X"*pt5B6` l7\Bq+Q $usepconnect=1;^M
I_\j05 ih~ R?W ^M
!?,rcgi x:G uqE ?>
qEE
V& NU O9, (完)
%A%^;3@ T-0fVTeN ~~z}yCl Re-4y5f 除了root用户的密码需要添入外,其他部分可以不改。
"H#2 8do-z"- 保存后,在浏览器地址栏输入
http://192.168.0.1/admin/install.php ,根据提示一步步安装即可。
.O@T#0&=_ Zh,(/-XN; 安装成功后,在在浏览器地址栏输入
http://192.168.0.1 ,就可以看到论坛了!怎么样,挺漂亮吧!关于论坛的其他问题,请仔细看论坛安装包里面的说明文档,或者到仙境论坛的主页,那里有仙境论坛的一切!
]%pr1Ey 8a)lrIg 下一节,我们要讨论关于虚拟主机的问题。
4'[/gMUkw s>ilxLSX] n2cb,b/7 icH\( 配制虚拟主机:
^i:%0"[*^i qi!+Ceo} Apache的虚拟主机支持有两种方式,一是基于用户访问Apache主机时所使用的域名,另一种是通过指定IP地址来提供。这里我们只介绍如何通过不同的域名来实现虚拟主机的支持。
5NHNnDhuL G?*)0`~W 要实现基于域名的虚拟主机的前提条件是必须有两个域名同时指向Apache主机的IP地址,这里我们假设这两个域名分别是www01.3322.org和www02.3322.org ,这两个域名的文档都分别放置于 /home/www01 和 /home/www02这两个目录内,同时这两个目录已经设置好权限,对于目录让所有的人都可以读取、运行,对于文件,让所有的人都可以读取。
lG6P+ Z/nf 'a[|' 以下是具体的配置过程:
t[ cHdI .]24V!J(1w 首先到希网去注册2个域名。然后为这2个域名分别建立文档目录
d[=~-[ JYc;6p$<i # mkdir /home/www01
R ` c <Fr^8 # mkdir /home/www02
^\KZE|^3@ >8PGyc*9 vq=nG]cE) d0YDNP%,_ 编辑apache的配制文件httpd.conf
muc6gwBp 54r/s#|-3 # vi /usr/local/etc/apache/httpd.conf
q8#zv_>K n3y`='D 在文件最后找到下面2行
Yv>kToa\^ @Jr:+|v3B MfNsor SJ8Ax_9{q +VT/c C%H{" =#0f4z F=EG#<@u juIi-*R! OXp(rJ*bK 在2行中间添加如下内容:
#q?'<''d, 9X/]O<i,Es NameVirtualHost * # 指定运行虚拟主机服务的主机ip地址
Kjzo>fIC{ PUcxlD/a} # 静态ip方式可以将*替换为你的ip地址,动态ip直接用*即可
gjFpM.D-. 2+s#5K&i Q,v/]bXd eI%9.Cx#I @S9^~W3G3 <<w*_GM ServerAdmin
webmaster@www01.3322.org #指定WEB管理员的邮箱
}2%L
0 As{ "B DocumentRoot /home/www01 #指定本虚拟主机的文档目录
QNWGUg4*& 5Q7Z$A1a
9 ServerName www01.3322.org #指定本虚拟主机的域名
C8Ja>o2' rel_Z..~ ErrorLog /var/wwwlogs/www01.3322.org.error.log #指定错误记录应该存放于那里
h(C@IIO^;G 4]G J+a CustomLog /var/wwwlogs/www01.3322.org.log common #指定常规记录应该存放于那里
FJQ=611@ Uhs/F:E[A 4Dy|YH$>S duQ,6 TAB'oLNp 1
K(0tG:5 sD#*W< m)Ta5w^ ServerAdmin
webmaster@www02.3322.org 3LRBH+Tt ^m
Ua5w DocumentRoot /home/www02
6U9FvPJ 1Be/(pSc ServerName www02.3322.org
m941 Y WF] |-)vw ErrorLog /var/wwwlogs/www02.3322.org.error.log
ghGpi U$ pF/s5z CustomLog /var/wwwlogs/www02.3322.org.log common
q{Ao
j g>E.Snj} k@Qd:I;; &ea6YQ (完)
DrK@y8 #?"^: ,Y OMfw# ,J(shc_F 创建/var/wwwlogs目录
Y6G`p PCx: # mkdir /var/wwwlogs
HjCe/J ; eHb@qKnf 重新启动apache
twMDEw#VL [,L>5:T # /usr/local/etc/rc.d/apache.sh stop
T].Xx` zb3,2D+P # /usr/local/etc/rc.d/apache.sh start
i"#pk"@` Yz)+UF, 分别在/home/www01和/home/www02目录拷入不同的网页文件进行测试,注意主页名称必须是index.html或index.php
^u(-v/D9 " %
l`` [>D5(O E5q t~:C| 测试
IN_O!c0e Z H2 确认注册的2个域名已经指向了你的主机ip。
}2h! XM f>B| 在浏览器地址栏输入域名
http://www01.3322.org 和
http://www02.3322.org ,如果分别显示你拷入的主页证明虚拟主机配置成功!
BdrYc^?JL] x3:d/>b ZiW&*nN?M
i^@hn>s$ 利用上面的方法我们可以建立更多的虚拟主机,甚至对外提供主页空间服务!
|@5G\N - `*WzHDv5p ^P|Zze
zwU }_=h]|6t 如果要对外提供虚拟主机服务,需要为使用者提供ftp上传功能。下一节我们将讨论如何通过Proftpd1.2.7+proftpd-mod-quotatab-1.2.4+mysql实现带有空间限额和数据库用户验证功能的ftp服务器。
NY?pvb 'i<%kL@ &'k:?@J[ $MqEM~^= 第四步:安装配置ftp服务器
!K6:5V%q$ ";jKTk7 h0] bIT{ ' ""s%C+ 由于为每一个需要使用ftp服务的用户建立系统帐户会影响系统的安全,所以我们使用数据库用户进行ftp用户验证。
.B?fG)'WsF cHC1l 系统组成:Proftpd1.2.7+proftpd-mod-quotatab-1.2.4+mysql
GXi)3I% 6zIK%< 因为ports里没有proftpd-mod-quotatab-1.2.4模块,我们下载源代码安装。
7jw5'`;)" )>tT""yEl 下载源代码包:(必须下载相同版本的源代码包)
%/2OP &1< l?A~^4(5a/ 到
http://www.proftpd.org 或
ftp://ftp.servus.at/ProFTPD/distrib/source/proftpd-1.2.7.tar.gz/。
[]doLt;J s.^+y7$ 到
http://www.castaglia.org/proftpd/ 去下载proftpd-mod-quotatab-1.2.4.tar.gz。(1.2.5 版本的mod_quotatab是用在1.2.8rc1上的)
Th
X6e .oM;D~(=9 用ftp将它们上传到/home/ylf/app目录。
vRb7=fXf lWDSF]ZYV 然后解压缩源代码包
}Te+Rv7{E 'w0?- # cd /home/ylf/app
Rrrq>{D {A~3/M%74; # tar zxvf proftpd-1.2.7.tar.gz
j-d542" 5 qMP u|A # tar zxvf proftpd-mod-quotatab-1.2.4.tar.gz
tzY?LX[3 @1~cPt
进入mod-quotatab目录
XVF!l>nE 5Y 7 %Z # cd mod_quotatab
H2'djZ $F1Am% 把mod_quotatab中的文件拷贝到proftpd 中的modules 目录中
+7{8T{ oT|:gih5 # cp * ../proftpd-1.2.7/modules
\0K&2' M< H+$}[ 'U,\5jj'Y \!"3yd 在开始运行configure之前,我们要先改动一个文件
Wo Z@ ]E.\ |I( 进入 proftpd-1.2.7/contrib 目录
{Y3:Y+2X3* kZ;Y/DH # cd /home/ylf/app/proftpd-1.2.7/contrib
cqaq~ OepQ Z|2 修改 mod_sql_mysql.c
Gzp*Vr v%kl*K`* # vi mod_sql_mysql.c
X/buz tkmzOc H 找到#include 把他该为你实际路径,这里是:
/]?e^akA e~SRGyIww #include
r)B55;*Fh XT\2 w4FYd 3lbGG42: 然后编译安装
<E:_9#Z0sc R[kF(C& # cd /home/ylf/app/proftpd-1.2.7
b\t?5z-Z _$/Bt?h #./configure --prefix=/usr/local/proftpd --with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql --with-includes=/usr/local/include/mysql --with-libraries=/usr/local/lib/mysql
Nxt`5kSx= Uu|2!}^T # make
4b+_|kYb VR'zm\< D # make install
>%5GMx>m lt yhYPS s)Xz}QPK. ']d(m? 进入到proftpd配置文件所在目录
o=-Af|#b 2*V]jO # cd /usr/local/proftpd/etc
!?sB=qo Vh^ :.y 备份原配置文件
qoZe<jW ( 2V~uPZ # mv proftpd.conf proftpd.conf.bak
m{&lU@uL
E2tUL# 然后编辑新的配置文件proftpd.conf
]K+8f- 3v&Shb?xb; # vi proftpd.conf
oFhBq0@ N!Xn)J 我的proftpd.conf内容如下:
"([lkn 3m~,6mQ Q[FDk63;w I+`>e*:@W # This is a basic ProFTPD configuration file (rename it to
P
F);KQ 2km0 # 'proftpd.conf' for actual use. It establishes a single server
TxH
amI l og_ylCh: # and a single anonymous login. It assumes that you have a user/group
: rudo[L 'UTMEN& # "nobody" and "ftp" for normal operation and anon.
b>9?gmR{ 7q{yLcC" ^F-2tc '@zMZc! ServerName "ftpx.3322.org"
<tm= o?+?@Xb' ServerType standalone
DHbS=Iih n<F3&2w DefaultServer on
ItVVI"- E>:#{% 'e6J&X WEoD?GLS8 # 用户登陆时不显示ftp服务器版本信息
8Pva ]Q 7jr+jNsowj ServerIdent off
hu7oJ H 8Q0/kG +: Nz_l |,({$TrF # Port 21 is the standard FTP port.
9{rE7OX*A F6\4[B Port 21
7\ X_%SM % fF2]7: mRt/d :fUNc^\2 # Umask 022 is a good standard umask to prevent new dirs and files
U lCw{:#F r9<#R=r)}J # from being group and world writable.
4q?R 3\e; "`mG_qHI[ Umask 022
tOZ-]>U P)~olrf sn
Ou O>i]*V MaxLoginAttempts 3
b?<@ QWWI TimeoutLogin 120
crx%;R |QQ(1#d TimeoutIdle 600
rl2(DA{ V2:S
9vO' TimeoutNoTransfer 900
I|2dV9y
Y=H_U$ TimeoutStalled 3600
.bRtK+}F# Q=Q&\.< -Vs;4-B{9 =>&~p\Aw MaxClients 100
QyrB"_dm *|cs_,3 o#D'"Tn! l\2"u M#7 #设置每台主机最多并发连接数
F>?~4y,b7 "*TP@X?@f MaxClientsPerHost 3
,Ww.W'#P bIzBY+P &'/bnN +R 1uEM;O AllowOverwrite no
P,#l~ \ s!]QG AllowStoreRestart on
LG{50sP` $O fZp<M UseReverseDNS off
.&Sjazk0XO .4Mc4' 0LTsWCUQ6e a=sd&](_ #设置如果shell为空时允许用户登录
"|N0oEG& U.=TjCW RequireValidShell off
U} Pr1 B7S)L#l_\ bU}l*" iszVM #将用户限制在自己的主目录下
S2 P9C" LaL{
^wP DefaultRoot ~ ftpusers
rKTc6h:) f:AfM f>m DefaultRoot ~ FTPGRP
X|4Kdi.r@ tiRi_ J/rF4=j%xy <"S`ZOn # To prevent DoS attacks, set the maximum number of child processes
j9}.U \ c0_512 # to 30. If you need to allow more than 30 concurrent connections
H2+V1J= -k%|sqDZj # at once, simply increase this value. Note that this ONLY works
ACI.{`SrQ= ?\<Kb|Q # in standalone mode, in inetd mode you should use an inetd server
\ >#y*W< zQB1C # that allows you to limit maximum number of processes per service
T:!H^ fF5\\_, # (such as xinetd).
"y ;0}9]n1 XAB/S8 e MaxInstances 30
#8%~ u+"N 821
6_Qm P`
Gb}]rW 0OnqKgf # Set the user and group under which the server will run.
roIc1Ax: a,:Nlr3 User FTPUSR
Sg(\+j= _+Uf5,.5yU Group FTPGRP
eMP0BS" Bi0&F1ZC! vCtnjWGX}/ mAe)Hy % # Normally, we want files to be overwriteable.
1R]h>' q 1A0-W#4 bOr6"nn hy3?. AllowOverwrite on
I@1VX5 yJ(ITJE_Z H.O&seY ir_X65l/2 Nig)!4CG <[17&F0 # A basic anonymous configuration, no upload directories.
!3"Hn
D6'-c# # 匿名登录设置。匿名用户目录为/ftp
o KY0e&5 2W/*1K} l5U ^lc wFJ*2W: User ftp
y)7;"3Q< = d !YM6G Group ftpusers
C`aUitL} .]; ` R1/mzPG y p pZ@ # We want clients to be able to login with "anonymous" as well as "ftp"
vtq47i WmblY2 UserAlias anonymous ftp
vs*@)'n0 } j$k/oQ kP&Ekjt@ Ft @ZK!'@ # Limit the maximum number of anonymous logins
yq` ,) `CG% Y>+ MaxClients 10
O5JG!bGE_F q=k[]vD :eSwXDy& TezwcFqH # We want 'welcome.msg' displayed at login, and '.message' displayed
Xs)?PE[ )!sjXiC!h # in each newly chdired directory.
?!bA#aSbl5 wNl "y DisplayLogin welcome.msg
8]J lYe "g1Fg.o DisplayFirstChdir .message
W"s)s D Z=OZ.v Gx(%AB~9$ ahw0}S # Limit WRITE everywhere in the anonymous chroot
iv6bXV'N t k+t3+ #
.b<wNUzP _2xYDi # DenyAll
^ E3 HY@j QhPpo#^ #
'~pZj"uy ^!K 8nW{* E{'\(6z_ J*qo3aJjE / KKA/ A$]#f ^>h2.AJ 21~~ =+)X #数据库联接的信息,FTP是数据库名,localhost是主机名,root是连接数据库的用户名,#123456是密码(如果没有密码留空)
.1[pO_ U5j0i] SQLConnectInfo FTP@localhost root 123456
N0(($8G XK
yW ?WrL<?r)}U inyS 4tb #数据库认证的类型
?MJ5GVeH ^NO;A=9b[ SQLAuthTypes Backend Plaintext
1<wolTf L$; gf_L d)v!U+-|' R)9FXz$). #指定用来做用户认证的表的有关信息。("FTPUSERS"和"FTPGRPS"是数据表名字,等一会
>V@,K z1 w%kaM= #在下面建立)
%&4\'lE dkOERVRe SQLUserInfo FTPUSERS userid passwd uid gid homedir shell
PjU.4aZ *G,r:Bnb SQLGroupInfo FTPGRPS groupname gid members
kk/vgte-)e cqb]LC z9^_5la# 2Zi&=Zj" #数据库的鉴别
@C5%`{\ %* @hS` SQLAuthenticate users groups usersetfast groupsetfast
p;{w0uld" P/8z fU4{4M+9" '59l. #如果home目录不存在,则系统会根据它的home项新建一个目录
liVDBbS_A? 3$kElq[ SQLHomedirOnDemand on
bt?)ryu ~;nW+S$o
7`K)7 9S)A6] #启用磁盘限额
_2Fa.gi b'4r5@GO QuotaDirectoryTally on
#pX +~{ 'Ie!%k ^ -o sxKT: qAuq2pHA+d #磁盘限额单位 b"|"Kb"|"Mb"|"Gb"
v5`Odbc=w Tq5F'@e QuotaDisplayUnits "Kb"
A;Uw
b Py#iC#g~ IV$2`)[A&X axd9b, QuotaEngine on
ps=QVX)YP g?!;04 7R".$ p ,
-S n #磁盘限额日志记录
o`[X _ ?a-}1A{
QuotaLog "/var/log"
XBHv V05mv }i2dXC/ WFpR@53Db ktK/s!bgY # 打开磁盘限额信息,当登陆FTP帐户后,使用命令 "quote SITE QUOTA" 后可显示当前用#户的磁盘限额
0d=<^wLi^ v:@ud,d< QuotaShowQuotas on
R$VeD1n@ }F
(lffb +PkN~m` \(xQ'AQ- #SQL调用语句,不用修改
7)au#K6 Cl3hpqv1I SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail,files_in_avail, files_out_avail, files_xfer_avail FROM quotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"
c)=UX_S! k3t2{=&'&x [0hZg 7$I *ju_ SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
.AZ+|?d %q,^A+= j~rarR@NB) }sS1p6z SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" quotatallies
WnC0T5S?U f= l*+QY8f U*em)/9 78<QNlKn SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" quotatallies
&0S/]E`_M -qRO}EF ;:pd/\< {v}jV{'^um QuotaLimitTable sql:/get-quota-limit
EAjo>GLI "Q<*H<e QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
_7w2E yj{:%Km:` (完)
98eS f T2MX_rt#D {p@uj_pS j\8'P9~% 下面为ftp用户建立相应的数据库和表
EM.rO/qcW uDi#a~m@ 进入mysql数据库命令状态:
V/7?]?!xu prg8Iq'w # mysql –p
@Ao E> jj 9eFB 提示输入密码
"t"&6\ ~j2=hkS
H@WQO]PA QabYkL5@ 建立数据库FTP(注意大小写和每句话后面的“;”)
abM4G XD\Z$\UJE CREATE DATABASE FTP;
CDM==Xa* \M`fkR,,' 4\yKd8I 1)m&6:!b 然后在这个数据库中建立一个用户表FTPUSERS,这个表是必须的:
C\dlQQ OT5'c l use FTP;
BV
HO_ 2nPU $\du &vp0zYd+v 3 eFBe2 create table FTPUSERS (
; i><03 emI]'{_G userid TEXT NOT NULL,
7eg//mL"6 L&nGjC+Lr passwd TEXT NOT NULL,
VCvqiHn oWUDTio#[ uid INT NOT NULL,
RycO8z*p 8; s$?*Gi gid INT NOT NULL,
|!{BjOAD' bz?
*#S homedir TEXT,
d.&~n`Rv!p M^^u{);q shell TEXT
%7?v='s= OAQ'/{~7 );
,FPgbs vv,(ta@t2 $'Hg}|53 TGz5t$]I 此表格是为了用户认证所需要的,其中userid、passwd是必不可少的,userid是用做FTP服务的用户名;passwd是指此用户的密码;uid是系统用户的ID,也就是所映射的系统用户;gid是所属系统组的ID;homedir是该用户所在的HOME目录;shell可以为该用户指定相应的shell。当然你可以建立更多的字段,例如:用来记录用户登录次数的count,或者是日期的date,如果你对配置熟悉了之后,你可以根据自己的喜欢添加更多的功能。在此就不多讲。
?iBHJ{ Aq{m42EAj P!";$]+ _9Ig`?<>I 如果需要更多的功能,可以添加另外一个需要的表:FTPGRPS,也就是确定组的表格,当然也可以不用,这里讲一个它的格式:
f(E 'i> rXz,<^Hmj create table FTPGRPS (
}f6x> 7M1*SC groupname TEXT NOT NULL,
T<0Bq"'% :q4Mnr gid SMALLINT NOT NULL,
"zO+!h'o i4"xvLK4 members TEXT NOT NULL
FBPT@`~v #+eV5%Si );
wWflZ"% O"mU#3? 其中groupname是组的名称,gid是系统组的ID,members是组的成员。注意:多成员,他们之间要用逗号隔开,不能使用空格。
ASLRP O!uB|* ~I>B5^3 U9xFQ=$2 为FTP用户建立相应的系统用户。
@]HV:7<q JqH2c=}- 在本例中,将整个FTP服务只提供一个有效的系统用户FTPUSR和组FTPGRP,当然你也可以设置多个系统用户。但出于安全的考虑,我只设一个,用他来启动FTP daemon,并把所有的FTP用户映射过这个用户。
OX4+1@$tk EQ>bwEG .-N9\GlJ,d *#;rp~ 先建立FTPGRP组:
um&e.V)N B%9[ # pw groupadd FTPGRP -g 2001
}h>e=< w|PZSOJ 建立FTPUSR用户:
xZmKKKd0* /BVNJNhz # pw adduser FTPUSR -u 2001 -g 2001 -d /home/FTP -s /sbin/nologin
b,G+=&6u Bd"7F{H FO}4~_W{ zq]V6.]J 为FTPUSR建立HOME,把所有的FTP user 活动空间全放在此目录下:
b\?#O} 3<msiCP # mkdir /home/FTP
{R,rc!yF v.v3HB8p # chown FTPUSR /home/FTP
n@g[VR2t W^&t8d2 # chgrp FTPGRP /home/FTP
{\ziy4<II 4!6g[[|&J Q;5'I3w k<W]VS3N 下面为磁盘限额建立数据表:
ld[]f*RuW NnSI=M # use FTP
Dl/UZ@8pl c e=6EYl CREATE TABLE quotalimits (
miHW1h[= zAB-kE\) name VARCHAR(30),
[;5HI'px qg6Hk:^r quota_type ENUM("user", "group", "class", "all") NOT NULL,
,l7ty#j 6aQ{EO-]'= per_session ENUM("false", "true") NOT NULL,
_zm<[0( =$Q3!bJ limit_type ENUM("soft", "hard") NOT NULL,
,-DE;l^Q= JEBo!9 bytes_in_avail FLOAT NOT NULL,
"Jnq~7] ^"+cJ) bytes_out_avail FLOAT NOT NULL,
AD?^.< rT}d<cSf bytes_xfer_avail FLOAT NOT NULL,
o`j%$K4?5 o<l4}~a files_in_avail INT UNSIGNED NOT NULL,
N??<3j+Iu T*h+"TmE files_out_avail INT UNSIGNED NOT NULL,
>cMU<'& a9jY^E'|n files_xfer_avail INT UNSIGNED NOT NULL
p7H*Ff` >Q5E0 !] );
^ad>
(W 6o A0a\G' 9R;s;2$. zLXtj- CREATE TABLE quotatallies (
7P|(j<JX6' S8,+6+_7 name VARCHAR(30) NOT NULL,
`O}.
.N]g &|E2L1 quota_type ENUM("user", "group", "class", "all") NOT NULL,
{/0,lic vW)GUAF[ bytes_in_used FLOAT NOT NULL,
p6}jCGJ oS,<2Z bytes_out_used FLOAT NOT NULL,
,}FYY66K NKd@Kp`, bytes_xfer_used FLOAT NOT NULL,
7 cIVK}& )s=z i" files_in_used INT UNSIGNED NOT NULL,
tfv]AC7x Tu/JhP/g,` files_out_used INT UNSIGNED NOT NULL,
l3iL.?&Pa 053W2Si files_xfer_used INT UNSIGNED NOT NULL
l1W5pmhK]' m_Fw;s/9 );
dEe/\i'r9 eIqj7UY_ bNaJ{Dm$R 4a2&kIn 说明一下,quotatallies表不需要作修改,它记录了用户当前的磁盘使用情况,由程序自动记录
KP<J~+_ik @Qc['V) 要注意的是quotalimits 表中一些字段的含意
^jmnE.8R /
V{w< quota_type 磁盘限额的鉴别,可以设置单个用户,也可以设置一个组中的全部用户,还可以设置全部用户
0U/:Tpyr IG9Q~7@ bytes_in_avail 上传最大字节数,就是FTP用户空间容量 (设置这个字段的时候是以byte(字节)为单位,如果要限额在10M,那就是10240000,下面也一样)
q75F^AvH 09%eaoW bytes_out_avail 下载最大字节数,需要注意的是,这个字段中记录的是用户总共能从服务器上下载多少数据,数据是累计的。
?pF;{ \
I?;% bytes_xfer_avail 总共可传输的文件的最大字节数(上传和下载流量)需要注意的是,这个字段中记录的是用户总共能传输文件的最大字节数,数据是累计的。
x(=kh%\; ap6Vmp files_in_avail INT 总共能上传文件的数目
Aoo'i jZ{S{"j files_out_avail INT 能从服务器上下载文件的总数目
|[{;*wtv GO?-z 0V files_xfer_avail INT 总共可传输文件的数目(上传和下载)
"]N QTUb;
40c#zCE xd .I5 QOF;j#H^ 测试
+tV(8h4 UxS;m4 首先停掉inetd的ftp服务
o"]eAQ $&e(V6A@ # ps ax|grep inetd
xY~
DMcO? ,^<+5TYM7 得到inetd的线程号
f$Ap\(. mJsYY,b8 # kill 得到的线程号
Iiy:<c 1I@4xC
#X M5x!84 pz$$K? 启动proftpd
NqwVsVL v;RQVH;, # cd /usr/local/proftpd/sbin
KqS2 h?ia4t # ./proftpd
Fb``&-Qm: ~.@fk}'R 如果出现错误提示可以进入proftpd的调试模式进行调试:
.nSupTyG Z956S$gS # ./proftpd -n -d 5 -c /usr/local/proftpd/etc/proftpd.conf
Qrt8O7&(' iZSSd{jO proftpd就会将调试信息打印到consle上以供调试之用。
XsG]-Cw _L=vK=, Ov<3?)ok xLD6A5n,[ 添加一个测试用户并为他设置磁盘限额
*xl7;s ROjjN W`W use FTP
6Ss{+MF|v }agl:~C g-:)}8d6 kK1qFe?] 添加用户
Ffxk] o&%c qIqk@u INSERT INTO FTPUSERS (userid, passwd, uid, gid, homedir, shell)
Y(:OfC? O)5PUyC:H valueS ('user1', '999999', '2001', '2001', '/home/FTP/user1', '' );
3w9
]@kU M|v.5l# =3zn
Ta } @NHRuk+ 设置磁盘限额
&=?`;K eB\r/B] 将上面建立的user1帐号给予10M空间,最多能上传500个文件到服务器上,文件传输流量为20M,只能传输10个文件。
"aBd0i& z67=v9+7 INSERT INTO `quotalimits` ( `name` , `quota_type` , `per_session` , `limit_type` , `bytes_in_avail` , `bytes_out_avail` , `bytes_xfer_avail` , `files_in_avail` , `files_out_avail` , `files_xfer_avail` )
fhY[I0;}$ 3H%HJS VALUES ('user1', 'user', 'false', 'soft', '10240000', '0', '2048000', '500', '0', '10');
_5K_YhT R^2Uh$kk{A 不需要设置的部分用0代替就可以了。
"{Be k< o5D" <-=> H4m6H)KOG b$
x"&& 在windows提示符下登录ftp服务器。输入用户名user1,密码999999
~`})x(! X<m%EXvV c:\> ftp 192.168.0.1
xk*3,J6BK !Q(xOc9>Ug h/fCCfO, kr*c?^b 运行quote SITE QUOTA显示当前用户的磁盘限额
QB.'8B_
{''|iwLr ftp> quote SITE QUOTA
B![5+ 'iVo,m[yKU 200-The current quota for this session are [current/limit]:
BH-[q9pf *QG3 Jz Name: user1
YMi(Cyja& }]~}DHYr Quota Type: User
NqZRS>60v '<0q"juXE Per Session: False
q%k+x) )a^Yor)o" Limit Type: Soft
bSr 'ji 6oP{P_Pxi Uploaded Kb: 0.00/10000.00
h3kHI?jMWG tRy
D@} Downloaded Kb: unlimited
FR}H$R7# .?p}: Transferred Kb: 0.00/2000.00
ZW?7g+P UTTC:=F+ Uploaded files: 0/500
FqTkUWd,# jOb[h=B" Downloaded files: unlimited
nP3GI:mjL |w JZU Transferred files: 0/10
YF -w=Y6 <nvWC/LU 200 Please contact
root@wwwx.3322.org if these entries are inaccurate
?fmt@@]T? z/YMl3$l~ &5.~XM; Hk]BC 数据库用户验证和磁盘限额测试成功!
tqQ0lv^J 2\w=U,;( 8`G{1lr4o 30_un 另:如果添加了FTPGRPS表,也可以为此添加记录,不过一定要注意在members的字段多个成员一定要用逗号隔开。
MA+-2pMc|7 ^-IsK#r.k INSERT INTO FTPGRPS VALUES ('FTPGRPS', 2001, 'FTPUSR');
^2r}_AX kppRQ Q*[ +?iM$}8!U <s-@!8*( 关于匿名登录:
Uxemlp%%* ,8IAhQa 本文的ftp服务器提供了匿名登录服务。对于匿名登录用户,我专门在硬盘上划分了一个2G的分区/ftp,所有的匿名用户文件都放在这个单独的分区里。
qP"JNswI_ JQ_gM._3 {%_j~ 5(|M["KK~ 添加匿名系统用户组ftpusers和匿名用户ftp
-WUYE , Ln
# pw groupadd ftpusers
u-[t~-(a QWHy=(! # pw useradd ftp -g ftpusers -d /ftp -s /sbin/nologin
,GX~s5S8 @E}X-r.^f 如果ftp用户已经存在使用如下格式
#tZf>zrs A'(7VJ # pw usermod ftp –g ftpusers –d /ftp –s /sbin/nologin
*yaX:,'\$ Tj=dL _GO+fB/Q1 u`pROd/ R5 在/ftp下建立匿名用户目录并设置权限
{(OIu]: e5ru:#P.p # mkdir /ftp/incoming
*>'2$me= h)_Gxe"x # mkdir /ftp/pub
sJb)HQ,7x DAnb.0 # mkdir /ftp/bin
[tqO}D T;4`wB8@ # mkdir /ftp/etc
kz0=GKic }{8Fo4/ # chown ftp /ftp/incoming
HB7( -k&{nD| # chgrp ftpusers /ftp/incoming
m`$>:B `OP>(bU0 d>, V 6B''9V:s 测试
PDIclIMS'F 5ttMua <G? 在浏览器地址栏输入
ftp://192.168.0.1 ,应该显示刚才建立的几个目录。进入incoming目录,应该可以在里面新建文件夹或文件。这样就完成对匿名ftp的测试!
KO|pJ3 "W@XP+POAY C,r`I/; h4anr7g{ 注意:由于我的这个配置文件设置了每台主机的最多并发连接数为3
EF=dXm/\ NGD*ce"w MaxClientsPerHost 3
Q0cY/'>4 x48'1&m 所以打开多个ftp登录窗口时会报错。
qon{
g tKZ&1E `\jTpDV_W ISS\uj63M
s8_aL)@f :Sc8PLT 建立proftpd的启动脚本
zBt`L,^ :,kU#eZ$- # cd /usr/local/etc/rc.d
Vf0fT?/K n}A?jOSAe # vi proftpd.sh
xHB/]Vd- o-~~,n\ 内容如下:
nMGrG r!$'!lCR 9k:W1wgH1 /zG+] #!/bin/sh
f<89$/w ^Cg^`n?@b e3eVvl5] mF'-Is case "$1" in
=3|pHc hJ4 fpvvV( Ad;S=h8: s=N#CE start)
#, Q}NO#vT :p<kQ4
/bin/mkdir -p /var/run/proftpd
yW\XNX {/d4PI7)tK if [ -x /usr/local/proftpd/sbin/proftpd ]; then
{7?9jEj 7]|zkjgI /usr/local/proftpd/sbin/proftpd && echo -n ' proftpd'
\Mb(6~nC hCM8/Vvx6 fi
CE#\Roi x) cJ(BiL-uF ;;
M
XZq fxDj+Q1p 8xF)_UV Wp5]Uk stop)
B6bOEPQ H`m:X,6} killall proftpd
oYz!O]j;a TZ_rsj/t ;;
x(PKFn 3ai (x1% *)
gYatsFyL hH%,!tSx echo "$0 start | stop"
-J,Q;tj 7DtIVMiK ;;
<%z@ 1E8H%2$ V S_!hsY }:`5,b%Y_ esac
XFW5AP 4'SaEsA~ (完)
FY]pv6@ [yw%i h) _Vjpw, GQN98Y+h 设置脚本可执行
I%@e@Dm,h nr OqH
# chmod 750 proftpd.sh
k(P3LJcYQ _(C^[ :s QDS0ejhp g nt45]@{ Proftpd全部安装结束后,就可以不用inetd(Internet超级服务器)了。
(I4y[jnD v f`9*x F 编辑/etc/rc.conf文件,将inetd=”YES”改成inetd=”NO”。
P##Z[$IJ3 &Y1`?1;nw 编辑/etc/inetd.conf文件,将带有ftp字样的行前面加上#号。
uBmxh%]C~ bV@7mmz:X+ 这样在重新启动后,inetd将不会自动运行。
a3q\<"| 0G5'Y;8 x>%joKY[ E0QPE5_ 使用本文的ftp服务器加上第三步介绍的web服务器应该可以提供比较基本的虚拟主机服务了。以上面建立的测试用户user1为例,其方法是:
@(-yrU q]^,vei 设置了数据库用户和磁盘限额后,编辑apache的配置文件/usr/local/etc/rc.d/httpd.conf,为用户配置虚拟主机并将文档目录指向/home/FTP/user1。这样user1就可以自己更新主页了。
pOMgEEhfS _J,xT flG=9~qcGQ F>N+<Z 第五步:安装配置E-mail服务器
t5paYw-b R"*R99 0q{[\51*
K;x~&G0= 演示地址:
http://baihua.3322.org/cgi-bin/sqwebmail cw;co@!$ GR%{T'ZD` iceblood前辈制作的qmail安装包使安装qmail邮件服务器简化了许多,只是sqwebmail汉化的好像有点问题,我下载了一个汉化好的sqwebmail,将它填入iceblood前辈的安装包内,可以随安装包一次安装完成。为了提供邮箱注册功能,我使用了最新版本的vqregister-2.5,并将其界面进行了简单的汉化。
b,dr+RB ~%s}S i\Yl {I{3 (M#" 本E-mail服务器包含的功能
d$K=c1 zmI5"K"'F 1、Qmail帐号与系统帐号的分离。
XA1f' Kk JA`H@qE 2、Qmail邮件列表功能。
f&ytK =}v ;1m 3、Qmail自动回复功能。
h*s`^W3 x=-0 zV 4、对vpopmail的支持。
H`-=?t MiJ6 n[iv 5、邮件帐号WEB管理方式。
XJSa]P^B1 R&#tSL 6、邮件的WEB使用方式,如:WEB发邮件,查看邮件。
7^MX l d+6]u_J 7、能任意调整WEB的CGI以及HTML路径。
;i\C]* F$Q04Qw 8、SMTP服务的密码验证功能,能有效的防止别人利用自己的服务器发送匿名信。
5Z{_m;I. 4T`&Sl 9、选择性安装webmail。
}c%
pH{HI KiAcA]0 10、对虚拟域的支持。
*Y%Jl
o n 'K6vW3 11、增加qmail的管理脚本,安装后可以运行qmail start|stop|restart来管理qmail。
FLZS K:3B] =&7@<vBpy 12、全面支持Mysql数据库,只要在SQL设置区里打开数据库的支持,并设置好数据库密码,就可以支持数据库了。
t`5j4bdG (a.1M8v+Sg 13、增加了QmailAdmin和sqwebmail的中文界面!![新]
Oz{%k#X- Qz+sT6js- 14、对很多包有是否安装的可选择余地![新]
jl}$HEI5m} ]JjK#eh 以上为iceblood前辈制作的qmail安装包v1.5.3自带功能。
:l,OalO h^oH^moq< 在此基础上我添加了修改过的sqwebmail的中文界面并增加了邮箱注册功能(中文界面)。
^Kqf~yS% GK?4@<fY I@\+l6&#; 5G(E&>~ 下载qmail安装包1.5.3
t> .
Fl- DM),|Nq" ftp://baihua.3322.org/pub/server/Qmail_setup-v1.5.3.tar.gz c?K~/bx. 40#9]=;} 下载修改过的汉化安装包sqwebmail-3.5.0
SEM8`lnu C\Vg{&' ftp://baihua.3322.org/pub/server/sqwebmail-3.5.0-cn.tar.gz .Evy_o\^ 6~8F!b2 下载我汉化后的vqregister-2.5
eLfvMPVo nt ,7u( ftp://baihua.3322.org/pub/server *1^$.Q& -M4p\6)Ge 英文原版vqregister-2.5下载地址
``|AgIg 30Drrno7Io http://inter7.com/vqregister.html dE5D3ze >xg5z pQWHG#?7 #NN ewzC<* 首先把下载的安装文件上传到/home/ylf/app目录
^jD1vUL 2: v`DI<Lt 解压缩qmail_setup-v1.5.3安装包
sx
9uV A:# k # cd /home/ylf/app
DBs DkkB{ gfy19c 9 # tar zxvf qmail_setup-v1.5.3.tar.gz
Rc[ 0aj: zY=jXa)K~ 进入解开的目录
A\QJLWBv^$ 7:Ztuc] # cd Qmail_setup
?=Db@97 o3N] `xD' 将新的sqwebmail中文安装包拷到此目录
\we\0@v ?&X6:KJQ # cp ../sqwebmail-3.5.0-cn.tar.gz ./
HpW 42 SVWIEH0? 编辑安装配置文件setup
#sB,1" 9&Ne+MY^% # vi seutp
d]wD[] 86qI 按系统情况修改如下内容:(这里是我的配置)
PmX2[7 sL^yB <
<Y}~N +K~NV?c # 操作系统类型为FreeBSD
TgfrI
\Kavw _OS="FreeBSD"
$uh z @;Opx." ?jO 5 9n e8P-k3a"5: # 默认语言为中文
.Zmp , w?y6nTg< _LANG="CN"
xJwG=$o .Y*f2A.v },@^0UH4c Ykqyk')wm # 不安装apache
7 sFz?`- y$W|~ H _INSTALLAPACHE="NO"
V@vU" J
CGC Y&.UIosWb GK*v{` # 添加qmail用户
ZcE_f>KV Vb|#MNf) _ADDQMAILUSERS="YES"
ZC0-wr\ :aAEJ `#mK*Buem} h9s >LY # 域名
FMw&( '0RwO[A#1 _DOMAIN=mail01.3322.org
G"SBYU
_D,
;MB&7 NjuiD]. R^#@lI~ # 邮箱管理员密码
tt_o$D~kg SA"p\}"
_MAILPASSWD=1234
<|B1wa:| MCTsi:V>+ \nqkA{;B{ b1#dz] # CGI路径
e [h8}F UUe#{6Jx_ _CGIBIN=/usr/local/www/cgi-bin
$md%xmQ[ c=O,;lWFqm w'T q3-%V &a0r%L()X # Html路径
g"VMeW^ dl-l"9~; _HTMLPATH=/usr/local/www/data
u.XQ& `:NaEF?Sj d3Mva,bw< G3i !PwW =+:{P?*} =='Td[ ###########--------Advanced set--------#################
J:*-gwv9*m y046:@v( # 设置邮箱容量50M
D;}xr_ pKUP2m`MW _MAILSIZE=50000000
K5>p89mZ tRb]7 z # enable virutal domain lookup via reverse ip address lookup for virtual domains. "y" and "n"
1{x.xi"A/ SLL3v,P(7 _USERCRUISE=n
/1UOT\8U \Q?ip&R # apache 安装路径
'dG%oDHX]P ]}="m2S3 _APACHEPATH=/usr/local
`r"+644 JuR"J1MY # 不使用系统用户验证
e}Vw!w ^2D1`,|N _SYSTEMPASS=n
"ww|&-W9 )- 15 N # 安装 vpopmail
S0,R_d') nQX+pkJ _VPOPMAIL="YES"
Cwa^"r3P1 (& "su3z # 安装 ezmlm
hXIro HAz By\M{ _EZMLMIN="YES"
|077Sf| 3rW|kkn # ezmlm coding
'NjzgZ~]P Rk<@?(l!6x _EZMLM=ch_GB
E51dV:l }_/Hdmmx # 安装 autorespond
kl!wVLE p@!nYPr. _AUTORESPOND="YES"
\uqjs+ tsOrt3 # 安装 QmailAdmin
5@IB39 1J=.N|(@Q _QMAILADMIN="YES"
w27KI]%( GG064zPq7 wcSyw2D Bs+(L [Z ##########--------SqWebMail set--------#############
h`
U?1xS =uk0@hy9b # 安装 webmail
='ZRfb& )~4II.`%^ _WEBMAIL="YES"
{N2g8W: "I?Am&>' # webmail coding set.have "iso","gb2312","big5" and more.
W:,4 :|3 9O`
m,t _MIMESET=gb2312
6fH@wQ"wN q\Q{sv_ # webmail use SSL,"YES" or "NO"
(/!r(#K0,' ,[S+T.Cu _WEBHTTPS="NO"
~LJY6A@y }VS3L_
;}/ oF9
-& s4Sd>D7 ##########--------SQL set---------################
KH)D08 Xp\/YJOibd # 使用数据库
<?-YTY| w{[=l6L m _SQL=y
f0<hE2 2]GdD* # mysql 主机
=ph&sn$;L CTt vyr _SQLHOST=localhost
rk+#GO{ ~7~~S*EQ # mysql 用户
](tx<3h {2/LRPT _SQLUSER=root
/kL$4CA iLP7!j # mysql 密码
Tus}\0/i> f.aSKQD _SQLPASS=123456
q{s(.Uq$& I}e3zf> # include path
U~h'*nV& yKYUsp _INCDIR=/usr/local/include/mysql
Qy<[7 ;Op3?_ # lib file path
R1nJUOE4w^ ]{"Br$ _LIBDIR=/usr/local/lib/mysql
R>DaOH2K* (8v7|Pe8 [A}rbD K }kw/W#)J 4h5g'!9-g f|^dD` 然后在安装脚本里找到下面几句
tz#gClo mRB tar xzf sqwebmail-3.3.7.20020910.tar.gz
/9o!*K mNmLyU=d cd sqwebmail-3.3.7.20020910
{x'GJtpb \V9Z#> if [ "$_LANG" = "CN" ]; then
-.g|l\ NCxqh < cp /tmp/iceblood/Qmail_setup/iceblood/sqwebmailcn/*.html sqwebmail/html/en-us
vN2u34 d(g^M1m fi
[
W2fd\4 91Uj}n% KD/V aN R'kyrEO 将其改为
(D@A74q\' d,8mY/S>w tar xzf sqwebmail-3.5.0-cn.tar.gz
e[sK@jX6 |
8qBm cd sqwebmail-3.5.0
)o\jJrVDf 'V8N #if [ "$_LANG" = "CN" ]; then
pO8ePc@=D 2X:4CC%5 #cp /tmp/iceblood/Qmail_setup/iceblood/sqwebmailcn/*.html sqwebmail/html/en-us
t){"Tfc: 2o>)7^9|#< #fi
83;NIE; ?Ma~^0 D")_;NLE1 >A0k 8T 改好后保存。这样安装包就可以自动安装新的sqwebmail程序。
"NgoaG~!YO sXd8rj:o gN)c ;raN 让setup可执行
e/->_T(I -P&6L\V # chmod 700 setup
h3T9"w[ 5 H#W[^s" 执行setup安装
\rVQQ|l 7'
S @3 # ./setup
0afei4i~N a0Ik`8^` 安装完成后系统自动运行qmail程序。可以通过qmail start|stop手动启动或停止qmail程序。
Fg Lrb# 1?
FrJ6V s7oT G! PjN =k; 测试
+7t6k7]c 7}*6#KRG 因为我们前面设置了虚拟主机www01.3322.org 和 www02.3322.org,他们的文档目录不是安装qmail时所指定的目录。为了保证邮件访问正常,我们再添加一个虚拟主机mail01.3322.org,
6U^\{<h_c <C9 XX~ 将它的文档目录指向/usr/local/www/data:
[F5h
{EdH$l>94 先到希网申请一个域名,我们假设它是mail01.3322.org
0rGSH*( g;ZxvR)ZJk ICAH G7 , ID.n1i3 编辑/usr/local/etc/apache/httpd.conf
.S(,o. }du XC[ 6 # vi /usr/local/etc/apache/httpd.conf
N)&4Hy >DPB!XA3 添加下面一段
fX
jG5Tv w
'3#&k+ E~LTb)
! SZJ$w-<z ServerAdmin
webmaster@mail01.3322.org z<.?x%4O Mwgu93? DocumentRoot /usr/local/www/data
f]7M'sy | LN_xq&. ServerName mail01.3322.org
7Sz?S_N/j z&V+#Ws/ ErrorLog /var/wwwlogs/mail01.3322.org.error.log
#GJ
dZ kNqH zo CustomLog /var/wwwlogs/mail01.3322.org.log common
[o*7FEM|< |Yq$sU c{[q>@y
pK `bc;]@" BL 3gKx.' a,78l@d( 重新启动apache
TNQP"9[? s}pIk.4ot! # /usr/local/etc/rc.d/apache.sh stop
#z1H8CFL" 6%Be36< # /usr/local/etc/rc.d/apache.sh start
!~Q2|r yjJ5P`j] kD[ r.Dma pH`44KAuM 首先确认mail01.3322.org已经正确指向了你的主机ip地址。然后在浏览器地址栏输入
http://mail01.3322.org/cgi-bin/qmai...g,密码是1234。
p _d:eZ KRjV}\} 建立一个新用户,然后在浏览器地址栏输入
http://mail01.3322.org/cgi-bin/sqwebmail =}PdH`S .'a&33J 以你新建立的用户登录,就可以收发邮件了!
)]#aa uC+ Z@Ae$ '9H 5XLs} : b=3H 关于SMTP验证的问题:
_,</1~. nNXgW 网上有很多讨论关于qmail安装包的smtp验证有问题的文章,我经过反复测试,发现iceblood前辈的安装包本身并没有问题,问题出在foxmail上,如果你使用Foxmail4.2发邮件,不需要在smtp验证添任何内容就能发出去;如果是使用outlook,不添或添错了smtp验证内容都发不出去。大家可以试试。所以我这里没有给qmail-smtp打补丁。(iceblood前辈的安装包不同版本之间好像有区别,建议大家下载我这个)
*'"^NSJ )Fb>8<% fAB e ." $ 安装vqregister-2.5
jF[ 1za HNL42\Kz! vqregister-2.5是vqsignup的升级版本,提供qmail邮箱注册功能。
f{0F|w<gf GU Q{r!S 进入vqregister-2.5安装目录
5s?Hxn _{jjgQJ5 # cd /home/ylf/app/vqregister-2.5-cn
"`asFg 1He{v# fL]Pztsk+ l|5fE1K9U 编译安装前需要修改两个文件
;\MW$/[JCy [%&ZPJT%i 修改register.c文件
% >;#9"O4 XR!us/U`a # vi register.c
n<B<93f/ 2c?qV 找到下面一行
zXsc1erli oq*N_mP0
eret = execl("/var/qmail/bin/qmail-remote", "/var/qmail/bin/qmail-remote", p, "
register@inter7.com", cemail, NULL);
UJs$q\#RO } G<rt 将里面的qmail路径指向正确的路径,这里改为
?aW^+3i <LRey%{q eret = execl("/usr/local/qmail/bin/qmail-remote", "/usr/local/qmail/bin/qmail-remote", p, "
register@inter7.com", cemail, NULL);
WMMO5_Mz Y?534l)j Mc!Xf[ ,C {*s$ 修改安装配置文件Makefile
,sGZ2=M}J FYS/##r # vi Makefile
rxme(9M MQ)L:R`L 找到这几行
sdCvG R e P=1I<Pew DEFS = -I$(VDIR)/include -I/usr/local/mysql/include
J9T3nTfL %6--}bY^ p\{-t84n bqQq=SO LIBS = -L$(VDIR)/lib -lvpopmail -lcrypt -L/usr/local/mysql/lib/mysql -lmysqlclient
[yj).*0 u{z``] ` ]Ppau 0P>OJYFr' INSTALL_DIR = /usr/local/apache/cgi-bin/vqregister
+y 87~]] WL+]4Wiz L#)(H^[ 8QK5z;E2~ 将它们改成实际路径,这里是
>M Jg , LW:o8ES33 DEFS = -I$(VDIR)/include -I/usr/local/include/mysql
[31p&FxM |y<),j6 #.[AK_S5& 8.bKb<y LIBS = -L$(VDIR)/lib -lvpopmail -lcrypt -L/usr/local/lib/mysql -lmysqlclient
m?HZ; P,=+W(s9} q.2(OP>( kF7V.m/~o INSTALL_DIR = /usr/local/www/cgi-bin/vqregister
mJB2)^33a
fI\9\x ^`f*'Z %<8nF5 编译安装
!A1)|/a@ 6dAEM;$_Z # make install
6n1rL 20rkKFk* {G*A.$-d ceGa([#!\_ 安装完成后需要编辑vqregister的配置文件
e4FM} z[ 1y^K/.5- # cd /usr/local/www/cgi-bin/vqregister
#y|V|nd q %A?V_ # vi vqregister.conf
:R):b #}^-C&~ 修改下面几项
#E0t?:t5bk b%f[p/no kX:tc 1+`l7'F # 设置管理信息
^w~23g. qz4^{ AdminEmail
postmaster@mail01.3322.org CXtU"X S]sk7 %7`f{|. }6 5s'JB # 设置邮箱使用的域名
63?)K s :Sg_tOf AllowDomain mail01.3322.org
xyr+_k-x&q (wmBjQ]B<
wiX ~D
9{j66 其它项目可根据注释修改,不改也行,直接保存即可。
,%bhyww< U=sh[W i~J;G#b NvjJb-u 测试vqregister
?t@v&s h;lirvO| 在浏览器地址栏输入
http://mail01.3322.org/cgi-bin/vqre.../vqregister.cgi ,按要求添入注册信息,提交后显示注册成功信息,证明你的vqregister安装成功!如果出现错误,请按提示检查注册信息或检查vqregister.conf文件。
*b}>cn)<v
(yo;NKq,@ <ktzT&A 4;`Bj:. 第六步:安装配置视频点播服务器
j\RpO'+} Pag63njg? a:YI"*S
!2:3MbtR 演示地址:
http://baihua.3322.org/media iAMtejw =rPrPb FreeBSD下的流媒体视频点播服务器软件可以使用苹果公司的Darwin Streaming Server或者Real公司的Helix Universal Server,前者最大的优点是免费,后者在网上使用的很多。我在使用这两种产品时发现Darwin Streaming Server对各种媒体格式支持的没有Helix Universal Server支持的好,比如象现在流行的mp4,再加上现在网上rm格式的节目源非常丰富,制作rm媒体文件的工具也非常多,所以本文还是选用了Helix Universal Server做为视频点播服务器。
@+U,Nzd @&1Wyp 下载FreeBSD版的Helix Universal Servevr Basic,免费版的Helix Universal Servevr最大支持1M的带宽。并可申请1年的使用证书。
9@$,oM= N^VD=<#T http://forms.real.com/rnforms/products/servers/eval/mbps.html /RLq>#:h** `nR %Cav,U 需要填写一些信息才能下载,注意要添入正确的email地址,因为下载后授权证书会发到你添的邮箱里。还有操作系统一定要选FreeBSD!
CBf7]n0H CLKov\U\ 下载后的文件名为rs901-freebsd4-ia32.bin,将它上传到/home/ylf/app目录。
CGw--`#\ &@"]+33 ?B.~AUN nA>sHy 安装过程很简单:
}2)DPP:ic 5sde 进入/home/ylf/app目录
KRsAv^'] iNCX:Y # cd /hom/ylf/app
*0Gz)' 0h$GI"dR 修改rs901-freebsd4-ia32.bin权限为可执行
i54md$Q^ ^C&+
~+ # chmod 700 rs901-freebsd4-ia32.bin
z41_oG7 4"\yf 执行rs901-freebsd4-ia32.bin进行安装
VVWM9x q&'Lbxc>c # ./rs901-freebsd4-ia32.bin
/.5;in .V6-(d 当提示输入证书文件路径时先按回车跳过
E&
36H A CNfS9M_w 接下来要你看一个协议,按方向键走到最后
[AEBF2OIv TY;U2.Ud 下面提示安装位置
NCA{H^CL
FqA3{ 输入/usr/local/realserver
D
y6$J3 r N$?cX(|7 接着会有一些端口选择的提示,一般按回车接受默认值即可,80端口如果冲突可改为8080。系统还会随机产生一个管理端口,把端口号记下来,我们安装后通过web页进行管理时要输入这个端口号。
(g :p5Rl Ccfwax+ 另外安装时还会提示输入管理员用户名和密码,这个也要记下来。
~!%0Z9>ap iZ[tHw|| Q"a2.9Eo Z#`0txCF 安装结束后,打开real公司给你发的邮件,里面有一句“License key for Helix Server may be downloaded from:”,下面的连接就是下载证书的连接。下载后把证书文件上传到/home/ylf/app目录。然后拷贝证书文件到指定的目录
SP
2 8 D1,O:+[;. # cd /home/ylf/app
Kn+=lCk b`cYpcs # cp RNKey-Helix_Server-90-2804003590401434.lic /usr/local/realserver/License
\9)[#Ld Mj0Cat= 其中RNKey-Helix_Server-90-2804003590401434.lic为证书文件名,你的证书文件名会不同,
p}]q d4j >', y /usr/local/realserver/License是证书文件路径。
#`GbHxd }wt%1v-10U 至此安装过程结束。
a j|5 # [UPNd!sy X=qS"O 1 !>;w!^U 进入程序目录
%|3e.1oX &yH#s
8^8 # cd /usr/local/realserver
nYv#4* 0yof u 启动Helix Universal Server
i%(yk#=V J;~|ph # Bin/rmserver rmserver.cfg
(b/d0HCND MM#cLw 出现一连串的“Starting PID”提示,证明Helix Universal Server已经启动。
` DCU>bt&R #dJ 2Q_2 _=`x])mM o0;7b>Tv 测试
Pw}_[[>$ [J\DB)V/ 在浏览器地址栏按如下格式输入
http://192.168.0.1:28274/admin/index.html ,这里28274是安装时系统随机产生的管理端口号,你的和这个不一样。
+h[e0J|v{ p?rK`$U+J 这时会弹出登陆对话框,添入你上面设置的管理员用户名和密码,这样就打开了管理界面。
cV$lobqO L@|#Bbmx 选左侧的Server Setup——Media Samples就可以看系统提供的演示多媒体文件了!注意客户端要有RealPlayer8以上的媒体播放器才行。
y{rn-?`{ $"fo^?d/s 如果要添加自己的rm文件,可以将文件放到/usr/local/realserver/Content目录,然后在RealPlayer上输入地址
rtsp://192.168.0.1:554/xxx.rm就可以看了,其中xxx.rm是你的rm文件名。
@vH2Vydu 5ouQQ)vA 多媒体文件存放路径可以通过Server Setup——Mount Points修改。
qR,.W/eS8
';l fS |n P_<9[ P!\hnm)%4 有一个问题值得注意:当系统使用超过一块网卡时,Helix Universal Server在安装时总是将管理端口自动绑定到系统的第一块网卡上,也就是使用ifconfig命令察看网卡信息时显示的第一块网卡。这样如果你的终端不是连接在第一块网卡上,将不能打开管理web页面。
lC9S\s I{n;4? 这个问题可以在能打开管理web页面的时候,选Server Setup——IP Binding,通过添加地址0.0.0.0来绑定所有的网卡。
jW5iqU"{* +BB0wY 另外还可以通过修改Helix Universal Server的配置文件来解决:
hjY0w x72G^`Wv # cd /usr/local/realserver
\ZnN D1A OCx5/ 88X # vi rmserver.cfg
t!l%/$- 0M!0JJy#* 添加如下内容:
OAok 4]6 Qr &G{2s J5{ {;RF ^tE_LL+ji| ]t/f<jKN^ :::>ro*R 5-p.MGso 重新启动Helix Universal Server即可。
CX+9R3pa }K8Lm-.= 7z<Cu< QFzFL-H~N 如果自己制作rm流媒体文件,有两种工具很好,一个是real自己的Real Producer Plus,另一个是网络多媒体梦工厂real2002。前者功能强大,后者是类似前者的简化版,用起来很方便。