测试
NI8~QeGah !lhFKb;
首先以root身份执行线程察看命令top,列表中应该有下面几个线程正在运行:
]YsR E> zw]3Vg{T PID USERNAME PRI NICE SIZE RES STATE COMMAND
q!&B6] .b,~f 69 root 2 0 440K 296K select natd # 网络地址转换进程
<(YF5Xm6$h FZ p<|t 132 root 2 0 3692K 3052K select httpd # apache进程
'0RRFO Ff<)4`J 166 mysql 2 0 27480K 4824K poll mysqld # mysql进程
B'p5M.6d#: b66R}=P l 在浏览器地址栏输入
http://192.168.0.1 ,如果显示apache的欢迎页面,证明web服务器安装成功!web页面文件存放在/usr/local/www/data目录中,你可以把自己的网页拷贝到这个目录,就可以访问自己的主页了!
:CTL)ad2 MtUY?O.P2 键入命令
n+?- :_Fxy5} # mysql
Hd0Xx}3& Vv7PCaq 出现下面显示证明mysql安装成功!
Xhse~=qA VjB*{, Welcome to the MySQL monitor. Commands end with ; or \g.
kwlC[G$j7 | ]# +v@ Your MySQL connection id is 2 to server version: 3.23.52
C8.W5P[U 4.Z(:g ~^$MA$ /p g\&2s, Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
p+[}Hxx= u s`} @6b[GekZ< t#5:\U5r. mysql>
TEWAZVE* Pbe7SRdr^ 键入exit退出mysql。
RdI};K lsY `c"NW> ln#\sA?iG &SmXI5>Bo0 为mysql的root用户设置一个口令123456
U:n*<l-k} EkZjO Ci # mysqladmin -u root password '123456'
9"ugz^uKt AS|Rd+. y]'CXCml) dIJGB== 现在我们来安装一个支持php+mysql的论坛。到
http://www.faeryboard.com/去下载完美版的仙境论坛程序。将下载的rar压缩包解开,然后使用ftp上传到/home/ylf/app目录。
C3}Aq8$6 ffk4mhH &@6 GI< r6t&E%b 事先备份web服务器演示页面
nY0sb8lZJ 8l23%iWxe # cd /usr/local/www/data
JZ=5Bpw {ma;G[! # mkdir backup
3dG4pl~ %[Zz0|A # mv * backup
lzDdD3Ouc ]"sRS`0+
v[&'k\ ,I`_F, 将论坛程序拷贝到/usr/local/www/data目录
tD-gc''H _whF^g8 # cd /home/ylf/app/vbb2.3.0final
|<(t}}X Spgg+;9 # cp –r * /usr/local/www/data
B 8{
uR jczq`yW 编辑论坛配置文件
sRq U]i8l Pp*}R2 # vi /usr/local/www/data/admin/config.php
7'OPjtM H$tb;: 内容如下
5v9uHxy S}7>RHe ^M
RmO yGSO 4seciz0? /////////////////////////////////////////////////////////////^M
f#P_xn&et x?L hq2 // Please note that if you get any errors when connecting, //^M
V]c5
Z$Bd ?9e] // that you will need to email your host as we cannot tell //^M
}bMWTT 2xTT)9Tq* // you what your specific values are supposed to be //^M
:;4SQN{2
O yvxl_*Ds8 /////////////////////////////////////////////////////////////^M
\hbiU] H/J<Pd$p ^M
=i6:puf qks|d_ // type of database running^M
D9-Lg%
zu<3^=3 // (only mysql is supported at the moment)^M
lIh[|] <AUWby," $dbservertype='mysql';^M #数据库类型
l!IGc: ``9 GY ^M
^,V[nfQR xvDI 4x& // hostname or ip of server^M
lLCdmxbT `o
si"o9 $servername='localhost';^M #主机名
8i:[:Z |+NuYz? ^M
K"l0w**Og# /2@["*^$ // username and password to log onto db server^M
4;*f1_;f~ %-j&e44 $dbusername='root';^M #登录数据库用户
gj+3y9 L'9N9CR{i $dbpassword='123456';^M #密码
*IZf^-=Q HarFE4V ^M
R0<< f] <v$QM;Ff // name of database^M
s, XM9h>P4 Y8ehmz|g]J $dbname='fin230';^M #论坛所使用的数据库名称
U8O(;+ zj%cQkZ ^M
1S%}xsR0 "s]y!BLk // technical email address - any error messages will be emailed here^M
>&Fa(o;* NHiq^ojk $technicalemail='
webmaster@yoursite.com';^M #管理信息
<4mQ*6 g:gB`8w? ^M
^\wl2 inF6M8
A1 // use persistant connections to the database^M
n}J^6:1 SxMj,u%X/ // 0 = don't use^M
o6|-=FcvC Coa -8j*R7 // 1 = use^M
@J vZ[T/ >V!LitdJ $usepconnect=1;^M
sR*Nq5F#9 '[Gm8K5
^M
Fu)Th|5GZ -&Gfh\_NW ?>
hz)9"B\S @vs@>CYdz (完)
2p:r`THvS5 +R[4\ hC0Y J_xG}d T:!MBWYe | 除了root用户的密码需要添入外,其他部分可以不改。
509Q0 [k 8D~x\!(p\ 保存后,在浏览器地址栏输入
http://192.168.0.1/admin/install.php ,根据提示一步步安装即可。
rt b* n~ k
dU!
kj 安装成功后,在在浏览器地址栏输入
http://192.168.0.1 ,就可以看到论坛了!怎么样,挺漂亮吧!关于论坛的其他问题,请仔细看论坛安装包里面的说明文档,或者到仙境论坛的主页,那里有仙境论坛的一切!
X\sm[_I V(mnyI 下一节,我们要讨论关于虚拟主机的问题。
+Me2U9 (@&I_>2Q $']VQ4tZ 40K2uT{cq 配制虚拟主机:
77Q}=80GU; (0jr;jv Apache的虚拟主机支持有两种方式,一是基于用户访问Apache主机时所使用的域名,另一种是通过指定IP地址来提供。这里我们只介绍如何通过不同的域名来实现虚拟主机的支持。
#":a6%0Q JJf<*j^G 要实现基于域名的虚拟主机的前提条件是必须有两个域名同时指向Apache主机的IP地址,这里我们假设这两个域名分别是www01.3322.org和www02.3322.org ,这两个域名的文档都分别放置于 /home/www01 和 /home/www02这两个目录内,同时这两个目录已经设置好权限,对于目录让所有的人都可以读取、运行,对于文件,让所有的人都可以读取。
(5`T+pAsV N z~"vi(t 以下是具体的配置过程:
AcC8)xRpk4 O&$0&dhc 首先到希网去注册2个域名。然后为这2个域名分别建立文档目录
Iql5T#K+ =!
mJG # mkdir /home/www01
P5URvEnz: Q_4Zb # mkdir /home/www02
OE"<!oIs ((MLM3zJ PXEKV0y WE.Tuo5L 编辑apache的配制文件httpd.conf
5$Kf]ZP T*P+Fh" # vi /usr/local/etc/apache/httpd.conf
wO!u!I
BGqa-d 在文件最后找到下面2行
yJD>ny y1,5$0@G U e*$&VlT {ZqQ!!b K$-;;pUl y1C/v:;
lbkLyp2 #T%zfcUj _413\`%8? xzk}[3P{ 在2行中间添加如下内容:
z="L4 $D_HZ"ytu NameVirtualHost * # 指定运行虚拟主机服务的主机ip地址
JR1*|u H/jm
f5 # 静态ip方式可以将*替换为你的ip地址,动态ip直接用*即可
l{%a&/ Y';>O ` !_^g8^>2( Y4To@TrN#\ IZ~.{UQ <lo`q<q ServerAdmin
webmaster@www01.3322.org #指定WEB管理员的邮箱
f\}22}/ pFIecca w DocumentRoot /home/www01 #指定本虚拟主机的文档目录
1xTTJyoq YIOR$ ServerName www01.3322.org #指定本虚拟主机的域名
gX*K&*q gaeOgP.0 ErrorLog /var/wwwlogs/www01.3322.org.error.log #指定错误记录应该存放于那里
J}@GKNm %h+uD^^$ CustomLog /var/wwwlogs/www01.3322.org.log common #指定常规记录应该存放于那里
+X^4;
& Efr&12YSS >L[lV_M_> C1QWU5c v ZvH{wt
OoaY v~5<:0dL `P.CNYR<J ServerAdmin
webmaster@www02.3322.org K^H>~`C= Z[}
$n-V DocumentRoot /home/www02
"$8w.C <]Y[XI(kr ServerName www02.3322.org
z5EVG [hU=mS8=^ ErrorLog /var/wwwlogs/www02.3322.org.error.log
B||c(ue (6k>FSpg CustomLog /var/wwwlogs/www02.3322.org.log common
\_ -DyD#3 :_H>SR: Jsn <,4DO8 ]kS7n@8 (完)
q^Inb)FeN ]{Ek[Av xIgql}. c]v
+ 创建/var/wwwlogs目录
j9xXKa5 r}EM4\r # mkdir /var/wwwlogs
RgGA$HN/ F=i!d,S 重新启动apache
3!Bj{;A W)-hU~^OM # /usr/local/etc/rc.d/apache.sh stop
Wz{%"o $4Y&j}R # /usr/local/etc/rc.d/apache.sh start
Ab
g$W/(| W5/};K\. 分别在/home/www01和/home/www02目录拷入不同的网页文件进行测试,注意主页名称必须是index.html或index.php
0N VI+Z$ : bv|Ah q6&67u0 -+P7:4/ 测试
JS7dsO0; &<h?''nCy 确认注册的2个域名已经指向了你的主机ip。
R3G@G vYzVY\ 在浏览器地址栏输入域名
http://www01.3322.org 和
http://www02.3322.org ,如果分别显示你拷入的主页证明虚拟主机配置成功!
`M rBav h,]+ >`b xjrlc9 A&
=pw# 利用上面的方法我们可以建立更多的虚拟主机,甚至对外提供主页空间服务!
stXda@y<p o<J5! W 5I=X]& \`gEu{ 如果要对外提供虚拟主机服务,需要为使用者提供ftp上传功能。下一节我们将讨论如何通过Proftpd1.2.7+proftpd-mod-quotatab-1.2.4+mysql实现带有空间限额和数据库用户验证功能的ftp服务器。
iGa}3pF s3< F sVoR?peQ :;TYL[ 第四步:安装配置ftp服务器
]xrD< " $=qGHA~ (}0S1)7t cY~M4:vgT 由于为每一个需要使用ftp服务的用户建立系统帐户会影响系统的安全,所以我们使用数据库用户进行ftp用户验证。
4\1;A`2%0 YFqZe6g0$ 系统组成:Proftpd1.2.7+proftpd-mod-quotatab-1.2.4+mysql
:gaETr [<Jp#&u6sb 因为ports里没有proftpd-mod-quotatab-1.2.4模块,我们下载源代码安装。
Nt,~b^9 {F!v+W> 下载源代码包:(必须下载相同版本的源代码包)
u _X}-U ^j iE9k) 到
http://www.proftpd.org 或
ftp://ftp.servus.at/ProFTPD/distrib/source/proftpd-1.2.7.tar.gz/。
v= 8VvT8 6ZEdihBei 到
http://www.castaglia.org/proftpd/ 去下载proftpd-mod-quotatab-1.2.4.tar.gz。(1.2.5 版本的mod_quotatab是用在1.2.8rc1上的)
8m7;x/0ld LE|<O 用ftp将它们上传到/home/ylf/app目录。
LP?P=c _H2tZ%RM 然后解压缩源代码包
>Bx8IO1_\d 5Hy3\_ + # cd /home/ylf/app
l/F!Bq[*g H9E(\)@ # tar zxvf proftpd-1.2.7.tar.gz
.q inR6= 9A<0zt # tar zxvf proftpd-mod-quotatab-1.2.4.tar.gz
mt^`1ekoY \!4|tBKVY 进入mod-quotatab目录
6KB^w0oA [Q:f-<nH # cd mod_quotatab
to51hjV u
GIr&`S 把mod_quotatab中的文件拷贝到proftpd 中的modules 目录中
ol#yjrv ',# # cp * ../proftpd-1.2.7/modules
J% AG` idz9YpW QQq/5r4O`q .5z&CJDiIi 在开始运行configure之前,我们要先改动一个文件
i*z0Jf[" XLocg 进入 proftpd-1.2.7/contrib 目录
\-d'9b ? 7@@<5&mN # cd /home/ylf/app/proftpd-1.2.7/contrib
LUG9 #. m:"+J 修改 mod_sql_mysql.c
1x;@~yU 1=>2uYKR # vi mod_sql_mysql.c
Qpw@MF2P 22'vm~2E 找到#include 把他该为你实际路径,这里是:
&L'6KEahR _j>L4bT #include
h[,XemwX Oc~VHT H\d;QN9Q; kw#X]`c3 然后编译安装
AbG &9=Ks sy=dY@W^ # cd /home/ylf/app/proftpd-1.2.7
u]SZ{[e 90(UgK&Y #./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
V:8@)Hc= yeNvQG # make
qZP:@r" _1\poAy # make install
?f f
[$ab G1TANy LGXZx}4@; MU*It"@}2 进入到proftpd配置文件所在目录
cPSti pSXEJ 2k # cd /usr/local/proftpd/etc
?F25D2[( V4Qz*z% 备份原配置文件
DEcGFRgN~ ILNXaJ'0a # mv proftpd.conf proftpd.conf.bak
5E0w n' )Z&HuEg{ZR 然后编辑新的配置文件proftpd.conf
w?i)/q :S#i9# aB # vi proftpd.conf
}q]jjs m'c#uU 我的proftpd.conf内容如下:
d#4 Wj0x L@+Z)# V eq{
[?/ py=i!vb&Z% # This is a basic ProFTPD configuration file (rename it to
0a@c/XGBp CxkMhd8qz # 'proftpd.conf' for actual use. It establishes a single server
nqrDT1b** T"IW Jpc # and a single anonymous login. It assumes that you have a user/group
R7,pukK UL[uh@4 # "nobody" and "ftp" for normal operation and anon.
z41D^}b AT-0}9z{ lqauk)(A0 8'n#O>V@ ServerName "ftpx.3322.org"
HMhLTl{; !@A|L#* ServerType standalone
ps"9;4P Vl-D<M+ih DefaultServer on
ig+k[`W 2G H)iUmc :)j7U3u |K6nOX!i # 用户登陆时不显示ftp服务器版本信息
qR_SQ
VN &hO$4q tN ServerIdent off
A_aO}oBX fG3wc
l~ PMQb\%iE" G%Y*q(VrEu # Port 21 is the standard FTP port.
\_?yzgf pTN%;`)
{ Port 21
s* @QT8% i:;$oT a!&bc8J7 ?~{rf:Y # Umask 022 is a good standard umask to prevent new dirs and files
I{Rz,D uAL 2UQN*_ # from being group and world writable.
,=yOek} W%=Zdm
rv Umask 022
% /~os2R *u58l(&`8 $x/J+9Ww 3Sk5I% MaxLoginAttempts 3
EkDws`@ GpScc'a7 TimeoutLogin 120
wE)]
ah: )7tV*=?Ic8 TimeoutIdle 600
*13g<#$ u4@, *tT TimeoutNoTransfer 900
2m|Eoc&M_ hjw4Xzju TimeoutStalled 3600
t2~"B&7My /nwxuy uwmoM>I W^ 6Q?BwD+> MaxClients 100
y|$vtD%c m9 ^m SlR7h$r' ?56~yQF/2 #设置每台主机最多并发连接数
|C^
c0 tWcizj;?wK MaxClientsPerHost 3
^
sS>Mts w{RNv%hJ$= q/A/3/ 6Wf*>G*h AllowOverwrite no
V|+ `L- F|DR AllowStoreRestart on
<Sz>ZIISd )r-T= UseReverseDNS off
*xEI
Zx ~GAlNIv] 9yO{JgKA oXnC"y}0P #设置如果shell为空时允许用户登录
U+(Z#b(Q [c,|Lw4 RequireValidShell off
(7M^-_q]D ZD$-V3e` Pn~pej5'K
v(i1Z}*b #将用户限制在自己的主目录下
MtMvpHk d;;>4}XJ] DefaultRoot ~ ftpusers
}qG?Vmq*R[ em f0sL DefaultRoot ~ FTPGRP
;D%$Eh&oma LsuAOB 8 !l sy&6 Oz"@yL} # To prevent DoS attacks, set the maximum number of child processes
e-L5=B 67Af} >Q # to 30. If you need to allow more than 30 concurrent connections
)->-~E}p9 j<`I\Pmv # at once, simply increase this value. Note that this ONLY works
ls8olLM> e[d7UV[Knn # in standalone mode, in inetd mode you should use an inetd server
Zkwy.Hq^ 2+c>O%L # that allows you to limit maximum number of processes per service
M Ak-=?t /vFxVBX # (such as xinetd).
MAm1w'ol" oO! 1 MaxInstances 30
(mD-FR@# /\IAr,w[ x!Z:K5%O F{a0X0ru~ # Set the user and group under which the server will run.
S!`4Bl @d8&3@{R^ User FTPUSR
-D.BJ( gb!@OZ c Group FTPGRP
f;@b
a[ u|_ITwk SX1Fyy6
w T! &[ # Normally, we want files to be overwriteable.
rahHJp.Ws .{'Uvn 3B!&ow<rt N}.Q%&6: AllowOverwrite on
sRo<4U0M;l )A>U<n $h Zi[{\7a wiK@o$S- lOowMlf@2 W TXD4} # A basic anonymous configuration, no upload directories.
?~]1Gd .N-'; %8 # 匿名登录设置。匿名用户目录为/ftp
nzQYn u8{@PlS `Yo-5h ?<>,XyY User ftp
X:xC>4]gG' [0**&.obz Group ftpusers
S<2CG)K[ Q
KcF1? d[P>jl%7 n)1 # We want clients to be able to login with "anonymous" as well as "ftp"
<{-(\>f!9 cpr{b8Xb8& UserAlias anonymous ftp
=
C$@DNEc o3\SO u~naVX\3b 84hi, S5P # Limit the maximum number of anonymous logins
>[E|p6jgT ei|*s+OZu MaxClients 10
8;+Hou _!$Up Z;"4$@|qE ^w&5@3d # We want 'welcome.msg' displayed at login, and '.message' displayed
O3<Y _I^ c4qp3B_w # in each newly chdired directory.
M'>D[5;N~ \M'bY: DisplayLogin welcome.msg
k^'d@1z;C "Dmw- DisplayFirstChdir .message
.JD4gF2N 3 -_U-:2" :xAe<Pq Z)6nu) # Limit WRITE everywhere in the anonymous chroot
ZB_16&2Ow **w*hd] #
b*6c.o CwEWW\Bu # DenyAll
Ls$g-k%c@Q &[W3e3Asra #
mKf>6/s{c jV|$?
Rcl% LBbo.KxAe3 $@:>7Y" 28UL xP5mL3j TW-zh~|F J?n)FgxS #数据库联接的信息,FTP是数据库名,localhost是主机名,root是连接数据库的用户名,#123456是密码(如果没有密码留空)
[-:<z?(n4 &\6`[# bT SQLConnectInfo FTP@localhost root 123456
}
{gWTp 3>@qQ_8%~ _?(hWC"0 }Nd`;d
#数据库认证的类型
Q
2SSJ n[MIa]dK SQLAuthTypes Backend Plaintext
jN'fm eB/hyC1 "6*Kgf2G {KpH|i #指定用来做用户认证的表的有关信息。("FTPUSERS"和"FTPGRPS"是数据表名字,等一会
utm+\/ .'NO~ #在下面建立)
G
&rYz 4f*Ua`E_ SQLUserInfo FTPUSERS userid passwd uid gid homedir shell
,T21z}r !ovZ>,1 SQLGroupInfo FTPGRPS groupname gid members
cJ(zidf_$ 1R+ )T'in c^[1]'y (zTI)EV #数据库的鉴别
! MF"e|W 2cX"#."5p SQLAuthenticate users groups usersetfast groupsetfast
O.up%'%, HBga'xJ ,0<F3h X?}GPA4 W #如果home目录不存在,则系统会根据它的home项新建一个目录
$vbAcWj BqEubP(si SQLHomedirOnDemand on
<cfH'~ J!K/7uS W1vAK XpAq=p0; #启用磁盘限额
Z\gg<Q \,cKt_{ u QuotaDirectoryTally on
j@?[vi M@2Qn-I RzY`^A6G6 NV:XPw/ #磁盘限额单位 b"|"Kb"|"Mb"|"Gb"
o|*| m9<[bEO<$ QuotaDisplayUnits "Kb"
7s fuju( 9bcyPN E[Ws} n. fF-\TW QuotaEngine on
#+ lq7HJ1 j+B5m:ExfI 6quWO2x D@b<}J>0' #磁盘限额日志记录
T~~$=vP9 `Py=
?[cD QuotaLog "/var/log"
@01D1A ?D^,K`wY=B Xx<&6
4W uA/.4 b # 打开磁盘限额信息,当登陆FTP帐户后,使用命令 "quote SITE QUOTA" 后可显示当前用#户的磁盘限额
*ZSp9g"Z 7%"\DLA QuotaShowQuotas on
uSQ>oi] qxcBj 3ws(uF9$ =&*QT&e #SQL调用语句,不用修改
qL;T&h `=l{kBZT| 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}'"
\A\yuJ= 46?F+,Rzl :iNAXy U!I_i*:U 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}'"
):\{n8~ RW PdS )w
8lusa ,vdP
#: 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
$J0~2TV< Gx* 0$4xJ3 [.Wt,zrE 1
GHgwT SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" quotatallies
0S5C7df gWv+i/, [QqNsco) Q]g 4gj QuotaLimitTable sql:/get-quota-limit
GxDF7
z%& ?nSp?m; QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
6p6Tse] P$qkb|D, (完)
V?J,ab$X# 1o8"==n% ]%Yis=v 5eSTT#[+R 下面为ftp用户建立相应的数据库和表
&@iF!D\u @SG="L 进入mysql数据库命令状态:
8\.1m9&r>o \lakT_x # mysql –p
&?Z)V-1H 2GKU9cV*` 提示输入密码
pD6g+Taj m^x\@!N:( q.b4m 'J PXu<4VF 建立数据库FTP(注意大小写和每句话后面的“;”)
g!Yh=kA'N pfQZ|*>lkb CREATE DATABASE FTP;
yz$1qEII`q HN~4-6[q Aag)c~D 2hC$"Dfp 然后在这个数据库中建立一个用户表FTPUSERS,这个表是必须的:
,p`bWm R}6la.mQ use FTP;
Tocdh.H| "XsY~ 1@z@ ow$l!8 create table FTPUSERS (
<07W&`Dw sr@XumT userid TEXT NOT NULL,
}_/h~D9-T# & c9Fw:f; passwd TEXT NOT NULL,
q[+:t &trh\\I" uid INT NOT NULL,
-LK(C`gB f=O>\ gid INT NOT NULL,
g+r{>x BCZnF
/Zo homedir TEXT,
PZg]zz=V4 uvv-lAbjw shell TEXT
>upUY(3& RkP|_Bf8) );
$5CY<,f 9x^
/kAB m:Cx~
'L59\y8H 此表格是为了用户认证所需要的,其中userid、passwd是必不可少的,userid是用做FTP服务的用户名;passwd是指此用户的密码;uid是系统用户的ID,也就是所映射的系统用户;gid是所属系统组的ID;homedir是该用户所在的HOME目录;shell可以为该用户指定相应的shell。当然你可以建立更多的字段,例如:用来记录用户登录次数的count,或者是日期的date,如果你对配置熟悉了之后,你可以根据自己的喜欢添加更多的功能。在此就不多讲。
"v(]"L `/ReJj&~ uWtS83i 2pNJWYW" 如果需要更多的功能,可以添加另外一个需要的表:FTPGRPS,也就是确定组的表格,当然也可以不用,这里讲一个它的格式:
"_@+/Iy. _"bvT?| create table FTPGRPS (
m:O2_%\l I"<.
h' groupname TEXT NOT NULL,
]sP9!hup [#6Esy8| gid SMALLINT NOT NULL,
F8;4Oj s ^R2jueR members TEXT NOT NULL
E^W*'D >P"/nS"nn );
n >PM_W poFjhq
/#( 其中groupname是组的名称,gid是系统组的ID,members是组的成员。注意:多成员,他们之间要用逗号隔开,不能使用空格。
PxD}j
2Kd
9QZ wUQ &0Zk3D4 ^K8a#- 为FTP用户建立相应的系统用户。
|8{iIvi/ VD`2lGdF 在本例中,将整个FTP服务只提供一个有效的系统用户FTPUSR和组FTPGRP,当然你也可以设置多个系统用户。但出于安全的考虑,我只设一个,用他来启动FTP daemon,并把所有的FTP用户映射过这个用户。
p)&\>
l"y9XO| =d.W'q| 3Il/3\ 先建立FTPGRP组:
sZBO_](S g}r5ohqC# # pw groupadd FTPGRP -g 2001
3^yWpSC Mf13@XEo 建立FTPUSR用户:
K2`WcEe <KPx0g?=b # pw adduser FTPUSR -u 2001 -g 2001 -d /home/FTP -s /sbin/nologin
T\CQ ms<u YLp M|=$~@9#X B_jI!i{N%o 为FTPUSR建立HOME,把所有的FTP user 活动空间全放在此目录下:
zR_l^NK BW=6gZ_ # mkdir /home/FTP
0 3 $
W @$}\S # chown FTPUSR /home/FTP
r9*H-V$ l<_mag/j9o # chgrp FTPGRP /home/FTP
'6J$X- Eakjsk n8aiGnd=v
"dOY_@kg 下面为磁盘限额建立数据表:
S9+gVR8]C Dq4}VkY # use FTP
J&1N8Wk) xi=uXxl CREATE TABLE quotalimits (
_'dy$.g a3IB, dr5P name VARCHAR(30),
lS*.?4zX GhA~Pj ZS quota_type ENUM("user", "group", "class", "all") NOT NULL,
O'U,|A y s6"Q[B per_session ENUM("false", "true") NOT NULL,
cty#@?"e g]JI}O*5 limit_type ENUM("soft", "hard") NOT NULL,
4<Y[L'UaA@ )3">%1R bytes_in_avail FLOAT NOT NULL,
qZ1PC> 3PeJPw bytes_out_avail FLOAT NOT NULL,
|]b/5s;> 8so}^2hTlT bytes_xfer_avail FLOAT NOT NULL,
481u1 NZ9,9 files_in_avail INT UNSIGNED NOT NULL,
k
rjd:*E baG I(Dk files_out_avail INT UNSIGNED NOT NULL,
o!0a8i NH6!|T files_xfer_avail INT UNSIGNED NOT NULL
czi!q1<vg <)rH8]V );
?IO/zkeXg !gQ(1u|r hmk5
1 :Xr3 3 CREATE TABLE quotatallies (
74wa D)6|| z} name VARCHAR(30) NOT NULL,
(XWs4R.mkb (I
g
*iJ%2 quota_type ENUM("user", "group", "class", "all") NOT NULL,
1&nrZG9 * OFT)S bytes_in_used FLOAT NOT NULL,
o62gLO]z@ wj~8KHan bytes_out_used FLOAT NOT NULL,
hV>Ey^Ty ^E*C~;^S bytes_xfer_used FLOAT NOT NULL,
)A;<'{t #L f89<o#bm7h files_in_used INT UNSIGNED NOT NULL,
36UWoo Yb/^Qk59 files_out_used INT UNSIGNED NOT NULL,
^>uGbhBp ^T>.04";x files_xfer_used INT UNSIGNED NOT NULL
?id^v 7d w`:KexD+ );
.1M>KRSr, uS.a9
Q( 'iK*#b8l JDlIf 说明一下,quotatallies表不需要作修改,它记录了用户当前的磁盘使用情况,由程序自动记录
`rLMMYD= %&GQ]pmcY 要注意的是quotalimits 表中一些字段的含意
{.W%m N?:S?p9R@ quota_type 磁盘限额的鉴别,可以设置单个用户,也可以设置一个组中的全部用户,还可以设置全部用户
$%t ]UTP~2N bytes_in_avail 上传最大字节数,就是FTP用户空间容量 (设置这个字段的时候是以byte(字节)为单位,如果要限额在10M,那就是10240000,下面也一样)
/m:}rD 8yl/!O,v bytes_out_avail 下载最大字节数,需要注意的是,这个字段中记录的是用户总共能从服务器上下载多少数据,数据是累计的。
tJ3s#q6 Yb*}2 bytes_xfer_avail 总共可传输的文件的最大字节数(上传和下载流量)需要注意的是,这个字段中记录的是用户总共能传输文件的最大字节数,数据是累计的。
=wc[r?7 :{<HiJdp files_in_avail INT 总共能上传文件的数目
#xB%v GV/FK{v5 files_out_avail INT 能从服务器上下载文件的总数目
RzRLrfV ' 'N@ <| files_xfer_avail INT 总共可传输文件的数目(上传和下载)
j+seJg<_ )qe o`4+y af{K4:I
1Btf)y' 测试
dno*Usx5d0 :#;?dMkTY 首先停掉inetd的ftp服务
6 h):o iqYc&}k, # ps ax|grep inetd
54&2SU$kx 6!N&,I 得到inetd的线程号
A}# Mrb -B!pg7>'## # kill 得到的线程号
/@e\I0P^ I&0yUhn |n/id(R+ 1??RX}8[L+ 启动proftpd
!b=$FOC> eS|p3jk; # cd /usr/local/proftpd/sbin
-)GfSk
c$;enAf@ # ./proftpd
"G:>}cs%? b%F*N r 如果出现错误提示可以进入proftpd的调试模式进行调试:
x&wUPo{ d=XhOC$ # ./proftpd -n -d 5 -c /usr/local/proftpd/etc/proftpd.conf
|@nXlZE #.RI9B proftpd就会将调试信息打印到consle上以供调试之用。
AF}HS8eYy k:.c(_2M Lb/_ULo6-V ~ln,Cm} 4 添加一个测试用户并为他设置磁盘限额
ebchHnOd ,58[WZG use FTP
3z<t# tuSgh! `,O^=HBM zb (u?U 添加用户
+TX]~k79Oq =&'j;j INSERT INTO FTPUSERS (userid, passwd, uid, gid, homedir, shell)
WUWQcJj FtXEudk valueS ('user1', '999999', '2001', '2001', '/home/FTP/user1', '' );
t Ks0]8tc HT'dft # H#D=vx' (;h\)B!o 设置磁盘限额
<LE>WfmC =9M-N?cV 将上面建立的user1帐号给予10M空间,最多能上传500个文件到服务器上,文件传输流量为20M,只能传输10个文件。
*V/SI E*8 X}Lp!.i9o 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` )
RzkJS9)m |^{IHF\ VALUES ('user1', 'user', 'false', 'soft', '10240000', '0', '2048000', '500', '0', '10');
0IK']C +?p ;,Z%5 不需要设置的部分用0代替就可以了。
ZO~N|s6B^ {*m?t 7 K+Qg=vGY %-dGK)? 在windows提示符下登录ftp服务器。输入用户名user1,密码999999
mon(A|$|j 8b/yT4f c:\> ftp 192.168.0.1
(|-/S0AV q$K~BgFzpZ xab[ $f%_ 4 = 运行quote SITE QUOTA显示当前用户的磁盘限额
=uH`EkY: bCsQWsj^NW ftp> quote SITE QUOTA
s`{O- uf6{M_jXZ 200-The current quota for this session are [current/limit]:
[T|~Kh%# .Qaqkb-Ty Name: user1
7@`(DU`z ^t*BWJxPC Quota Type: User
4PdFq*A 0Z\fK>yw Per Session: False
BB-`=X~:m Qk6FK]buV Limit Type: Soft
x>K em$z ~I'hiV^- Uploaded Kb: 0.00/10000.00
D_{J:Hb `CV a`% Downloaded Kb: unlimited
,[x'S>N C$_H)I Transferred Kb: 0.00/2000.00
h1"#DnK7 'ySWf,Q^ Uploaded files: 0/500
6Z3v]X czj[U|eB}= Downloaded files: unlimited
8=$@azG _L"rygit Transferred files: 0/10
? in&/ZrB a*=e 3nS 200 Please contact
root@wwwx.3322.org if these entries are inaccurate
niFjsTA.Z 0Y\u,\GrxW dsh}-'> ukN#>e+L1 数据库用户验证和磁盘限额测试成功!
-Iq#h)Q* te1lUQ I(2ID + 7|2:;5:U 另:如果添加了FTPGRPS表,也可以为此添加记录,不过一定要注意在members的字段多个成员一定要用逗号隔开。
j"f]pzg& pgI@[zp7 INSERT INTO FTPGRPS VALUES ('FTPGRPS', 2001, 'FTPUSR');
0j3j/={|.1 7JujU.&{6 /q]WV^H $jm'uDvm 关于匿名登录:
A/'G.H Dhq7qz 本文的ftp服务器提供了匿名登录服务。对于匿名登录用户,我专门在硬盘上划分了一个2G的分区/ftp,所有的匿名用户文件都放在这个单独的分区里。
0-=QQOART\ HGPbx$! f1JvP\I0Q /({5x[ 添加匿名系统用户组ftpusers和匿名用户ftp
VRD2e
,K Blu^\:?#z- # pw groupadd ftpusers
JAgec` T% |u03~L9G # pw useradd ftp -g ftpusers -d /ftp -s /sbin/nologin
_yU
e2Gd l9n8v\8,o 如果ftp用户已经存在使用如下格式
&4]%&mX)- fz:F*zT1 # pw usermod ftp –g ftpusers –d /ftp –s /sbin/nologin
P afmHXx 'Y[\[]3[8 -2f0CAh~ m0 `wmM 在/ftp下建立匿名用户目录并设置权限
%F03cI, 9!o:)99U # mkdir /ftp/incoming
iK)w3S}k1y )]v vp{ # mkdir /ftp/pub
i^
1P6B X2s=~)`#c # mkdir /ftp/bin
KBXdr5 2"
!Qn:PSk # mkdir /ftp/etc
Xc'yz 2B gbo{Zgf< # chown ftp /ftp/incoming
55hJRm3 i<-#yL5 # chgrp ftpusers /ftp/incoming
@T1-0!TM') MYLq2g\ 4/HyO\?z5 X^"95Ic 测试
eGZIdv1 n}a# b%e 在浏览器地址栏输入
ftp://192.168.0.1 ,应该显示刚才建立的几个目录。进入incoming目录,应该可以在里面新建文件夹或文件。这样就完成对匿名ftp的测试!
(xq25;|Y GK:*|jV &bTadd%0 yBeSvsm 注意:由于我的这个配置文件设置了每台主机的最多并发连接数为3
SdN|-'qf x_#yH3kJ MaxClientsPerHost 3
|rsu+0Mtz ,VbP$1t 所以打开多个ftp登录窗口时会报错。
,~c:P>v= D_'Zucq B>gC75 ^lbOv}C* F)!B%4 sA:0b5_a 建立proftpd的启动脚本
o:m:9dn AM,@BnEcuT # cd /usr/local/etc/rc.d
&EZ28k"x J1g
`0XH # vi proftpd.sh
4uD!-1LT@ c}$?k@= 内容如下:
z;1yZ4[G 3xbA]u;gp ZCV&v47\p_ i
yMIP~N,$ #!/bin/sh
."cC^og
c!E+&5|n KK/~W _epi[zf@ case "$1" in
e~jp< 4 yG{'hx6H >|mmJ4T .z)E start)
iwrS>Sm L/#^&*'B /bin/mkdir -p /var/run/proftpd
A03,X;S+ n`;=^^ B if [ -x /usr/local/proftpd/sbin/proftpd ]; then
"m(HQ5e)* H"].G^V\6 /usr/local/proftpd/sbin/proftpd && echo -n ' proftpd'
kznmA`#jn 3/P2&m fi
B!yAam#^ NkA|T1w7 ;;
n*hHqZl k oZqoP 7l%O:M(\ (?;Fnq stop)
`+{|k)2B ,accw}G killall proftpd
tBp dKJn## d%\en&:la ;;
d 6j'[ (khjP, *)
m<hR
Lo 8?J\ echo "$0 start | stop"
yIOoVi\m G"3D"7fa ;;
QzCu$ [
ze{ 9g|o17 tFO86 !ln esac
ku&IVr% Ws{2+G~ (完)
aU4v-9@U8 lt`#or"o Xq` '^) cEhwv0f!qS 设置脚本可执行
2a3i]e5Kt s:~3|D][ # chmod 750 proftpd.sh
#0zMPh /U} ej4xW~_ uwU;glT L?23Av0W Proftpd全部安装结束后,就可以不用inetd(Internet超级服务器)了。
LSs!U
3" 8%@7G* 编辑/etc/rc.conf文件,将inetd=”YES”改成inetd=”NO”。
j:0(=H!# ~L<q9B( @ 编辑/etc/inetd.conf文件,将带有ftp字样的行前面加上#号。
!:'%'@uc z|x0s0q? 这样在重新启动后,inetd将不会自动运行。
G n>#Mvq =TE6R 0b /n"Ib)M b<u 使用本文的ftp服务器加上第三步介绍的web服务器应该可以提供比较基本的虚拟主机服务了。以上面建立的测试用户user1为例,其方法是:
Zx@/5!_n. MDM/~Qpj_ 设置了数据库用户和磁盘限额后,编辑apache的配置文件/usr/local/etc/rc.d/httpd.conf,为用户配置虚拟主机并将文档目录指向/home/FTP/user1。这样user1就可以自己更新主页了。
:U$<h Lp`q[Z* hB]4Tn5H b%z4u0 第五步:安装配置E-mail服务器
)#%k/4(Y Ml@,xJ/aia {=pRU_-^ _e
E(P1 演示地址:
http://baihua.3322.org/cgi-bin/sqwebmail xxpvVb)mF )S]4
Kt_ iceblood前辈制作的qmail安装包使安装qmail邮件服务器简化了许多,只是sqwebmail汉化的好像有点问题,我下载了一个汉化好的sqwebmail,将它填入iceblood前辈的安装包内,可以随安装包一次安装完成。为了提供邮箱注册功能,我使用了最新版本的vqregister-2.5,并将其界面进行了简单的汉化。
z^;*&J
A'^y+42jY &!x!j,nT *fQ$s 本E-mail服务器包含的功能
IV]s! E Z15 1、Qmail帐号与系统帐号的分离。
5|. _K(M f5.rzrU 2、Qmail邮件列表功能。
60c cQ7= #T &z` 3、Qmail自动回复功能。
qv>?xKSm <xe=G]v 4、对vpopmail的支持。
N|WZk2 " Oc8]A=M12 5、邮件帐号WEB管理方式。
X458%)G!(K f?}~$agc 6、邮件的WEB使用方式,如:WEB发邮件,查看邮件。
2Z!%Q}Do ,1J+3ugp& 7、能任意调整WEB的CGI以及HTML路径。
mltG4R
? 0n` 1GU)W 8、SMTP服务的密码验证功能,能有效的防止别人利用自己的服务器发送匿名信。
c((^l& Vj(}'h-c\ 9、选择性安装webmail。
!*JE%t d}#G~O+y3v 10、对虚拟域的支持。
@62QDlt; HIM>%
11、增加qmail的管理脚本,安装后可以运行qmail start|stop|restart来管理qmail。
Wyh
f4eLnY 12、全面支持Mysql数据库,只要在SQL设置区里打开数据库的支持,并设置好数据库密码,就可以支持数据库了。
gBBS}HF DlIy'@ . 13、增加了QmailAdmin和sqwebmail的中文界面!![新]
Pp.qDkT R-CFF 14、对很多包有是否安装的可选择余地![新]
"N\>v#>C 9U$n;uA 以上为iceblood前辈制作的qmail安装包v1.5.3自带功能。
j{PuZ^v1 o_C
j o 在此基础上我添加了修改过的sqwebmail的中文界面并增加了邮箱注册功能(中文界面)。
t F^|,9_< aMI\gCB/ *ElR .b'hVOs{ 下载qmail安装包1.5.3
\@6PA lt%bGjk ftp://baihua.3322.org/pub/server/Qmail_setup-v1.5.3.tar.gz TNs;#Q }$E cNm$% 下载修改过的汉化安装包sqwebmail-3.5.0
vd+yU9 ?+EN.P[;3 ftp://baihua.3322.org/pub/server/sqwebmail-3.5.0-cn.tar.gz N&ZIsaK,j iF:`rIC 下载我汉化后的vqregister-2.5
BCN<l +u 29#&q`J ftp://baihua.3322.org/pub/server PgZeDUPP wa/
:JE 英文原版vqregister-2.5下载地址
3%c{eZxG= 9nIBs{`/Ac http://inter7.com/vqregister.html 3N%%69JN) -OY[x|0 0NKo)HT ma9VI5w 首先把下载的安装文件上传到/home/ylf/app目录
I |@'2z2 R?bF
b|5t 解压缩qmail_setup-v1.5.3安装包
&Xw{%Rg 5T]GyftFV # cd /home/ylf/app
aDr46TB`J 'U=D6X%V9m # tar zxvf qmail_setup-v1.5.3.tar.gz
A'(v]w U-+%e:v
进入解开的目录
uEp
v l /Hxz@=LC1 # cd Qmail_setup
O%:EPdoU 1~X~"M 将新的sqwebmail中文安装包拷到此目录
)<W6cDx'H+ F=}-ngx8& # cp ../sqwebmail-3.5.0-cn.tar.gz ./
NY]`1yy Zr!he$8(2 编辑安装配置文件setup
(W.euQy erG@8CG # vi seutp
dno=C mMLxT3Ci8 按系统情况修改如下内容:(这里是我的配置)
)./pS~
&Uqm3z?v sA6Ku(9 \g|u|Y.2[ # 操作系统类型为FreeBSD
;-Bi~XD 9D
2B8t"a _OS="FreeBSD"
%\xwu(|kN !L5[s |cZKj|0> Id->F0x0 # 默认语言为中文
5$SO iM'{,~8R5 _LANG="CN"
{UX[SAQ etbB;!6 ~c8Z9[QW h9Zf4@w # 不安装apache
7=jeq|&kN DFvLCGkDk _INSTALLAPACHE="NO"
~$I2{I#W [3":7bB 'E pfCNFF*" C+/D!ZH%P # 添加qmail用户
O{"
A3f h#p1wK;N _ADDQMAILUSERS="YES"
Y)%CxaO` [[fhfV+H K<`"Sr |Tz/9t # 域名
u#tLY/KA -#XNZy!// _DOMAIN=mail01.3322.org
imE5$; lH_S*FDa 7X| M\WUq }^J&D=J5V # 邮箱管理员密码
UYu 54`'kg -:txmMT _MAILPASSWD=1234
nU Oy-c eit>4xMu mtEE,O!+ 8YI.f # CGI路径
,^JP0Vc* BS }uv3 _CGIBIN=/usr/local/www/cgi-bin
hM*T{|y L@rKG~{Xy aO@zeKg oh{!u!L`] # Html路径
m4:b?[ n*\AB=|X _HTMLPATH=/usr/local/www/data
Jt4T)c9 G7lC'~} N"~P` H![x 7QiJ1P.z % ~%>3 H9)$ #r6i ###########--------Advanced set--------#################
_tE$a3`
mea]m)P # 设置邮箱容量50M
Q$iGpTL fT.5@RR7^ _MAILSIZE=50000000
9.5hQZ B1@c`BJ;9T # enable virutal domain lookup via reverse ip address lookup for virtual domains. "y" and "n"
[ @>8Qhw !:3NPjhf1Y _USERCRUISE=n
'{EBK tYt/m6h # apache 安装路径
qIQvix$8 _\ n'uW$ _APACHEPATH=/usr/local
,cm;A'4] DBi3 j # 不使用系统用户验证
* wN+Ak q UP:+1Sp9 _SYSTEMPASS=n
&libC>a[ Jrlc%,pZ # 安装 vpopmail
dL"$YU9z 6USet`# _VPOPMAIL="YES"
Z2B59,I 1N<)lZl) # 安装 ezmlm
~AuvB4xe~ k}-%NkQ
9O _EZMLMIN="YES"
IsO'aFK)ln AX8;x1t^. # ezmlm coding
_-g:T n15c1=gs _EZMLM=ch_GB
zx{\SU Qwx}e\= # 安装 autorespond
hB<.u Y VTY{>Q _AUTORESPOND="YES"
ja2LQe@Q GpF, =: # 安装 QmailAdmin
>fo &H_a VIbm%b$~ _QMAILADMIN="YES"
,K7C2PV6 yoV"?W>! GMOv$Tn-_L {U=za1Ga ##########--------SqWebMail set--------#############
uXeB OLC j^ZpBN L # 安装 webmail
r jU $*+ $y=sT({VVe _WEBMAIL="YES"
BU:s&+LYUv vzaxi;S< # webmail coding set.have "iso","gb2312","big5" and more.
@N.W#<IG zE.4e&m%Z? _MIMESET=gb2312
fx.FHhVu UeE& 8{=d # webmail use SSL,"YES" or "NO"
9>le-}~ 'ESy>wA{y< _WEBHTTPS="NO"
)+w0NhJw r3ZY`zf #eE:hiu<v F5L/7j<} ##########--------SQL set---------################
OR&+`P"-\ wlKpHd* # 使用数据库
@tjC{?5Y \{?v|%n=/i _SQL=y
~"EkX a|?CC/Ra # mysql 主机
. 36'=K OY~5o&Oa _SQLHOST=localhost
?vf{v 7Yj\*N # mysql 用户
$Ry
NM2YI TQ@*eoJj _SQLUSER=root
lKIHBi 9
J5Z'd_ # mysql 密码
f{ S)wE>; 1t!Mg{&e[x _SQLPASS=123456
\/K>Iv'$ 40%p
lNPj # include path
9FK:lFGD ;
@Gm@d _INCDIR=/usr/local/include/mysql
:CHCVoh@95 /q='~t # lib file path
6mdJ
=b# 5bmtUIj _LIBDIR=/usr/local/lib/mysql
)IZ$R*Y{ #FaR?L![Y !;CY
@= -oF4mi8S shn`>=0.& FG#E?G 然后在安装脚本里找到下面几句
#C%<g:F8 o/)\Q>IY tar xzf sqwebmail-3.3.7.20020910.tar.gz
(a7IxW w #(XiH* cd sqwebmail-3.3.7.20020910
'{( n1es !c1
E if [ "$_LANG" = "CN" ]; then
ew?UHV S2jo@bp! cp /tmp/iceblood/Qmail_setup/iceblood/sqwebmailcn/*.html sqwebmail/html/en-us
nk-6W4 eMz,DYa/G fi
MzK&Jh Vg[U4, `q_7rrkO RSmxwx^ 将其改为
MiOSSl}; zi*D8!_C tar xzf sqwebmail-3.5.0-cn.tar.gz
e4CG=K3s %_tL}m{? cd sqwebmail-3.5.0
e1&c_"TOih 5-u=ZB%p #if [ "$_LANG" = "CN" ]; then
,st4K;- $#Ji=JX #cp /tmp/iceblood/Qmail_setup/iceblood/sqwebmailcn/*.html sqwebmail/html/en-us
u> >t"w 0HxF#SlKM #fi
-JwH^*Ad fngZ0k! Fd'Ang6" 8a?V h^ 改好后保存。这样安装包就可以自动安装新的sqwebmail程序。
2?-}(F;Z
8CEy#%7]} A;kAAM )_bXKYUX*0 让setup可执行
>!WJ{M0 uF(-h~ # chmod 700 setup
pM
VeUK? ;y k@`< 执行setup安装
TR)'I 1YnDho;~ # ./setup
IHagRldG W=)}=^N0 安装完成后系统自动运行qmail程序。可以通过qmail start|stop手动启动或停止qmail程序。
V<nzThM\ Zqam Iq R!$j_H _TX.}167;- 测试
|y'q`cY s
6hj[^O 因为我们前面设置了虚拟主机www01.3322.org 和 www02.3322.org,他们的文档目录不是安装qmail时所指定的目录。为了保证邮件访问正常,我们再添加一个虚拟主机mail01.3322.org,
c yN_Sg +%gh? 将它的文档目录指向/usr/local/www/data:
4a)qn?<z D]oS R7h 先到希网申请一个域名,我们假设它是mail01.3322.org
$<33E e:a Uc9Uj 6K<vyr40 j@9nX4Z 编辑/usr/local/etc/apache/httpd.conf
]i$CE|~ J::SFu= # vi /usr/local/etc/apache/httpd.conf
{n1o)MZ]R 4L5Wa~5\ 添加下面一段
6 'wP?= QL\'pW5 3{$cb"5 `pcjOM8u ServerAdmin
webmaster@mail01.3322.org 6(ja5)sn* .)W8
U [ DocumentRoot /usr/local/www/data
DDkOg] MCYrsgg} ServerName mail01.3322.org
45-pJf8F /-4%ug tD$ ErrorLog /var/wwwlogs/mail01.3322.org.error.log
O>k. sO
< DTr0u}m CustomLog /var/wwwlogs/mail01.3322.org.log common
i,bFe&7J jliKMd<? "HYK~V 92} ,A`= ZGp8$Y>r Y+G4: 重新启动apache
ul% q6=f) TkQ05'Qc # /usr/local/etc/rc.d/apache.sh stop
3cOXtDV YT e| kYu[^ # /usr/local/etc/rc.d/apache.sh start
v1)jZ.: :W'1Q2 ^rxXAc[ DsFrA] 首先确认mail01.3322.org已经正确指向了你的主机ip地址。然后在浏览器地址栏输入
http://mail01.3322.org/cgi-bin/qmai...g,密码是1234。
=n#xnZ3 mY%PG 建立一个新用户,然后在浏览器地址栏输入
http://mail01.3322.org/cgi-bin/sqwebmail a!>AhOk. 8\ :T*u3 以你新建立的用户登录,就可以收发邮件了!
"kN5AeRg q+m&V#FT% XE>XzsnC khEHMvVH 关于SMTP验证的问题:
h<uRlTk r<bg->lX 网上有很多讨论关于qmail安装包的smtp验证有问题的文章,我经过反复测试,发现iceblood前辈的安装包本身并没有问题,问题出在foxmail上,如果你使用Foxmail4.2发邮件,不需要在smtp验证添任何内容就能发出去;如果是使用outlook,不添或添错了smtp验证内容都发不出去。大家可以试试。所以我这里没有给qmail-smtp打补丁。(iceblood前辈的安装包不同版本之间好像有区别,建议大家下载我这个)
hy6px 0,VbB7 z pWQ?pTh rN>f"/J
| 安装vqregister-2.5
F!Nx^M1 u/,m2N9cL vqregister-2.5是vqsignup的升级版本,提供qmail邮箱注册功能。
8cW]jm ,':?3| $c 进入vqregister-2.5安装目录
UDxfS4yI ^LnCxA&QH # cd /home/ylf/app/vqregister-2.5-cn
fHe3 :a5+W EW YpYMkm 8# 9.a]AX 3tgct <" 编译安装前需要修改两个文件
cvAkP2 1o.]"~0: 修改register.c文件
T@f$w/15 okfhd{9 # vi register.c
9v/1>rziE <.:B .k 找到下面一行
[dUW3}APV &:Raf5G-E eret = execl("/var/qmail/bin/qmail-remote", "/var/qmail/bin/qmail-remote", p, "
register@inter7.com", cemail, NULL);
%"{SGp HhIa=,VY 将里面的qmail路径指向正确的路径,这里改为
G0<m3 Up T}U`?s`) eret = execl("/usr/local/qmail/bin/qmail-remote", "/usr/local/qmail/bin/qmail-remote", p, "
register@inter7.com", cemail, NULL);
c!6.D B6|=kl2C hXZk$a' tX6n~NJ$ 修改安装配置文件Makefile
]BX|G`CCc .`iOWCS # vi Makefile
o2&mhT z,$^|'pP 找到这几行
[?_^Cy 4fp}`U DEFS = -I$(VDIR)/include -I/usr/local/mysql/include
1[mX_ }K 'V } -0 dd_n|x1 rr9N(AoxW LIBS = -L$(VDIR)/lib -lvpopmail -lcrypt -L/usr/local/mysql/lib/mysql -lmysqlclient
l2z@t3{ O &;Cca qK,rT*5= 51l : INSTALL_DIR = /usr/local/apache/cgi-bin/vqregister
E%2]c?N5 4Bs '5@ UJ
n3sZ<} g \&Z_ 将它们改成实际路径,这里是
<U$x')W Qne@Vf kA DEFS = -I$(VDIR)/include -I/usr/local/include/mysql
!CY:XQm d3<7t Wv8?G~> 6 -N 442 LIBS = -L$(VDIR)/lib -lvpopmail -lcrypt -L/usr/local/lib/mysql -lmysqlclient
0EKi?vP@y7 J>TNyVaoQ ACc tyGd ^|hlY]Ev INSTALL_DIR = /usr/local/www/cgi-bin/vqregister
*%E4,(T Nu/wjx$b QVJq% P of659~EIW 编译安装
=;ClOy9 @>cz$##` # make install
J;|a)Nw qHaH=g% |Bz1u|uc ~G,_4}#"pM 安装完成后需要编辑vqregister的配置文件
<hvs{}TS ~t^
Umx"Ew # cd /usr/local/www/cgi-bin/vqregister
iO+,U} & #9zpJ\E # vi vqregister.conf
:y'EIf 0$JH5RC 修改下面几项
G%iTL"6 sPX&XqWx o=J-Ju _Z7`tUS-j # 设置管理信息
+`,;tz=? 6S`0<Z;;/ AdminEmail
postmaster@mail01.3322.org ~(nc<M[ ;NU-\<Q{ bd]9kRq1K L"bZ~'y # 设置邮箱使用的域名
aD]!
eP/) y+3+iT@i AllowDomain mail01.3322.org
0vETg'r m<H{@ZgN( *5IB@^< Hz\@# 其它项目可根据注释修改,不改也行,直接保存即可。
&AN1xcx\ %UAF~2]g X NgcBSD T/a=z 测试vqregister
m9vX8;. k&2=-qgVR 在浏览器地址栏输入
http://mail01.3322.org/cgi-bin/vqre.../vqregister.cgi ,按要求添入注册信息,提交后显示注册成功信息,证明你的vqregister安装成功!如果出现错误,请按提示检查注册信息或检查vqregister.conf文件。
>
vdmN]
C];P yQS ],_+J* fuzB;Ea 第六步:安装配置视频点播服务器
h2 KI D|)a7_ I)tiXcJw AHRJ7l;a 演示地址:
http://baihua.3322.org/media h);^4cU U.KQjBi FreeBSD下的流媒体视频点播服务器软件可以使用苹果公司的Darwin Streaming Server或者Real公司的Helix Universal Server,前者最大的优点是免费,后者在网上使用的很多。我在使用这两种产品时发现Darwin Streaming Server对各种媒体格式支持的没有Helix Universal Server支持的好,比如象现在流行的mp4,再加上现在网上rm格式的节目源非常丰富,制作rm媒体文件的工具也非常多,所以本文还是选用了Helix Universal Server做为视频点播服务器。
N+'j on}U "$XX4w
M 下载FreeBSD版的Helix Universal Servevr Basic,免费版的Helix Universal Servevr最大支持1M的带宽。并可申请1年的使用证书。
p}^5ru T]\c2U http://forms.real.com/rnforms/products/servers/eval/mbps.html ];Z6=9n s'h;a5Q1'Q 需要填写一些信息才能下载,注意要添入正确的email地址,因为下载后授权证书会发到你添的邮箱里。还有操作系统一定要选FreeBSD!
,Klv[_x7 )rq |t9kix 下载后的文件名为rs901-freebsd4-ia32.bin,将它上传到/home/ylf/app目录。
MfP)Pk5 z@yTkH_ 0?<#! 7Ml4u%? 安装过程很简单:
n:,mo} ?X .E<nQWz8 进入/home/ylf/app目录
sU"%,Q5 .qgUD # cd /hom/ylf/app
Iko]c_W0 O2?C * 修改rs901-freebsd4-ia32.bin权限为可执行
d'RvpoM /]_ t-> # chmod 700 rs901-freebsd4-ia32.bin
unLhI0XW xWxc1tT` 执行rs901-freebsd4-ia32.bin进行安装
d~Z\%4 5&ku]l+ # ./rs901-freebsd4-ia32.bin
l~6K}g? m1l6QcT1 当提示输入证书文件路径时先按回车跳过
2;8m0+tl f8Iddm# 接下来要你看一个协议,按方向键走到最后
-QrC>3xZR BmG(+;;& 下面提示安装位置
~SnUnNDm ` FTf#"'O 输入/usr/local/realserver
5~L]zE 5% 2A[B 接着会有一些端口选择的提示,一般按回车接受默认值即可,80端口如果冲突可改为8080。系统还会随机产生一个管理端口,把端口号记下来,我们安装后通过web页进行管理时要输入这个端口号。
Y{p$% BAf$tyh 另外安装时还会提示输入管理员用户名和密码,这个也要记下来。
tAdE<).! ^7-zwl(>?N #c^V% :?>7Z6 安装结束后,打开real公司给你发的邮件,里面有一句“License key for Helix Server may be downloaded from:”,下面的连接就是下载证书的连接。下载后把证书文件上传到/home/ylf/app目录。然后拷贝证书文件到指定的目录
l/&.H F [9 W@<p # cd /home/ylf/app
Y%pab/Y [nTI\17iA # cp RNKey-Helix_Server-90-2804003590401434.lic /usr/local/realserver/License
KK){/I=z Q&} 0owe 其中RNKey-Helix_Server-90-2804003590401434.lic为证书文件名,你的证书文件名会不同,
ZK5nN9` /wV|;D^ ) /usr/local/realserver/License是证书文件路径。
l8\UO<^fY CMa6':~ 至此安装过程结束。
&X=7b@r T @ c~ql ,_2-Op A,}M ^$@ 进入程序目录
jD:
N)(( ]&cnc8tC # cd /usr/local/realserver
h051Ol\v* C($l'jd& 启动Helix Universal Server
d1b]+A G4 ;_o]$hV| # Bin/rmserver rmserver.cfg
B,%Vy!o Nwvlv{k' 出现一连串的“Starting PID”提示,证明Helix Universal Server已经启动。
JU 9GJ" C]`uC^6g "y1Iu jvzioFCt 测试
d9N[f> ,YYEn^:> 在浏览器地址栏按如下格式输入
http://192.168.0.1:28274/admin/index.html ,这里28274是安装时系统随机产生的管理端口号,你的和这个不一样。
Sc)^k ]c.w+< 这时会弹出登陆对话框,添入你上面设置的管理员用户名和密码,这样就打开了管理界面。
g@.$P>Bh "yWw3(V2> 选左侧的Server Setup——Media Samples就可以看系统提供的演示多媒体文件了!注意客户端要有RealPlayer8以上的媒体播放器才行。
k]b*&.EY1 Cf{F"o 如果要添加自己的rm文件,可以将文件放到/usr/local/realserver/Content目录,然后在RealPlayer上输入地址
rtsp://192.168.0.1:554/xxx.rm就可以看了,其中xxx.rm是你的rm文件名。
rQ;w{8J\t \Wbmmd}8 多媒体文件存放路径可以通过Server Setup——Mount Points修改。
_plK(g-1J% e+
xQ\LH ^D yw(>9 K1&
QAXyP 有一个问题值得注意:当系统使用超过一块网卡时,Helix Universal Server在安装时总是将管理端口自动绑定到系统的第一块网卡上,也就是使用ifconfig命令察看网卡信息时显示的第一块网卡。这样如果你的终端不是连接在第一块网卡上,将不能打开管理web页面。
9&6j uL gQ1obT"| 这个问题可以在能打开管理web页面的时候,选Server Setup——IP Binding,通过添加地址0.0.0.0来绑定所有的网卡。
^ Ltho` P3M$&::D- 另外还可以通过修改Helix Universal Server的配置文件来解决:
[$N_YcN? U1RU2M]v # cd /usr/local/realserver
u-_r2U u
v%Q5O4 # vi rmserver.cfg
Oy6fl'FIt ho]:)!|VY 添加如下内容:
@6u/)>rI d,<ni" FDHW'OP4 E$8JrL u9lZHh#V- 7[m?\/K~ Z;0~f<e%
Jt~Ivn, 重新启动Helix Universal Server即可。
RObnu* G6SgVaM m]p{]6h |tXA$}"L8 如果自己制作rm流媒体文件,有两种工具很好,一个是real自己的Real Producer Plus,另一个是网络多媒体梦工厂real2002。前者功能强大,后者是类似前者的简化版,用起来很方便。