测试
*&WkorByW P$YY4|` 首先以root身份执行线程察看命令top,列表中应该有下面几个线程正在运行:
C$"N)6%q 4*k>M+o/C4 PID USERNAME PRI NICE SIZE RES STATE COMMAND
"4Joou"U #[|~m;K(w 69 root 2 0 440K 296K select natd # 网络地址转换进程
U3Fa.bC6} =mVWfFL 132 root 2 0 3692K 3052K select httpd # apache进程
HaJs)j y^PQgzm] 166 mysql 2 0 27480K 4824K poll mysqld # mysql进程
{1 VHz])I t=,ZR}M1` 在浏览器地址栏输入
http://192.168.0.1 ,如果显示apache的欢迎页面,证明web服务器安装成功!web页面文件存放在/usr/local/www/data目录中,你可以把自己的网页拷贝到这个目录,就可以访问自己的主页了!
?q^o|Y/ ]><K8N3Z 键入命令
st-
z>} zD#$]?@ b # mysql
[/h3HyZ. {e'P*j 出现下面显示证明mysql安装成功!
0P{^aSxTP OQlmzg Welcome to the MySQL monitor. Commands end with ; or \g.
iA~LH6 l dd8'2 Your MySQL connection id is 2 to server version: 3.23.52
H7`JqS 6MCLm.L d#-scv}s5 Dno]N Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
zd%n)jlwR mu#IF'|b Mi>! Tu!2lHK; mysql>
QN4{xf:}S Vy.gr4Cm 键入exit退出mysql。
Y ~TR`y
;;4>vF#* ~FP4JM,y6 Kw%to9eh) 为mysql的root用户设置一个口令123456
(:(Imk;9 _i3?;Fds # mysqladmin -u root password '123456'
M]Kxg; tPp9=e2[s I cJy$+ ;[qA?<GJ 现在我们来安装一个支持php+mysql的论坛。到
http://www.faeryboard.com/去下载完美版的仙境论坛程序。将下载的rar压缩包解开,然后使用ftp上传到/home/ylf/app目录。
COc, CXQ +h 5dvP~sw WyA`V C 事先备份web服务器演示页面
!W\za0p o+],L_Ab # cd /usr/local/www/data
{yzo#"4Oy GhJ<L3 # mkdir backup
Y>J$OA: q1a*6*YB # mv * backup
{4F=].! QZh#&Qf; e 2"<3 z|M+
FHl$ 将论坛程序拷贝到/usr/local/www/data目录
La2f]+sV qjm6\ii:) # cd /home/ylf/app/vbb2.3.0final
V}Ok>6(~ U/#X,Bi~ # cp –r * /usr/local/www/data
wsKOafrV 7Dt*++: 编辑论坛配置文件
o8B$6w:_ 'bQjJRq! # vi /usr/local/www/data/admin/config.php
[PIh^DhK h5o6G1ur 内容如下
~D0e\Q(A 5!s7`w]8*0 ^M
Al
MMN"j _:1s7EC /////////////////////////////////////////////////////////////^M
tLE7s_^ ,q K'! // Please note that if you get any errors when connecting, //^M
On~w` A{ a4;`}5 // that you will need to email your host as we cannot tell //^M
.)g7s? K ?3_^SRW&a // you what your specific values are supposed to be //^M
RM3"8J uFUVcWt /////////////////////////////////////////////////////////////^M
<#ng"1J cU|tG!Ij? ^M
1CR)1H F"^/R // type of database running^M
J a7yq{j \Dx;AK s // (only mysql is supported at the moment)^M
y$K[ArqX oHPh2b0 $dbservertype='mysql';^M #数据库类型
Yn_v'Os2 jtv<{7a ^M
X:>,3[hx| OTj
J' // hostname or ip of server^M
l9Av@| yog( $servername='localhost';^M #主机名
wM``vx[/ K^Ho%_) ^M
PJ))p6
9 3P *[!KI // username and password to log onto db server^M
[9C{\t X|'[\v2ld $dbusername='root';^M #登录数据库用户
iu iVr$E +C36OcmT~ $dbpassword='123456';^M #密码
ROr|n]aJj ~f6Q ^M
O +u?Y O~OM.:al& // name of database^M
AsfmH-4) ._[uSBR' $dbname='fin230';^M #论坛所使用的数据库名称
Zs|m_O G STL+tLJ ^M
GUps\:ss 7o7*g 7 // technical email address - any error messages will be emailed here^M
| /X+2K}3 C <d]0) $technicalemail='
webmaster@yoursite.com';^M #管理信息
-4v2] j"
5 +"j ^M
0TqIRUz "C em9nuXG // use persistant connections to the database^M
@M*oq2U; f;%=S:3 // 0 = don't use^M
C/!7E: b?j\YX[e // 1 = use^M
P]0/ S aeE~[m $usepconnect=1;^M
i<M
F8$ ckkm}|&m ^M
ID~}pEQ fD*jzj7o, ?>
&S=xSs:q. >{{0odBF (完)
!8I80:e_~ !>?*gc.< ";Q}Gs} 4vi[hiV 除了root用户的密码需要添入外,其他部分可以不改。
#'5{
?Cb 629ogJo8 保存后,在浏览器地址栏输入
http://192.168.0.1/admin/install.php ,根据提示一步步安装即可。
&3|l4R\ (z:qj/| 安装成功后,在在浏览器地址栏输入
http://192.168.0.1 ,就可以看到论坛了!怎么样,挺漂亮吧!关于论坛的其他问题,请仔细看论坛安装包里面的说明文档,或者到仙境论坛的主页,那里有仙境论坛的一切!
wln"g,ct 1oI2 下一节,我们要讨论关于虚拟主机的问题。
+yxL}=4s pwVaSnre` 39bw,lRPV @2~;)* 配制虚拟主机:
{Fvl7Sh r8>Qs RnU% Apache的虚拟主机支持有两种方式,一是基于用户访问Apache主机时所使用的域名,另一种是通过指定IP地址来提供。这里我们只介绍如何通过不同的域名来实现虚拟主机的支持。
`Krk<G ^|(VI0KO 要实现基于域名的虚拟主机的前提条件是必须有两个域名同时指向Apache主机的IP地址,这里我们假设这两个域名分别是www01.3322.org和www02.3322.org ,这两个域名的文档都分别放置于 /home/www01 和 /home/www02这两个目录内,同时这两个目录已经设置好权限,对于目录让所有的人都可以读取、运行,对于文件,让所有的人都可以读取。
pB0 SCS* ;)Sf| 以下是具体的配置过程:
;+*/YTkC+P Z3f}'vr 首先到希网去注册2个域名。然后为这2个域名分别建立文档目录
V*W H K$wxiGg8P # mkdir /home/www01
ujr"_ofI $lg{J$
h8 # mkdir /home/www02
A}[x))r y\=^pla :Q}Zb,32 SM4'3d&mf 编辑apache的配制文件httpd.conf
fW$1f5g" K.Y.K$NjP{ # vi /usr/local/etc/apache/httpd.conf
]4B&8n! ),lE8A{ H 在文件最后找到下面2行
A&{eC
C x$z>.4 EKUiX#p:M /H$:Q|T} A&V'WahC@I P} w0= 2>g!+p Ox MaZVGrcC hV NT ,M Ugww!. 在2行中间添加如下内容:
!`dMTW I7+yu> NameVirtualHost * # 指定运行虚拟主机服务的主机ip地址
Nv=&gOy= 7w}]9wCN? # 静态ip方式可以将*替换为你的ip地址,动态ip直接用*即可
W^i[7 r Nk<H=kw+ -PaR&0Tt ;pqS|ayl v?l*jr1-2 GQYB2{e> ServerAdmin
webmaster@www01.3322.org #指定WEB管理员的邮箱
1-.(pA' 4veXg/l DocumentRoot /home/www01 #指定本虚拟主机的文档目录
L0*f(H ++BQ==@ ServerName www01.3322.org #指定本虚拟主机的域名
tlgg~MViS ^*F'[!. p ErrorLog /var/wwwlogs/www01.3322.org.error.log #指定错误记录应该存放于那里
zqLOwzMlLx {[bB$~7Eu CustomLog /var/wwwlogs/www01.3322.org.log common #指定常规记录应该存放于那里
v7<r-<I[ p3qKtMs0! g6@^n$Y *t`=1Ioj 'M
fVZho{ \)cbg#v {6mFI1;q >gDKkeLD ServerAdmin
webmaster@www02.3322.org j2oU1' b G@U}4'V9 DocumentRoot /home/www02
91UC>]}H e"ClG/M_XS ServerName www02.3322.org
gRwRhA/ lr=quWDY ErrorLog /var/wwwlogs/www02.3322.org.error.log
cHJ4[x= Y8/&1s_ CustomLog /var/wwwlogs/www02.3322.org.log common
u6
4{w, p+CK+m
!gi3J @ d!y_N&z|( (完)
8Rnq
&8A QEP|%$:i
Kc`#~-`,( k)agbx 创建/var/wwwlogs目录
'JJ : of>H&G)@ # mkdir /var/wwwlogs
A`V:r2hnb L(}/W~En 重新启动apache
4
;^ h5lngw # /usr/local/etc/rc.d/apache.sh stop
j|VX6U
!Hj
7|5 # /usr/local/etc/rc.d/apache.sh start
Vg7BK%
AIw~@*T 分别在/home/www01和/home/www02目录拷入不同的网页文件进行测试,注意主页名称必须是index.html或index.php
|5*:ThC[ Hi&bNM>?O [ub)`-6 u 58]t iP" 测试
0+k=gO vkLyGb7r< 确认注册的2个域名已经指向了你的主机ip。
+<)H2 Q@rlqWgU
~ 在浏览器地址栏输入域名
http://www01.3322.org 和
http://www02.3322.org ,如果分别显示你拷入的主页证明虚拟主机配置成功!
)H{OqZZYD #yOeL3|b' cUwR6I9 W,.Exh 利用上面的方法我们可以建立更多的虚拟主机,甚至对外提供主页空间服务!
} A}Vd:# IeB^BD+j <q=]n%nX u+ 8wBb5! 如果要对外提供虚拟主机服务,需要为使用者提供ftp上传功能。下一节我们将讨论如何通过Proftpd1.2.7+proftpd-mod-quotatab-1.2.4+mysql实现带有空间限额和数据库用户验证功能的ftp服务器。
|%j7Es MpJ]1 B~%SB/eu Hqb-)8 ~ 第四步:安装配置ftp服务器
B]PG 3*e )D/lm 21hTun"W pZ 7KWk4 由于为每一个需要使用ftp服务的用户建立系统帐户会影响系统的安全,所以我们使用数据库用户进行ftp用户验证。
|^O3~!JP(> X + B=?|M 系统组成:Proftpd1.2.7+proftpd-mod-quotatab-1.2.4+mysql
\n-.gG 2lxA/.f 因为ports里没有proftpd-mod-quotatab-1.2.4模块,我们下载源代码安装。
Rc}#4pM8 3#idXc 下载源代码包:(必须下载相同版本的源代码包)
G$jw#a[L oSH]TL2@Cd 到
http://www.proftpd.org 或
ftp://ftp.servus.at/ProFTPD/distrib/source/proftpd-1.2.7.tar.gz/。
*-@@t+3 Pk:b:(4 到
http://www.castaglia.org/proftpd/ 去下载proftpd-mod-quotatab-1.2.4.tar.gz。(1.2.5 版本的mod_quotatab是用在1.2.8rc1上的)
9)'wgI# H4BuxM_r 用ftp将它们上传到/home/ylf/app目录。
+[#^c3x2 fAD
{sg 然后解压缩源代码包
(n2=.9k! [L?WM>]% # cd /home/ylf/app
V QbKrnX /Mw0<# # tar zxvf proftpd-1.2.7.tar.gz
oMKG M@V ,DCrhk # tar zxvf proftpd-mod-quotatab-1.2.4.tar.gz
C{YTHNn :(i=> ~O 进入mod-quotatab目录
XZxzw*Y1J Wbi12{C # cd mod_quotatab
7qg. :h 6g"qwWZp 把mod_quotatab中的文件拷贝到proftpd 中的modules 目录中
<4*)J9V^s= Cp#}x1{ # cp * ../proftpd-1.2.7/modules
TWU1@5?Ct 1fV\84m^ ?IR+OCAA LHq*E` 在开始运行configure之前,我们要先改动一个文件
t=n@<1d '^BTa6W}m 进入 proftpd-1.2.7/contrib 目录
_j]vR _+qtH< F/ # cd /home/ylf/app/proftpd-1.2.7/contrib
OmaG|2u 4x" je 修改 mod_sql_mysql.c
R'aA\k- 8-)@q| # vi mod_sql_mysql.c
}QJ6"s
CMYkxU 找到#include 把他该为你实际路径,这里是:
`W %R B{NGrC`5) #include
1Pd2% l6T5]$ ?8$h%Ov- .7n`]S/ 然后编译安装
P,7beHjf $WbfRyXi7' # cd /home/ylf/app/proftpd-1.2.7
=]0AZ u@kr;^m #./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
l8d }g dhi9=Co; # make
G V% @A y{QF#&lW # make install
}?Tz=hP A )xfO- CoM?cS S 9j$ J}=y 进入到proftpd配置文件所在目录
s5oU Yu|L6#[E # cd /usr/local/proftpd/etc
Y NG S"3F D=~3N 备份原配置文件
{Pe+d3Eoo bYy7Ul6] # mv proftpd.conf proftpd.conf.bak
p;LF-R :JzJ(q/ 然后编辑新的配置文件proftpd.conf
2%@<A @;{iCVW # vi proftpd.conf
Ryi%}! ,/..f!bp 我的proftpd.conf内容如下:
X1GM\*BE v;IuB Ai5D[ykX s@|TQ9e |j # This is a basic ProFTPD configuration file (rename it to
RGLi#:0_.x c4L++
u# # 'proftpd.conf' for actual use. It establishes a single server
{(^%2dk83C 3mXRLx=0> # and a single anonymous login. It assumes that you have a user/group
oY7 eVu z +'9eo%3O # "nobody" and "ftp" for normal operation and anon.
6g'+1%O ]PZ\N~T .q9i10C F vHd` ServerName "ftpx.3322.org"
H)i%\7F5 E7|P\^}m(f ServerType standalone
RU,!F99'1 O-]^_LV` DefaultServer on
usI$ xMo'SpVz: ?4 lDoP{ 6q~*\KRk # 用户登陆时不显示ftp服务器版本信息
u$mp%d8 (W_U<~`t ServerIdent off
&(rR)cG Z_[jah TXK82qTdf Iqb|.v LG # Port 21 is the standard FTP port.
iPt{v5}] 4$8\IJ7G Port 21
S{c;n*xf 0vcM+ }rw oOHr~< IsP!ZcV; # Umask 022 is a good standard umask to prevent new dirs and files
ph=U<D4 |&H(skF_ # from being group and world writable.
z|i2M8 XB\n4|4 Umask 022
.l~g`._ *]* D^' +AL(K: CFiO+p& MaxLoginAttempts 3
'A9U[| w}``2djR'W TimeoutLogin 120
%B-m- =gz
7VAet TimeoutIdle 600
Zcxj.F(, KZ/2#` TimeoutNoTransfer 900
g(F? qP_K >O}J*4A>+# TimeoutStalled 3600
B;xGTl@8 %Dm:|><V$b /S&8%fb Z1M{5E MaxClients 100
$#d.@JWi L=5Fvm t+Hx&_pMj y7Sj^muBY #设置每台主机最多并发连接数
m6M:l"u Zywx.@! MaxClientsPerHost 3
x>~.cey Q1?0]5 y`.m'n7>P ^ ]CQd
AllowOverwrite no
dLy-J1h\ {]dH+J7 AllowStoreRestart on
.3,6Oo z+6%Ya&ls UseReverseDNS off
DU1\ K #gY|T| }uk]1M2= xEvm>BZi
#设置如果shell为空时允许用户登录
T&~7*j(|e xl;0&/7e RequireValidShell off
9!|+GIjn @mId{w z 7c.LyvM B5fF\N^ #将用户限制在自己的主目录下
{>R'IjFc D'3. T{*rH DefaultRoot ~ ftpusers
1#
X*kF c-hhA%@Wq DefaultRoot ~ FTPGRP
_=;lt O P V,AN
4m3pF0k ,?zOJ,wl # To prevent DoS attacks, set the maximum number of child processes
k?'<f B[nkE+s # to 30. If you need to allow more than 30 concurrent connections
\]+57^8r N(BCe\FV # at once, simply increase this value. Note that this ONLY works
#Ez+1 cWNWgdk,`V # in standalone mode, in inetd mode you should use an inetd server
Tx\g5rk ,7nA:0P # that allows you to limit maximum number of processes per service
K5SP8<. ?^H1X-; # (such as xinetd).
Jdp@3mP
H{nYZOf/ MaxInstances 30
UAq%Y8KA }g|)+V\A H.8Vm[W 58H%#3Fy # Set the user and group under which the server will run.
u }~%9Pi "[BDa}Il User FTPUSR
,3E9H&@j XT0:$0F Group FTPGRP
Ar VNynQ 8}(ul s/J/kKj*s d T*8I0\+ # Normally, we want files to be overwriteable.
h1 (MvEt #-Ad0/ 8QNd t ,,KGcDBj AllowOverwrite on
-S,xR5 !@vM@Z" ]J* y`jn lTn~VsoRZ ~ok i s xMAb=87_
# A basic anonymous configuration, no upload directories.
cXo^.u auS.q5
% # 匿名登录设置。匿名用户目录为/ftp
dn)pVti_ }^R_8{>k Jf{
M[ z r(::3TF%#q User ftp
--9Z Nu%:7 Group ftpusers
9x40 Hz6yy* Cq-#|+zr Pqm)OZE? # We want clients to be able to login with "anonymous" as well as "ftp"
&`J?`l X p>@S61
&
[ UserAlias anonymous ftp
c&JYbq U
DC>iHt mC}!;`$8p >7^+ag~& # Limit the maximum number of anonymous logins
r!7e:p JLO G]- wN7G MaxClients 10
|rbl sL2?Z ax)j$ +#d}3^_] 6b8@6;&LI # We want 'welcome.msg' displayed at login, and '.message' displayed
0piBK=tE/ '#b7Z?83C # in each newly chdired directory.
_7M! b9oA ToB^/
n[ DisplayLogin welcome.msg
VI(;8 ]O;Hlty(g DisplayFirstChdir .message
8{GRrwQ> |_P- .V\M/q\Tv !dW77kLTg # Limit WRITE everywhere in the anonymous chroot
qJ|n73yn r4D6I, #
-MqWcB9& 7q] @Jx9 # DenyAll
k9^Vw+$m #Rkld v' #
)
-C9W7?I @}e'(ju%R DB>Y#2j4h {&Bpf
K;`) @-ma_0cZQ /@.c
59r Q:x:k+O- VnJ-nfA #数据库联接的信息,FTP是数据库名,localhost是主机名,root是连接数据库的用户名,#123456是密码(如果没有密码留空)
vsM] <t !j3V'XU#Zn SQLConnectInfo FTP@localhost root 123456
yT>t[t60/S L#`9# Q v0dFP0.;& f~.w2Cna #数据库认证的类型
]/+qM)F u%7a&1c SQLAuthTypes Backend Plaintext
hCLXL _uO#0
)l |@-%x.y i~IQlyGr. #指定用来做用户认证的表的有关信息。("FTPUSERS"和"FTPGRPS"是数据表名字,等一会
>Ufjmm${ ;
-RhI_ #在下面建立)
W].P(A>m LxGE<xj|V% SQLUserInfo FTPUSERS userid passwd uid gid homedir shell
#c0
dZ l}DCK SQLGroupInfo FTPGRPS groupname gid members
IKK<D'6 K+` Vn 4nhe *ip #&1Y!kbdd #数据库的鉴别
sJlX]\RLQ mF>CH]k3 SQLAuthenticate users groups usersetfast groupsetfast
FNDLqf!j sQA{[l!aj Z w5\{Z0 9rb/h kX& #如果home目录不存在,则系统会根据它的home项新建一个目录
.'SXRrn&:C f$E66yG SQLHomedirOnDemand on
~PNO|]8j ."Yub];H xrT_ro8 F GOa!G #启用磁盘限额
!40t:+I I`%=&l[v_5 QuotaDirectoryTally on
wYf=(w\c ]
%*970 H&L=WF+x vtFA#})~ #磁盘限额单位 b"|"Kb"|"Mb"|"Gb"
oT5xe[{yj Ss u{Lj QuotaDisplayUnits "Kb"
SPV'0* Z j8os6I Ar sMqb '3o0J\cz QuotaEngine on
cLlfncI KrkZv$u, Q;P ~' &,Q{l$`X #磁盘限额日志记录
fBH&AO$Q #{0DpSzE5 QuotaLog "/var/log"
81_3{OrE< |Z;wk& $EJ*x$ |?Q(4(D`* # 打开磁盘限额信息,当登陆FTP帐户后,使用命令 "quote SITE QUOTA" 后可显示当前用#户的磁盘限额
u,F d[[t nRQIrUNq QuotaShowQuotas on
xgR* j +&\TdvNI4 l@*/1O)v J'O`3!Oy/ #SQL调用语句,不用修改
[6S"iNiyKT =] 5;=>( 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}'"
<nsl`C~6g0 l1cBY{3QD LbR/it'} RQ,(?I*8\ 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}'"
>`NY[Mn b=T+#Jb VP 4t~$" |->y'V 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
UKK}$B M{kPEl&Z 6sy%KO*A F'CUkVC0~P SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" quotatallies
>2syF{`j f9- |!]s z% /ww7H hqD;<:. QuotaLimitTable sql:/get-quota-limit
lO $M6l 0]oQ08 QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
3R#<9O W,{`)NWg (完)
_R(5?rG, xYu~}kMu 6 qKIz{; !v;r3*#Nky 下面为ftp用户建立相应的数据库和表
UuT[UB=x5 )N=b<%WD 进入mysql数据库命令状态:
lIjHd#q-C Aq'%a)Y2 # mysql –p
=cC]8Pz? cn\& ;55v 提示输入密码
eBAB7r/7 KR^peWR ^YIOS]d>8# 8v^i%Gg 建立数据库FTP(注意大小写和每句话后面的“;”)
u}%&LI`. ,t+ATaOF CREATE DATABASE FTP;
r3j8[&B" Zc4hjg "}HQ)54& H+5]3>O-$ 然后在这个数据库中建立一个用户表FTPUSERS,这个表是必须的:
aY:(0en]& @$+[IiP use FTP;
?ha}# aq5<Ks `r C]=E$^|{ <dYk|5AdLF create table FTPUSERS (
;5|EpoM &yA<R::o userid TEXT NOT NULL,
j=AJs< oNU* q.Q passwd TEXT NOT NULL,
ONGe/CEXT pWx3l5)R uid INT NOT NULL,
Zj7XmkL ;%Da { gid INT NOT NULL,
=h_gj > &\X;t|
homedir TEXT,
{H+?DMh BkZ%0rw% shell TEXT
CXQ?P 8S02
3 );
`2fuV]FW tJu<#hX sMS`-,37u "G,*Z0V5 此表格是为了用户认证所需要的,其中userid、passwd是必不可少的,userid是用做FTP服务的用户名;passwd是指此用户的密码;uid是系统用户的ID,也就是所映射的系统用户;gid是所属系统组的ID;homedir是该用户所在的HOME目录;shell可以为该用户指定相应的shell。当然你可以建立更多的字段,例如:用来记录用户登录次数的count,或者是日期的date,如果你对配置熟悉了之后,你可以根据自己的喜欢添加更多的功能。在此就不多讲。
%@&)t?/= &V:dcJ^Q ]czy8n$+ /*O,T 如果需要更多的功能,可以添加另外一个需要的表:FTPGRPS,也就是确定组的表格,当然也可以不用,这里讲一个它的格式:
;&!dD6N #]
GM#. create table FTPGRPS (
U KJY.W!w4 Q]7Q groupname TEXT NOT NULL,
\fKE~61 `P5"5N\h gid SMALLINT NOT NULL,
4By-+C* IB6]Wj members TEXT NOT NULL
sR9F: PW`Tuj );
W^N"y& VxFy[rP 其中groupname是组的名称,gid是系统组的ID,members是组的成员。注意:多成员,他们之间要用逗号隔开,不能使用空格。
``<1Lo@ ^"l$p,P+ 5VTbW []]3"n 为FTP用户建立相应的系统用户。
@
tIB'|O |:#mw1 在本例中,将整个FTP服务只提供一个有效的系统用户FTPUSR和组FTPGRP,当然你也可以设置多个系统用户。但出于安全的考虑,我只设一个,用他来启动FTP daemon,并把所有的FTP用户映射过这个用户。
E nvs[YZe 9>#|~P&FE % KA/ _)l %-*Z7p 先建立FTPGRP组:
gCJ'wv)6|% yn#h$o< # pw groupadd FTPGRP -g 2001
A%PPG+IfA u7=[~l&L 建立FTPUSR用户:
'JMa2/7CG $aA.d^ # pw adduser FTPUSR -u 2001 -g 2001 -d /home/FTP -s /sbin/nologin
K(d!0S *[5 tAA7 5 q , 为FTPUSR建立HOME,把所有的FTP user 活动空间全放在此目录下:
cMl%)j- eFio, # mkdir /home/FTP
4PWr;& S2R[vB4). # chown FTPUSR /home/FTP
<n\.S `g1Oon_ # chgrp FTPGRP /home/FTP
]1&9~TL `+.I #I?iR3u
n{t',r50 下面为磁盘限额建立数据表:
>>$|,Q-. [tzSr=,Cg # use FTP
{K9E% ,w c Vn+~m_% CREATE TABLE quotalimits (
gxOmbQt@; W\,lII0 name VARCHAR(30),
z\tJ~ JC"K{V{ quota_type ENUM("user", "group", "class", "all") NOT NULL,
T]|O/ gn"&/M9E per_session ENUM("false", "true") NOT NULL,
OQ7c|O 'u[o`31. limit_type ENUM("soft", "hard") NOT NULL,
sPg6eAd~? k^pu1g=6I bytes_in_avail FLOAT NOT NULL,
>p*HXr|o$
j>*SJtq7 bytes_out_avail FLOAT NOT NULL,
$Jm2,Yv hPxI&
:N bytes_xfer_avail FLOAT NOT NULL,
ikhX5
&e pYVy(]1I(3 files_in_avail INT UNSIGNED NOT NULL,
5uo(z,WLR l~YNmmv _ files_out_avail INT UNSIGNED NOT NULL,
3}21bL n:'BN([]o files_xfer_avail INT UNSIGNED NOT NULL
HiG/(<bs9O f hG2 );
} qv-lO XyphQ}\u E ZKz-} r$FM8$cJ CREATE TABLE quotatallies (
z[%v_S vkpV,}H name VARCHAR(30) NOT NULL,
rO$>zdmYHs va(9{AXI quota_type ENUM("user", "group", "class", "all") NOT NULL,
[\9(@Bx LDEt.,6i bytes_in_used FLOAT NOT NULL,
k6L373e#Q K=x1mM+RK bytes_out_used FLOAT NOT NULL,
IKDjatn F[=lA"F^ bytes_xfer_used FLOAT NOT NULL,
yl<$yd0Zdu }AW)R&m files_in_used INT UNSIGNED NOT NULL,
}pnFJ xqWrW) files_out_used INT UNSIGNED NOT NULL,
,?<h] !aQ m]d6@"Z. files_xfer_used INT UNSIGNED NOT NULL
^Cn]+0G#C8 ff1B)e );
W4*BR_H&* ~e<'t4 0t/y~TrBY ,,_K/='m 说明一下,quotatallies表不需要作修改,它记录了用户当前的磁盘使用情况,由程序自动记录
rg^\BUa-W, 4VJzs$ 要注意的是quotalimits 表中一些字段的含意
J+ZdZa}Ob $lAb6e$n quota_type 磁盘限额的鉴别,可以设置单个用户,也可以设置一个组中的全部用户,还可以设置全部用户
Q(5:~**I xO<-<sRA bytes_in_avail 上传最大字节数,就是FTP用户空间容量 (设置这个字段的时候是以byte(字节)为单位,如果要限额在10M,那就是10240000,下面也一样)
0nz@O^*g( bC>>^?U1m bytes_out_avail 下载最大字节数,需要注意的是,这个字段中记录的是用户总共能从服务器上下载多少数据,数据是累计的。
/B@%pq ~wf~bzs bytes_xfer_avail 总共可传输的文件的最大字节数(上传和下载流量)需要注意的是,这个字段中记录的是用户总共能传输文件的最大字节数,数据是累计的。
N E2sD @b*T4hwA. files_in_avail INT 总共能上传文件的数目
uAS8F=9xP >?W;>EUH files_out_avail INT 能从服务器上下载文件的总数目
Xb@z7X#O! FP9<E93br files_xfer_avail INT 总共可传输文件的数目(上传和下载)
g~hk-nXL. 8+|V!q p5;,/
|Ft FR,#s^kF 测试
sx<+ *Trl zg Y*|{4Sl 首先停掉inetd的ftp服务
0S:!Gv+ qVD!/;l # ps ax|grep inetd
@VC9gdO/ f93rY< 得到inetd的线程号
%r 7R<u=U # kill 得到的线程号
RQS:h]?:l m)|.:sj CDwIq>0j aQ&8fteFR 启动proftpd
lDPRn~[#\ hW!@$Ph # cd /usr/local/proftpd/sbin
}Q r0T 2}`V c{\ # ./proftpd
g1 Wtu*K3 yp2 'KES> 如果出现错误提示可以进入proftpd的调试模式进行调试:
},EUcVXk y)^CDe2xU # ./proftpd -n -d 5 -c /usr/local/proftpd/etc/proftpd.conf
/>^`*e_ -=[o{r` proftpd就会将调试信息打印到consle上以供调试之用。
BRU9LS .`Old{< C+(Gg^ w Z>Kcz^a# 添加一个测试用户并为他设置磁盘限额
.)^3t~ <W=[
sWJ use FTP
#!=>muZt :Bv&)RK F{*9[jY {uwk[f{z 添加用户
$,&gAU GkGC4*n INSERT INTO FTPUSERS (userid, passwd, uid, gid, homedir, shell)
"Eok;io "l[V%f E valueS ('user1', '999999', '2001', '2001', '/home/FTP/user1', '' );
(m3I#L U8QR*"GmT M ,_^hm7 j^$3vj5E[ 设置磁盘限额
'tV"^KQHI dJQ }{,+6 将上面建立的user1帐号给予10M空间,最多能上传500个文件到服务器上,文件传输流量为20M,只能传输10个文件。
]IHD:!Z-= +NLQYuN 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` )
^{fi^lL= 4-d99|mv VALUES ('user1', 'user', 'false', 'soft', '10240000', '0', '2048000', '500', '0', '10');
;!0.Kk
4 g=oeS%>E 不需要设置的部分用0代替就可以了。
76IALJ00V yNqm]H3<MP DNm7z[t{ X$uz=) 在windows提示符下登录ftp服务器。输入用户名user1,密码999999
)kL`&+#> Bgk~R.l c:\> ftp 192.168.0.1
9-a2L JI lN)Y gB{]yA"(' ^Z-.[Y 运行quote SITE QUOTA显示当前用户的磁盘限额
$ gr6 0XR;5kd% ftp> quote SITE QUOTA
Wp7@ P$(WdVG 200-The current quota for this session are [current/limit]:
D,GPn%Wqi <r7qq$ Name: user1
e"o6C\c
M\y~0uZ Quota Type: User
?HEtrX,q J:~[j Per Session: False
6_9:Eb=^v! +;:aG6q+ Limit Type: Soft
"9U+h2#] j:v~MrQ7| Uploaded Kb: 0.00/10000.00
mI?* Z%>g '.%iPMM Downloaded Kb: unlimited
#!8^!}nFO "5o;z@(
Transferred Kb: 0.00/2000.00
RFZU}.*K$ Pghva*& Uploaded files: 0/500
AT%*
~tr As6)_8w Downloaded files: unlimited
Yhc6P%{Z^ "UhK]i*@l Transferred files: 0/10
Z0()pT ;"d ,~nLn 200 Please contact
root@wwwx.3322.org if these entries are inaccurate
@pqY9_:P1 J+3\2D? [Hv*\rb [D<RV3x9 数据库用户验证和磁盘限额测试成功!
'B:Z=0{>N $,; ;u:- a%MzNH @O}IrC!bf 另:如果添加了FTPGRPS表,也可以为此添加记录,不过一定要注意在members的字段多个成员一定要用逗号隔开。
$tDCS koncWyW INSERT INTO FTPGRPS VALUES ('FTPGRPS', 2001, 'FTPUSR');
;Ch+X$m9 =2.tu*!C zJnL<Q )d770Xg+ 关于匿名登录:
1EC -e|M. `uIx/.L 本文的ftp服务器提供了匿名登录服务。对于匿名登录用户,我专门在硬盘上划分了一个2G的分区/ftp,所有的匿名用户文件都放在这个单独的分区里。
Qfkh0DX
B (aDb^(]> >0Fxyv8 |dl0B26x 添加匿名系统用户组ftpusers和匿名用户ftp
"t(1tWO1o !F0rd9 # pw groupadd ftpusers
+ AcKB82 ?o(ZTlT # pw useradd ftp -g ftpusers -d /ftp -s /sbin/nologin
Aj8l%'h[ njy~ 如果ftp用户已经存在使用如下格式
};|!Lhl+ *<`7|BH 3 # pw usermod ftp –g ftpusers –d /ftp –s /sbin/nologin
TRs[ ~K)n LPq*ZZK (xk.NZnF `DgaO-Dg3 在/ftp下建立匿名用户目录并设置权限
#Acon7Rp u#a%( # mkdir /ftp/incoming
A0cM(w{7_ 936Ff*%(l # mkdir /ftp/pub
^3Z7dIUww $
7UDz # mkdir /ftp/bin
UC8vR>e\ f
pv= P # mkdir /ftp/etc
JYZ2k=zh 7>nhIp)) # chown ftp /ftp/incoming
+8LM~voB :Az8K ) # chgrp ftpusers /ftp/incoming
ttK,((=@ M(n<Iu4^_ b34zhZ 2x7(}+eD 测试
c&E*KfOG c[(yU#@ 在浏览器地址栏输入
ftp://192.168.0.1 ,应该显示刚才建立的几个目录。进入incoming目录,应该可以在里面新建文件夹或文件。这样就完成对匿名ftp的测试!
/#-,R,Q o/tVcv C-s>1\I .+{nA}Bc 注意:由于我的这个配置文件设置了每台主机的最多并发连接数为3
EpRXjz /~H[= Pf MaxClientsPerHost 3
/[\6oa <u6c2!I{ 所以打开多个ftp登录窗口时会报错。
MZCL:# e+NWmu{<_ ?60>'Xjj ,bB( 24LD fp.!VOy tP}Xhn` 建立proftpd的启动脚本
%iK%$ Hnfvo*6d.e # cd /usr/local/etc/rc.d
T6sr/<#<( kVV\*"9y # vi proftpd.sh
fC=fJZU7$ <T(s\N5B= 内容如下:
kmZ.U># 3x04JE3! *e(:["v ^c/mj9M#C #!/bin/sh
T$: >* lr9=OlH ?wGiog<Q{ JaH*
rDs- case "$1" in
l_^T&xq8 Oamv9RyDvC 4 hL`=[AB oHxGbvQc start)
x7vq?fP0n XxmJP5 /bin/mkdir -p /var/run/proftpd
"nVK< V d K5P Gi# if [ -x /usr/local/proftpd/sbin/proftpd ]; then
+n@f'a"> JzHqNUn*M /usr/local/proftpd/sbin/proftpd && echo -n ' proftpd'
Z1VC5*K Gh2#-~|cB fi
%GM>u2baw ^$e0t;W= ;;
/m97CC#+ VT'0DQ!NIq o^6jyb!j 4uFIpS|rq stop)
3Z_t%J5QZ$ $8jaapNm@ killall proftpd
d/l,C4p 6,B-:{{e" ;;
uQ{=o]sy 0('OyH) *)
aL88E
\s,Iz[0Vfz echo "$0 start | stop"
f_oq1 W)9 3}08RU7[! ;;
)\8URc|J yPSVwe|g 66/Z\H^d E^7C
_JP esac
DP|TIt ,Rl "]v
uD (完)
I%SuT7"Do :aHcPc: =.DTR5(_h l+t #"3 设置脚本可执行
JRD8Lz]Q3 UMT\Q6p # chmod 750 proftpd.sh
k}X[u8A U9x4j_.q pfR"s:# +e U`H[iu Proftpd全部安装结束后,就可以不用inetd(Internet超级服务器)了。
5f8"j$Az +Dd"41 编辑/etc/rc.conf文件,将inetd=”YES”改成inetd=”NO”。
v5B"
A"N R|-6o)$ 编辑/etc/inetd.conf文件,将带有ftp字样的行前面加上#号。
6*sw,sU[y q1H~
|1 这样在重新启动后,inetd将不会自动运行。
9t#P~>:jY} FQ U\0<5 g`kY]lu ZOp^`c9~ 使用本文的ftp服务器加上第三步介绍的web服务器应该可以提供比较基本的虚拟主机服务了。以上面建立的测试用户user1为例,其方法是:
oL#xDG ]+mjOks~ 设置了数据库用户和磁盘限额后,编辑apache的配置文件/usr/local/etc/rc.d/httpd.conf,为用户配置虚拟主机并将文档目录指向/home/FTP/user1。这样user1就可以自己更新主页了。
3u*82s\8T jH(&oV JwjI{,jY A1Ka(3" 第五步:安装配置E-mail服务器
"t=UX
-3 +)zDA:2Wa" :"V ujvFX
^,+nef?= 演示地址:
http://baihua.3322.org/cgi-bin/sqwebmail #$FY+` =9^Q"t4 iceblood前辈制作的qmail安装包使安装qmail邮件服务器简化了许多,只是sqwebmail汉化的好像有点问题,我下载了一个汉化好的sqwebmail,将它填入iceblood前辈的安装包内,可以随安装包一次安装完成。为了提供邮箱注册功能,我使用了最新版本的vqregister-2.5,并将其界面进行了简单的汉化。
F,Q?s9s R'L?Xn}3 {H+?z<BF< J,RDTXqn 本E-mail服务器包含的功能
!I~C0u #VO.%H}i 1、Qmail帐号与系统帐号的分离。
Ey'J]KVW Vd21,~^>g 2、Qmail邮件列表功能。
un6cD$cHr `%oIRuYG]j 3、Qmail自动回复功能。
jM]d'E?ZLA ALfiR(! 4、对vpopmail的支持。
3^XVQS*** t=Jm|wJnUA 5、邮件帐号WEB管理方式。
4#_$@ r .A(i=!{q 6、邮件的WEB使用方式,如:WEB发邮件,查看邮件。
|:N>8%@6c ocwE_dR{ 7、能任意调整WEB的CGI以及HTML路径。
9s(i`RTM [A]Ca$': 8、SMTP服务的密码验证功能,能有效的防止别人利用自己的服务器发送匿名信。
JD ]OIh 1Fs-0)s8 9、选择性安装webmail。
i|S:s p0Gk j- 10、对虚拟域的支持。
b~*i91)\ F?cq'd 11、增加qmail的管理脚本,安装后可以运行qmail start|stop|restart来管理qmail。
5/ * >v 'PpZ/ry$ 12、全面支持Mysql数据库,只要在SQL设置区里打开数据库的支持,并设置好数据库密码,就可以支持数据库了。
L%XXf3;c ` 5#hjLe 13、增加了QmailAdmin和sqwebmail的中文界面!![新]
~p\n&{P0 {OCJ(^8i 14、对很多包有是否安装的可选择余地![新]
qU -!7=}7 3b@VY'P 以上为iceblood前辈制作的qmail安装包v1.5.3自带功能。
:Jk33 N4y0 7TpRCq# 在此基础上我添加了修改过的sqwebmail的中文界面并增加了邮箱注册功能(中文界面)。
(N0sE"_~I5 g8l5.Mpx @o&Ytd;i ?Wa<AFXQ 下载qmail安装包1.5.3
2d 8=h6 6{.J:S9n
ftp://baihua.3322.org/pub/server/Qmail_setup-v1.5.3.tar.gz oNIFx5*Z (ND%} 下载修改过的汉化安装包sqwebmail-3.5.0
Z(;AyTXA ;Xu22fKh ftp://baihua.3322.org/pub/server/sqwebmail-3.5.0-cn.tar.gz ?}8IQxU (sCAR=5v\ 下载我汉化后的vqregister-2.5
I+"
lrU Xk,>l6vc ftp://baihua.3322.org/pub/server ZdH1nX(Yh3 ,Kw5Ro`I: 英文原版vqregister-2.5下载地址
Sy 1"YpO"Rh http://inter7.com/vqregister.html AF$\WWrB K&dT(U DW|vMpU]u $P nLG]X 首先把下载的安装文件上传到/home/ylf/app目录
2+:'0Krc ,{8v4b- 解压缩qmail_setup-v1.5.3安装包
ne*#+Q{E #wjH4DT # cd /home/ylf/app
u-szt ? O| '$[Di'*; # tar zxvf qmail_setup-v1.5.3.tar.gz
`Mk4sKU\a ")%r}:0 进入解开的目录
[!~}S q@ZlJ3%l, # cd Qmail_setup
M{E{N K NXI[q'y 将新的sqwebmail中文安装包拷到此目录
hcyO97@r S-!=NX&C # cp ../sqwebmail-3.5.0-cn.tar.gz ./
"SR5wr [PWL<t::c 编辑安装配置文件setup
6/1$<!WH Q["t eo]DQ # vi seutp
ehT%s+aUw 7ZsA5%s=, 按系统情况修改如下内容:(这里是我的配置)
55m<XC Y(r@v n8u*JeN !ni>\lZ # 操作系统类型为FreeBSD
/oL8;:m K5`Rk"s _OS="FreeBSD"
O('Nn]wo~9
10O$'` p3yU:q#A ;^ 3$kF # 默认语言为中文
; )llt
G Q9sl fQ _LANG="CN"
g_q<ze cp%ii' H;S%Y`V |=5/Rax^ # 不安装apache
0+ `Pg >emcJVYV`[ _INSTALLAPACHE="NO"
_u5dC /S~m)$vu A,#2 ^dR SaO3zz@L # 添加qmail用户
%|+E48 PJ
q yvbD _ADDQMAILUSERS="YES"
&&7r+.Y %e_"CS Qf@iU%G f$F*3 # 域名
'Cc(3 sbS~N*{E _DOMAIN=mail01.3322.org
ROdK8*jL _^\$"nw v>mn/a XUmR{A # 邮箱管理员密码
v(O=IUa lddp^ #f _MAILPASSWD=1234
cdTsRS;E XsL#;a C Vmi{X b]< ~uj;qq # CGI路径
ln<]-)&C 6rX_-Mm6w _CGIBIN=/usr/local/www/cgi-bin
Xy7Z38G jd:B \%#![ 1RqgMMJL ax|1b`XUr" # Html路径
k;Fh4Hv \40YGFO _HTMLPATH=/usr/local/www/data
L1#Ij# bx}fj#J]En p#@Z$gTH`' nE|@IGH Em^( yL1CZ_ ###########--------Advanced set--------#################
?c#$dc" ||eAE) # 设置邮箱容量50M
M+xdHBg R_kQPP _MAILSIZE=50000000
Q@QFV~ k6**u # enable virutal domain lookup via reverse ip address lookup for virtual domains. "y" and "n"
;[$n=VX` -<f;l_( _USERCRUISE=n
Q+$Tt7/ 9|WV~ # apache 安装路径
ga0'zo9K Ph,-sR _APACHEPATH=/usr/local
PQ U]l"A ,)fkr]`< # 不使用系统用户验证
\2kPq>hu
^g>1U5c _SYSTEMPASS=n
x\@*60o z@VP:au # 安装 vpopmail
L,]=vba'$ N "Wqy _VPOPMAIL="YES"
Hs(D/&6% .v\\Tq&"| # 安装 ezmlm
~;#MpG;e }!d;(/)rb _EZMLMIN="YES"
*}!MOqP '0t-]NAc # ezmlm coding
"Ty/k8? KfY$ka[}"S _EZMLM=ch_GB
,,<PVTd uCP>y6I # 安装 autorespond
n$)_9:Z-j {}Ejt:rKN _AUTORESPOND="YES"
t?)pl2!A 2eP;[o # 安装 QmailAdmin
l{WjDed Oejq@iM"( _QMAILADMIN="YES"
xN"Z1n7t r':TMhzHq? :@3Wg3N /Cr/RG:OX ##########--------SqWebMail set--------#############
b.yh8|& 0GXO&rCG # 安装 webmail
T-" I9kM "ZMkL)'7- _WEBMAIL="YES"
]MTbW=*}ED q/&y*)&'O # webmail coding set.have "iso","gb2312","big5" and more.
!|G(Yg7C (lH,JX`$a _MIMESET=gb2312
USPTpjt8R O8u3y # webmail use SSL,"YES" or "NO"
~H6;I$e[ \h{r;#g _WEBHTTPS="NO"
G*}F5.>8( saZ>?Owz PX,rWkOce C !x/
^gw ##########--------SQL set---------################
}
:?.># ?.bnIwQe # 使用数据库
<,1fkq>, C;rG]t^% _SQL=y
l=P'B
@,
_^t-9 # mysql 主机
{Gi h&N z3?\:Yz _SQLHOST=localhost
`NNf&y)y )Hw:E71h2 # mysql 用户
UWXm?v2j yJJ4~j){l _SQLUSER=root
EeQ5vqU yJ2B3i@T4 # mysql 密码
JBX[bx52<r $1Nd_pD= _SQLPASS=123456
8<#U9] &xSa7FY # include path
pBJAaCGm tiaR4PB _INCDIR=/usr/local/include/mysql
L/r@ S' {padD p # lib file path
`$RA< 3 rAqxTdF _LIBDIR=/usr/local/lib/mysql
/!&R9!6
: ]]iPEm"@ WQePSU o|8`>!hF t} p@:' HK=[U9 o? 然后在安装脚本里找到下面几句
NX6nQ ^y_fRP~ tar xzf sqwebmail-3.3.7.20020910.tar.gz
`sHuM* $17
su') cd sqwebmail-3.3.7.20020910
JhK/']R K\.5h4k if [ "$_LANG" = "CN" ]; then
$p* p =[tSd)D,y cp /tmp/iceblood/Qmail_setup/iceblood/sqwebmailcn/*.html sqwebmail/html/en-us
2 h|e H=MCjh&$q fi
H#d:kil Ny i8pU|VpA }=}>9DSM b\55,La 将其改为
Jobiq]|> L\aBc} tar xzf sqwebmail-3.5.0-cn.tar.gz
v:_B kHN' l:(Rb-Wy cd sqwebmail-3.5.0
pd@; b5T *TdnB'Gd #if [ "$_LANG" = "CN" ]; then
4&^9Wklj Ka_S n #cp /tmp/iceblood/Qmail_setup/iceblood/sqwebmailcn/*.html sqwebmail/html/en-us
>v5k{Cbp0 S 01wwZ #fi
N=1JhjVk" tykB.2f 5i So8*9} (Ye>Cp+] 改好后保存。这样安装包就可以自动安装新的sqwebmail程序。
jx`QB')kX O9h+Q\0\W gPC@Yy IO$z%r7 让setup可执行
b`mj_b *JCQu0 # chmod 700 setup
*wbZ;rfF .w?
.ib( 执行setup安装
s4= "kT] 0Fr1Ku! # ./setup
[bQj,PZ& b3qc_ 安装完成后系统自动运行qmail程序。可以通过qmail start|stop手动启动或停止qmail程序。
rnm03 '{ Wa"(m*hW ;GHvPQc_ "E=j|q 测试
v Y|! V_^@ 因为我们前面设置了虚拟主机www01.3322.org 和 www02.3322.org,他们的文档目录不是安装qmail时所指定的目录。为了保证邮件访问正常,我们再添加一个虚拟主机mail01.3322.org,
~[PKcEX m>&HuHf 将它的文档目录指向/usr/local/www/data:
6)gd^{ q!,zq 先到希网申请一个域名,我们假设它是mail01.3322.org
|BU+:+ ^(x^6d <I*x0BM= Q}AE.Ef@< 编辑/usr/local/etc/apache/httpd.conf
uZ6d35MJ /'DwfX # vi /usr/local/etc/apache/httpd.conf
wwd'0P`/ |01?w | 添加下面一段
kUHE\L.Y] (zo^Nn9VJ %i{;r35M;9 *e"a0 ServerAdmin
webmaster@mail01.3322.org cd@.zg'sYn =(r*
5vd DocumentRoot /usr/local/www/data
< a rZbM &x:JD1T} ServerName mail01.3322.org
ztM<J+ +*nGp5=^GE ErrorLog /var/wwwlogs/mail01.3322.org.error.log
@!tVr3;N$ 9L eNe}9v CustomLog /var/wwwlogs/mail01.3322.org.log common
v[k5.\No \&xl{64 J QKdW V2&^!#=s
XFZ~ #DT& }2>"<) 重新启动apache
qB6dFl\ ( <|6%9@ # /usr/local/etc/rc.d/apache.sh stop
L wJ0 ENh8kD
l5 # /usr/local/etc/rc.d/apache.sh start
zi]%Zp f?fKhu2 >%b\yl%0 SqPtWEq@P 首先确认mail01.3322.org已经正确指向了你的主机ip地址。然后在浏览器地址栏输入
http://mail01.3322.org/cgi-bin/qmai...g,密码是1234。
Tt# bg1 ;I6s-moq_ 建立一个新用户,然后在浏览器地址栏输入
http://mail01.3322.org/cgi-bin/sqwebmail A/*%J74v %"3 )TN4 以你新建立的用户登录,就可以收发邮件了!
~.tvrxg UV7%4xM5v "u^EleE! m$Y
:0_^- 关于SMTP验证的问题:
=J'P. Qu*1g(el!o 网上有很多讨论关于qmail安装包的smtp验证有问题的文章,我经过反复测试,发现iceblood前辈的安装包本身并没有问题,问题出在foxmail上,如果你使用Foxmail4.2发邮件,不需要在smtp验证添任何内容就能发出去;如果是使用outlook,不添或添错了smtp验证内容都发不出去。大家可以试试。所以我这里没有给qmail-smtp打补丁。(iceblood前辈的安装包不同版本之间好像有区别,建议大家下载我这个)
_cI_# |(IO=V4P 0OZ Mlt%z LC69td& 安装vqregister-2.5
.=RlOK !F4;_A`X vqregister-2.5是vqsignup的升级版本,提供qmail邮箱注册功能。
JMV50 y !AN^ ,v]D 进入vqregister-2.5安装目录
+JdZPb {Q(}DI # cd /home/ylf/app/vqregister-2.5-cn
c-]fKj7 _ *(bmJM gvavs+H% $Rtgr{ {;" 编译安装前需要修改两个文件
!|{IVm/J mNmUUj9z 修改register.c文件
&k>aP0k" `$;+g , # vi register.c
@uleyB 1 TJ0D_, 找到下面一行
s&PM,BFf |w&~g9 eret = execl("/var/qmail/bin/qmail-remote", "/var/qmail/bin/qmail-remote", p, "
register@inter7.com", cemail, NULL);
uGtV}-t: 93%{scrm 将里面的qmail路径指向正确的路径,这里改为
<-C!;Ce{ BNm4k7
]M eret = execl("/usr/local/qmail/bin/qmail-remote", "/usr/local/qmail/bin/qmail-remote", p, "
register@inter7.com", cemail, NULL);
7ETjn)%bs h BMH)aU eQN.sl5 JNU/`JN9f 修改安装配置文件Makefile
a' FN 3 n2-0.Er # vi Makefile
Pe7e?79 2!&pEqs 找到这几行
}7/e8 O2 UGKaOol. DEFS = -I$(VDIR)/include -I/usr/local/mysql/include
?bX }6m?d!m m\0cE1fir mw$Y LIBS = -L$(VDIR)/lib -lvpopmail -lcrypt -L/usr/local/mysql/lib/mysql -lmysqlclient
rGwIcx(% >l1r,/\\ x"B'zP kT oOIx INSTALL_DIR = /usr/local/apache/cgi-bin/vqregister
b Y8GA M?&zY
"c zQ)+/e(8 70gg4BS 将它们改成实际路径,这里是
jZ9[=? je%M AgW` DEFS = -I$(VDIR)/include -I/usr/local/include/mysql
6qp5Xt+ I44s(G1jl )/t6" " F@W*\3) LIBS = -L$(VDIR)/lib -lvpopmail -lcrypt -L/usr/local/lib/mysql -lmysqlclient
'5.\#=S 1 }0/a\ F1W+o?B 'x%x'9OP INSTALL_DIR = /usr/local/www/cgi-bin/vqregister
b)}+>Wx MiGcA EF; D!3{gV# v548ysE) 编译安装
5G*II_j :hqZPajE # make install
m#@_8_ M hl/itSl$ a|qsQ'1,; :{}_|]>K 安装完成后需要编辑vqregister的配置文件
bH9Le 6].:.b\qQc # cd /usr/local/www/cgi-bin/vqregister
XAic9SNu; Eu<r$6Q0}o # vi vqregister.conf
{w5Z7s0 $[CA&Y. 修改下面几项
;)/@Xx J\`^:tcG EA0iYzV K&`Awv # 设置管理信息
ohZx03 x7ATI[b[ AdminEmail
postmaster@mail01.3322.org NPU^)B W'$kZ/%[ Uene=Q6> 9%,;XQ # 设置邮箱使用的域名
<|F-Dd kq/u,16@ AllowDomain mail01.3322.org
@6MAX" W
kkxU.xXE #+jUhxq zJl_ t0 其它项目可根据注释修改,不改也行,直接保存即可。
,x#ztdvr o:\XRPB x-Z^Q C 9D_wG\g 测试vqregister
7 `Du5>b8 _/x&<,3 在浏览器地址栏输入
http://mail01.3322.org/cgi-bin/vqre.../vqregister.cgi ,按要求添入注册信息,提交后显示注册成功信息,证明你的vqregister安装成功!如果出现错误,请按提示检查注册信息或检查vqregister.conf文件。
9M2f!kJP$ v*TeTA
% G}Z4g K8Zt:yP 第六步:安装配置视频点播服务器
3N%{B
tbG8MXX U ":"geU :YvbU Y 演示地址:
http://baihua.3322.org/media I,P!@ &YX6"S_B FreeBSD下的流媒体视频点播服务器软件可以使用苹果公司的Darwin Streaming Server或者Real公司的Helix Universal Server,前者最大的优点是免费,后者在网上使用的很多。我在使用这两种产品时发现Darwin Streaming Server对各种媒体格式支持的没有Helix Universal Server支持的好,比如象现在流行的mp4,再加上现在网上rm格式的节目源非常丰富,制作rm媒体文件的工具也非常多,所以本文还是选用了Helix Universal Server做为视频点播服务器。
zixEMi[8 L#j/0IHD 下载FreeBSD版的Helix Universal Servevr Basic,免费版的Helix Universal Servevr最大支持1M的带宽。并可申请1年的使用证书。
i\x~iP&F$ &HF]\`RNr http://forms.real.com/rnforms/products/servers/eval/mbps.html _}=E^/;( i^g~~h
F 需要填写一些信息才能下载,注意要添入正确的email地址,因为下载后授权证书会发到你添的邮箱里。还有操作系统一定要选FreeBSD!
(V9h2g&8L ixI:@#5wY 下载后的文件名为rs901-freebsd4-ia32.bin,将它上传到/home/ylf/app目录。
@YZ
4AC r*d Q5
_ ,U=E[X=H *x,HnHT 安装过程很简单:
]N}]d
+^6 Q_}n%P:u 进入/home/ylf/app目录
j
jY{Uq ^ KOzCLC # cd /hom/ylf/app
*{[d%B<lp P|}\/}{` 修改rs901-freebsd4-ia32.bin权限为可执行
E+{5-[Zc*$ -Bv12ymLG # chmod 700 rs901-freebsd4-ia32.bin
bXvbddu)} ,}7_[b)&V 执行rs901-freebsd4-ia32.bin进行安装
Z<]VTo BjZ>hhs!* # ./rs901-freebsd4-ia32.bin
fv?45f R}k69-1vL 当提示输入证书文件路径时先按回车跳过
qS]G&l6QF (#u{ U= 接下来要你看一个协议,按方向键走到最后
}tR'Hz2 G8P+A1
f/> 下面提示安装位置
SCq3Ds^ # #>a&, 输入/usr/local/realserver
ptR 2PBepgQyPU 接着会有一些端口选择的提示,一般按回车接受默认值即可,80端口如果冲突可改为8080。系统还会随机产生一个管理端口,把端口号记下来,我们安装后通过web页进行管理时要输入这个端口号。
H m8y]>$ iS0 5YW 另外安装时还会提示输入管理员用户名和密码,这个也要记下来。
A2_Ls;] U.Hdbmix fI}c 71b` %!wq:~B1 安装结束后,打开real公司给你发的邮件,里面有一句“License key for Helix Server may be downloaded from:”,下面的连接就是下载证书的连接。下载后把证书文件上传到/home/ylf/app目录。然后拷贝证书文件到指定的目录
&;U|7l~vl .zwVCW,u # cd /home/ylf/app
K+> V|zKuk B1,?{Ur # cp RNKey-Helix_Server-90-2804003590401434.lic /usr/local/realserver/License
R0IF' M,G8*HI" 其中RNKey-Helix_Server-90-2804003590401434.lic为证书文件名,你的证书文件名会不同,
`,-STIh) x!+Z{ x /usr/local/realserver/License是证书文件路径。
,\>g ua:9`+Dff 至此安装过程结束。
88YC0!Ni _LsYMUe I}%mfojC }K;iJ~kD1 进入程序目录
-x?Hj/ D(@SnI+ # cd /usr/local/realserver
Ij,Yuo s((b"{fFb 启动Helix Universal Server
">,K1:(D Ou!)1UFI # Bin/rmserver rmserver.cfg
eoL0^cZj ?\d5;%YSr 出现一连串的“Starting PID”提示,证明Helix Universal Server已经启动。
PL!tk^;6- J~'~[,K S5/p=H: Bxt_a.LthH 测试
un&> dcP88!#5- 在浏览器地址栏按如下格式输入
http://192.168.0.1:28274/admin/index.html ,这里28274是安装时系统随机产生的管理端口号,你的和这个不一样。
w= B cf&C|U 这时会弹出登陆对话框,添入你上面设置的管理员用户名和密码,这样就打开了管理界面。
<G}m # 7YD\ !2b 选左侧的Server Setup——Media Samples就可以看系统提供的演示多媒体文件了!注意客户端要有RealPlayer8以上的媒体播放器才行。
C=s((q* $~ VcQ 如果要添加自己的rm文件,可以将文件放到/usr/local/realserver/Content目录,然后在RealPlayer上输入地址
rtsp://192.168.0.1:554/xxx.rm就可以看了,其中xxx.rm是你的rm文件名。
8E=vR 8 2_I+mQ 多媒体文件存放路径可以通过Server Setup——Mount Points修改。
-G!6U2*# `|JI\&z I*9Gb$]= K"I{\/x@ 有一个问题值得注意:当系统使用超过一块网卡时,Helix Universal Server在安装时总是将管理端口自动绑定到系统的第一块网卡上,也就是使用ifconfig命令察看网卡信息时显示的第一块网卡。这样如果你的终端不是连接在第一块网卡上,将不能打开管理web页面。
#4lHaFq P;>!wU~* 这个问题可以在能打开管理web页面的时候,选Server Setup——IP Binding,通过添加地址0.0.0.0来绑定所有的网卡。
8nf4Jk8r \`&xprqAw 另外还可以通过修改Helix Universal Server的配置文件来解决:
%cd]xQpCp i
_8zjj7 # cd /usr/local/realserver
k3/4Bt G/ wvX"D0eVn # vi rmserver.cfg
wH!}qz/ Iw*C*%}[Z 添加如下内容:
e00RT1L Z{
%Uw;d JkJhfFV > `0| X T77)Np [e1\A&T #yX^?+Rc do*Wx2:R 重新启动Helix Universal Server即可。
$Q#?`j [ns&Y0Y`t ^Jn|*?+l <G&WYk%u* 如果自己制作rm流媒体文件,有两种工具很好,一个是real自己的Real Producer Plus,另一个是网络多媒体梦工厂real2002。前者功能强大,后者是类似前者的简化版,用起来很方便。