测试
+\Vm t[v \A[l(aB 首先以root身份执行线程察看命令top,列表中应该有下面几个线程正在运行:
kCTf>sJe tNTSy= PID USERNAME PRI NICE SIZE RES STATE COMMAND
YGyv)\ d5m-f/ 69 root 2 0 440K 296K select natd # 网络地址转换进程
k|)fl l ?A3L8^tR 132 root 2 0 3692K 3052K select httpd # apache进程
1.!U{>$ }9S}?R 166 mysql 2 0 27480K 4824K poll mysqld # mysql进程
0y9 b0G p'
>i3T( 在浏览器地址栏输入
http://192.168.0.1 ,如果显示apache的欢迎页面,证明web服务器安装成功!web页面文件存放在/usr/local/www/data目录中,你可以把自己的网页拷贝到这个目录,就可以访问自己的主页了!
. ImaM [7v|bd 键入命令
5^ Qa8yA>7 lv
8EfN # mysql
_HUbE / C[^V\?3ly: 出现下面显示证明mysql安装成功!
v(2N@s<% '{d@Gc6. Welcome to the MySQL monitor. Commands end with ; or \g.
}sXTZX +x"uP Your MySQL connection id is 2 to server version: 3.23.52
FRd"F$U ^AP8T8v X.t4; aZA``#p+ Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
]1!" q40)] OT{"C"%5t @z@%vr=vX D!&(#Vl
_ mysql>
P"vrYom 3xChik{ 键入exit退出mysql。
A;TP~xq\ Nwi|>'\C yn62NyK
lgOAc, 为mysql的root用户设置一个口令123456
_>-
D*l FO2e7p^Q # mysqladmin -u root password '123456'
vQEV,d1 Tz]R}DKB& P3_.U8g$r $O%{l.-O 现在我们来安装一个支持php+mysql的论坛。到
http://www.faeryboard.com/去下载完美版的仙境论坛程序。将下载的rar压缩包解开,然后使用ftp上传到/home/ylf/app目录。
nYyhQX~]B @RoZd? ^LMgOA(7 ~Bzzu %S 事先备份web服务器演示页面
bKo %Ak, L!fTYX#K] # cd /usr/local/www/data
11=$]K> 'X?xn@? # mkdir backup
jo`ZuN{ _VrY7Mz:r # mv * backup
x)::^'74
g@`i7qN c5YPV"X Q7s@,c!m_ 将论坛程序拷贝到/usr/local/www/data目录
Lzq/^&sc( +<7Oj s>o # cd /home/ylf/app/vbb2.3.0final
>d/H4;8 Gnkar[oa& # cp –r * /usr/local/www/data
.Nn11F< d 3z+l-QO8 编辑论坛配置文件
6CY&pbR %=aKW[uq] # vi /usr/local/www/data/admin/config.php
XIW0Z C {D+mr[ % 内容如下
x;/LOa{LR ?E([Nc0T ^M
P\jGySj @]@|H?
/////////////////////////////////////////////////////////////^M
_wq?Pa<)e " 9Gn/-V> // Please note that if you get any errors when connecting, //^M
<S@jf4 :?t~|7O: // that you will need to email your host as we cannot tell //^M
O`5,L[i1y Gt`7i( // you what your specific values are supposed to be //^M
?{ir$M C?<pD+]b_ /////////////////////////////////////////////////////////////^M
6Z2 ,:j; A6&*VD ^M
`3+i.wR PMzPj, // type of database running^M
%M(RV_R+6 TQa}Ps // (only mysql is supported at the moment)^M
3nxG>D7 v4P"|vZ$& $dbservertype='mysql';^M #数据库类型
#.Rn6|V/4 XjX ^M
l:85 _E /(N/DMl[ // hostname or ip of server^M
isQ(O 'YL[s $servername='localhost';^M #主机名
FwCb$yE#M *3GV9'-P ^M
(f# (B2j =*mT{q@ // username and password to log onto db server^M
Jup)m/ FcDS*ZEk! $dbusername='root';^M #登录数据库用户
4.RQ3SoDa ',+yD9 @ $dbpassword='123456';^M #密码
BrV{X&>[i Z~5) )5Ye; ^M
xUo6~9s7 k:@DK9
"^ // name of database^M
]\$/:f-2 +#W94s~0V $dbname='fin230';^M #论坛所使用的数据库名称
Gz[yD
~6a aB9!}3@ ^M
7u):J rO1!h%&o" // technical email address - any error messages will be emailed here^M
3*b5V<}'| w:~*wv $technicalemail='
webmaster@yoursite.com';^M #管理信息
C-'hXh;hQ x]~TGzS ^M
w0pMH p'Y W yL+HB} // use persistant connections to the database^M
Fnw:alWr Ha'[uEDb // 0 = don't use^M
Rj8%% G-pt P]_d;\
!"v // 1 = use^M
2eT?qCxqc K1B9t{T $usepconnect=1;^M
MmuT~d/ kB\{1; ^M
bx@l6bpQ {T){!UVp! ?>
*b~6 B M$ Cs'LrUB?=U (完)
ZL MH~cc
xmW~R*^ nwRltK 7e/+C{3v 除了root用户的密码需要添入外,其他部分可以不改。
[K!9xM6 Gr"CHz/ 保存后,在浏览器地址栏输入
http://192.168.0.1/admin/install.php ,根据提示一步步安装即可。
?1e{\XW 8[^'PIz 安装成功后,在在浏览器地址栏输入
http://192.168.0.1 ,就可以看到论坛了!怎么样,挺漂亮吧!关于论坛的其他问题,请仔细看论坛安装包里面的说明文档,或者到仙境论坛的主页,那里有仙境论坛的一切!
.])prp8 .n-#A 下一节,我们要讨论关于虚拟主机的问题。
y8Va>ul"U 7R+(3NU1A 6b|?@ I.2J-pu} 配制虚拟主机:
|{ jT+ Jd2.j?P= Apache的虚拟主机支持有两种方式,一是基于用户访问Apache主机时所使用的域名,另一种是通过指定IP地址来提供。这里我们只介绍如何通过不同的域名来实现虚拟主机的支持。
']]d-~: r~w.J+W 要实现基于域名的虚拟主机的前提条件是必须有两个域名同时指向Apache主机的IP地址,这里我们假设这两个域名分别是www01.3322.org和www02.3322.org ,这两个域名的文档都分别放置于 /home/www01 和 /home/www02这两个目录内,同时这两个目录已经设置好权限,对于目录让所有的人都可以读取、运行,对于文件,让所有的人都可以读取。
39pG-otJ L*nK>
+ 以下是具体的配置过程:
=bVPHrKNQ hlTbCl 首先到希网去注册2个域名。然后为这2个域名分别建立文档目录
2z.ot' Hvl
n>x@ # mkdir /home/www01
Wboh2:TH: k4TWfl^}9 # mkdir /home/www02
D:)Wr, 26 >t D=t8 aQkOQy |@qw 编辑apache的配制文件httpd.conf
3r\8v`^> d|`Ll # vi /usr/local/etc/apache/httpd.conf
v*;d lWbu`y 在文件最后找到下面2行
Dn- gP "tK%]c d- :FyF:=
~6vz2DuB= >yIJ8IDF xo:kT ) 3>,}N9P-v O 4 !$ E+td~&x dWqn7+: 在2行中间添加如下内容:
*[Hrbln #;!&8iH NameVirtualHost * # 指定运行虚拟主机服务的主机ip地址
'sNZFB# S63Zk0(25 # 静态ip方式可以将*替换为你的ip地址,动态ip直接用*即可
)Q)qz$h@ BFLef3~.0 7>JYwU{ yNTd_XPL IThd\#= k[=qx{Osx% ServerAdmin
webmaster@www01.3322.org #指定WEB管理员的邮箱
s-i|P O&`.R|v DocumentRoot /home/www01 #指定本虚拟主机的文档目录
@=J|%NO 'U@o!\=a ServerName www01.3322.org #指定本虚拟主机的域名
(IJNBJb _|HhT^\P ErrorLog /var/wwwlogs/www01.3322.org.error.log #指定错误记录应该存放于那里
3v* ~CQy9 \P\Z<z7jy CustomLog /var/wwwlogs/www01.3322.org.log common #指定常规记录应该存放于那里
'\Xkvi EM,C Tc2.ciU :<%bAn t=_^$M,yr w~'xZ?
9&Y@g)+2 @Z)|_ ServerAdmin
webmaster@www02.3322.org \l+v,ELX= [P$Xr6# DocumentRoot /home/www02
UA[`{rf DM.lQ0xk ServerName www02.3322.org
r8k (L{W $KHm5*;nd ErrorLog /var/wwwlogs/www02.3322.org.error.log
kmB!NxF>)F p [ O6 CustomLog /var/wwwlogs/www02.3322.org.log common
!iXRt" ) \1EuHQ? b*|~F 7Z-j'pq (完)
Z%T Ajm SnCwoxK :=QX ^* qHtQ4_Zn; 创建/var/wwwlogs目录
Uj@th ?u|??z% # mkdir /var/wwwlogs
7 WJ\nK j0=6B 重新启动apache
N(/) e [m~J6WB # /usr/local/etc/rc.d/apache.sh stop
.6?"<zdPU igO>)XbsM # /usr/local/etc/rc.d/apache.sh start
b0P3S!E "gJ?LojB < 分别在/home/www01和/home/www02目录拷入不同的网页文件进行测试,注意主页名称必须是index.html或index.php
lH-VqkR\ )m%uSSx# %1z;l. c 'o$j~Mr 测试
Z:4/lx7Bq ,GbmL8P7Y 确认注册的2个域名已经指向了你的主机ip。
56.!L 0.GFg${v` 在浏览器地址栏输入域名
http://www01.3322.org 和
http://www02.3322.org ,如果分别显示你拷入的主页证明虚拟主机配置成功!
z2=bbm: V>6klA}o $ {yct 4vhf!!1 利用上面的方法我们可以建立更多的虚拟主机,甚至对外提供主页空间服务!
MlO OB -Cf)`/ }$6L]
7*:zN 如果要对外提供虚拟主机服务,需要为使用者提供ftp上传功能。下一节我们将讨论如何通过Proftpd1.2.7+proftpd-mod-quotatab-1.2.4+mysql实现带有空间限额和数据库用户验证功能的ftp服务器。
]8$8QQc<<5 ttP7-y XqH@3Ehk ^W |YE72Y 第四步:安装配置ftp服务器
kUT2/3Vi X2w)J?pv X+vKY I8H3*DE 由于为每一个需要使用ftp服务的用户建立系统帐户会影响系统的安全,所以我们使用数据库用户进行ftp用户验证。
^z,3#gK uU
d"l,V 系统组成:Proftpd1.2.7+proftpd-mod-quotatab-1.2.4+mysql
*_V+K rYUIFPN 因为ports里没有proftpd-mod-quotatab-1.2.4模块,我们下载源代码安装。
$H:!3-/ Szo'[/
[R 下载源代码包:(必须下载相同版本的源代码包)
xATx2*@X2 ">V&{a-C4 到
http://www.proftpd.org 或
ftp://ftp.servus.at/ProFTPD/distrib/source/proftpd-1.2.7.tar.gz/。
(*-wiL /ViY:-8s 到
http://www.castaglia.org/proftpd/ 去下载proftpd-mod-quotatab-1.2.4.tar.gz。(1.2.5 版本的mod_quotatab是用在1.2.8rc1上的)
J,W<ha* +{UY9_~\3 用ftp将它们上传到/home/ylf/app目录。
"ubp`7%67 `[ZswLE 然后解压缩源代码包
L*z=!Dpo /$^Tou/v # cd /home/ylf/app
^F^g(|(K |r9<aVlK # tar zxvf proftpd-1.2.7.tar.gz
LI,wSTVjC ~Xi@#s~ # tar zxvf proftpd-mod-quotatab-1.2.4.tar.gz
oEIpv;:_ Rv1W &s& 进入mod-quotatab目录
Y@,iDQ NAYLlW}A # cd mod_quotatab
*V>?m6y/ 7FX4|] 把mod_quotatab中的文件拷贝到proftpd 中的modules 目录中
Pz)lq2Zm9 h nydH-;cz # cp * ../proftpd-1.2.7/modules
@]uqC~a^ g*k)ws =m.Nm -g %m&6'Rpfk 在开始运行configure之前,我们要先改动一个文件
W"\~O"a IjI'Hx 进入 proftpd-1.2.7/contrib 目录
"*vrrY 6w.E Sm # cd /home/ylf/app/proftpd-1.2.7/contrib
vCa8`m 3%v)!dTa<^ 修改 mod_sql_mysql.c
*l5?_tF #W\}v(Ke # vi mod_sql_mysql.c
8Vu@awz{L Okq,p=D6 找到#include 把他该为你实际路径,这里是:
DrRK Sc(u9 +n^M+ea; #include
JCWTB`EB> +!lDAkW0 qS?o22 p
fc6;K:d 然后编译安装
W(q3m;n '-wmY?ZFxy # cd /home/ylf/app/proftpd-1.2.7
reu[rZ& %;`Kd}CO #./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
j~v`q5X @SX%q&- # make
Ak[X`e T {FIzoR" # make install
)uqzu%T
rPH7
]] %H{pU:[5* ]r`;89:s> 进入到proftpd配置文件所在目录
-K{R7 "vGh/sXW # cd /usr/local/proftpd/etc
0 C4eer+D i/:L^SQAq 备份原配置文件
PMjNc_)) G,C`+1$* # mv proftpd.conf proftpd.conf.bak
*6I$N>1 d4o
^+\ 然后编辑新的配置文件proftpd.conf
2A_1 E\ J[lC$X[ # vi proftpd.conf
Hq.rG-,p eV7;#w<] 我的proftpd.conf内容如下:
Vr2A7kq gP_N|LuF"
: (UK'i >u= # This is a basic ProFTPD configuration file (rename it to
"FHJ_$! Q,?_;,I} # 'proftpd.conf' for actual use. It establishes a single server
/@:X0}L ^ ` LqNG # and a single anonymous login. It assumes that you have a user/group
P2n8H Fi cSL6V2F # "nobody" and "ftp" for normal operation and anon.
*\ii+f- !}Xoqamm Snr(<u l";Yw]:^ ServerName "ftpx.3322.org"
f' A$':Y
fHiL%]z ServerType standalone
yD"]:ts3 ^4=#,K DefaultServer on
rKgl:sj+ [O3:?BNY 9'MGv*Ho ni;)6,i # 用户登陆时不显示ftp服务器版本信息
n)yDep]$G M?l v ServerIdent off
bjVk9XvH6 v3"6'.f;bY "Enb 4cQP+ n # Port 21 is the standard FTP port.
KV0*dB; k^
<]:B Port 21
o~$O$ Bx45yaT A]c'TT@6 bM?gAY]mB8 # Umask 022 is a good standard umask to prevent new dirs and files
7O1MC 8{ 8N&'n # from being group and world writable.
oAO{4xP XG|N$~N+ 2 Umask 022
}
=OE.cf@ V]|X
,G y:)^*2GA-B *JK0X MaxLoginAttempts 3
]:e_Y,@ izP)t TimeoutLogin 120
]bds~OY5 U l"ms:v TimeoutIdle 600
B[8bkFS>] \'~
E%=Q TimeoutNoTransfer 900
36.,:!%p }MaY:PMA TimeoutStalled 3600
WW:G(
\` Avw=*ZW ///Lg{ie 96w2qgc2 MaxClients 100
bK:U:vpYm 0?54 8yH [9
MH"\ <vcU5
.K. #设置每台主机最多并发连接数
xn*$Ty+ y#Dh)~|k MaxClientsPerHost 3
3sr_V~cZ9 ||hQ*X<m> VAiJL M5{#!d}^D AllowOverwrite no
1.14tS-}[4 a``|sn9 AllowStoreRestart on
]g-%7g| JuO47}i] 5 UseReverseDNS off
Y
w0,K& I)mB]j :)1"yo\ P<g(i 6] #设置如果shell为空时允许用户登录
}{R*pmv$bN =}Tm8b0 RequireValidShell off
sD3ZZcy|= X&9:^$m v+LJx HAjl[c #将用户限制在自己的主目录下
jn^X{R\ %,bD|
NKp DefaultRoot ~ ftpusers
>!Yuef
<P Cd*h4Q]S DefaultRoot ~ FTPGRP
UDEGQ^)Xz| t@!n?j
I ?%5VaxWJ Oc L7] b0 # To prevent DoS attacks, set the maximum number of child processes
e|Ri ;M?)-dpZ # to 30. If you need to allow more than 30 concurrent connections
]FCP|Jz rpKZ>S|7+) # at once, simply increase this value. Note that this ONLY works
nJe}U# =zFROB\ # in standalone mode, in inetd mode you should use an inetd server
AJ7w_'u=@ %)j&/QdzF& # that allows you to limit maximum number of processes per service
v@$N,g CyIlv0fd} # (such as xinetd).
FMdu30JV ! AwMD MaxInstances 30
uG\~Hxqw7O *I 1 H y?OP- 27y \:;MFG' # Set the user and group under which the server will run.
irQ'Rm[ L('1NN2 User FTPUSR
~/G)z?+E AERJ]$\
Group FTPGRP
aDdxR: *$=i1w 4<Vi`X7[F M
FIb-*wT # Normally, we want files to be overwriteable.
vK!`#W`X 2u$-(JfoS ,)`_?^\$f %}@iz(*}> AllowOverwrite on
i >3`V6 ?W'z5'| `O6#-<> F;Q,cg M s!(R L3{(Bu # A basic anonymous configuration, no upload directories.
2Wzx1_D"a -K/+}4i3N # 匿名登录设置。匿名用户目录为/ftp
[|:{qQyD zyS8LZ-y9 uZ?P{E,K .\caRb[ User ftp
]nsjYsT D_lRYLA+ Group ftpusers
dWd%>9}
S1$^ _S
= +@ChZ jf3Zy:*K # We want clients to be able to login with "anonymous" as well as "ftp"
t2,II\Kl xJ3C^b%H UserAlias anonymous ftp
FQ>$Ps*a[ ]ogifnwv 6!_Wo\_% *duG/?>P # Limit the maximum number of anonymous logins
dBI-y6R TKnWhB/J MaxClients 10
LtRRX@qJw m%L!eR /MtmO$. 3l=q@72 # We want 'welcome.msg' displayed at login, and '.message' displayed
<);q,|eh2 q=t!COS # in each newly chdired directory.
-jJhiaJ$< CA#g(SiZ DisplayLogin welcome.msg
^t'mW;C$4 eJoM4v DisplayFirstChdir .message
p-$C*0{ z)T-<zWO; qy|bOl D|OGlP # Limit WRITE everywhere in the anonymous chroot
#R5\k-I StJb-K/_cL #
-`'|z+V 8;gi8Y # DenyAll
4<[?qd3v= ;
$rQ #
4r$#- xVPSL#> a*(Zb|g S#GxKMO% :lai0>
D 2E40& p8,=K< k1,k 9BK #数据库联接的信息,FTP是数据库名,localhost是主机名,root是连接数据库的用户名,#123456是密码(如果没有密码留空)
Ubu&$4a })OS2F SQLConnectInfo FTP@localhost root 123456
~m=GS[= I<QUvs%e >n,_Aj
c Q+1ot,R #数据库认证的类型
8fqabR wKpGJ&
{ SQLAuthTypes Backend Plaintext
.OJGo<#$f 0se%|Z|8 F/2cQ.u2 tz]0F5 #指定用来做用户认证的表的有关信息。("FTPUSERS"和"FTPGRPS"是数据表名字,等一会
<~mqb=qA$ @_`r*Tb)dM #在下面建立)
"[ LUv5 g/C 7wc SQLUserInfo FTPUSERS userid passwd uid gid homedir shell
<qR$ `mLN !IOmJpl' SQLGroupInfo FTPGRPS groupname gid members
6Y2,fW8i, :Pq&l. c^= q(V 8
o}5QOW #数据库的鉴别
k1D7=&i bZ_&AfcB SQLAuthenticate users groups usersetfast groupsetfast
vGyQ306 ])?dqgwa B<s+I# Hs)] #如果home目录不存在,则系统会根据它的home项新建一个目录
r)S:=Is5 I~l_ky|a ! SQLHomedirOnDemand on
S+06pj4Ie |6d:k~p l]|&j`'O bpsyO>lx/ #启用磁盘限额
G5qsnTxUJ OyDoktz$) QuotaDirectoryTally on
Sp[9vlo8 $MasYi ~"S5KroN J.rS@Z`~7 #磁盘限额单位 b"|"Kb"|"Mb"|"Gb"
rX$-K\4W R}Zaz3( Hd QuotaDisplayUnits "Kb"
ANPG3^w :G#%+, Y#lAG@$ X)SUFhP\ QuotaEngine on
pW ~;B*hF .:H'9QJg %;4#?.W8 _3
[E$Lg #磁盘限额日志记录
wSjy31 ZS:[ZehF QuotaLog "/var/log"
S*}GW-)oA =3,<(F5Y[ '0 Ys`Qo +]t9kr # 打开磁盘限额信息,当登陆FTP帐户后,使用命令 "quote SITE QUOTA" 后可显示当前用#户的磁盘限额
>kAJS?? 1%M^MT%& QuotaShowQuotas on
"^t7]=q 4oF,;o+v\4 NTJ,U2 S?t
`/"O #SQL调用语句,不用修改
vasw@Uto) toF6 Z 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}'"
kk126?V]_ w32F?78] AkjoD7.* h1>.w
pr 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}'"
,=!s;+lu{ ZHen: f~d=1 _BG`!3U+ 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
)FB<gCh7X y~_x Iy5W/QK6 Q
m9b:U~ SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" quotatallies
xG~-. DvEII'-h Wm8BhO j5Yli6r?3- QuotaLimitTable sql:/get-quota-limit
q&ed4{H< EHe-wC QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
fR.raI4et nb5%a (完)
a[^dK- F`Vp 0wBr_b! zh !/24p9 下面为ftp用户建立相应的数据库和表
J!rZskd -'W:P'BG 进入mysql数据库命令状态:
P)TeF1~T ^<yM0'0t # mysql –p
XSZjuQ<[3 :\#]uDT2= 提示输入密码
[\HAJA, IsL=DV/ r~;.8qs .hvn/5s 建立数据库FTP(注意大小写和每句话后面的“;”)
/9y'UKl7[ !x:w2 CREATE DATABASE FTP;
`).;W 0txSF^x 9DXu*} mR{%f?B 然后在这个数据库中建立一个用户表FTPUSERS,这个表是必须的:
Sdmynuv
U S4O:?^28 use FTP;
>|T?87 XeBSHvO_ Q~*3Z4)j U|h@Pw z create table FTPUSERS (
C vTgtZ
' \v_t:
" userid TEXT NOT NULL,
,TO&KO1;& \;tKss!| passwd TEXT NOT NULL,
qpc2;3*7 S4~;bsSx uid INT NOT NULL,
gk6j5 $Y"< ^?[^o\/@R gid INT NOT NULL,
Z42v@?R.!W Z@i MG homedir TEXT,
%@M/)"k fs]Zw mA^ shell TEXT
c9E9Rx T{K+1SPy4 );
aEZn6k1 p|%Y\! 7e#|=e
*I! {_MU0=7c\ 此表格是为了用户认证所需要的,其中userid、passwd是必不可少的,userid是用做FTP服务的用户名;passwd是指此用户的密码;uid是系统用户的ID,也就是所映射的系统用户;gid是所属系统组的ID;homedir是该用户所在的HOME目录;shell可以为该用户指定相应的shell。当然你可以建立更多的字段,例如:用来记录用户登录次数的count,或者是日期的date,如果你对配置熟悉了之后,你可以根据自己的喜欢添加更多的功能。在此就不多讲。
' *p-` J>Rt2K 8CSvg{B !c`Q?aGV) 如果需要更多的功能,可以添加另外一个需要的表:FTPGRPS,也就是确定组的表格,当然也可以不用,这里讲一个它的格式:
0\}j[-`pF ~(0Y`+gC create table FTPGRPS (
&(^>}&XS.< "Lpt@g[HF groupname TEXT NOT NULL,
KF-gcRh XY QUU0R gid SMALLINT NOT NULL,
<ct {D|mm U14dQ=~b/ members TEXT NOT NULL
Z*e7W O. +Vf|YLbhJ );
v <Ze$^e& )J88gMk+ 其中groupname是组的名称,gid是系统组的ID,members是组的成员。注意:多成员,他们之间要用逗号隔开,不能使用空格。
RBgkC+2 izWl5}+'B 3S2'JOTY i+cGw 为FTP用户建立相应的系统用户。
o-'i)pp $ .Z2Rdlv( 在本例中,将整个FTP服务只提供一个有效的系统用户FTPUSR和组FTPGRP,当然你也可以设置多个系统用户。但出于安全的考虑,我只设一个,用他来启动FTP daemon,并把所有的FTP用户映射过这个用户。
!V-SV`+X s*YFN#Wuc ujWHO$uz! u#UeJuO 先建立FTPGRP组:
et ~gO!1:* ta 6WZu # pw groupadd FTPGRP -g 2001
;qk~> FW.dHvNX 建立FTPUSR用户:
c`}X2u]k zXf+ie o # pw adduser FTPUSR -u 2001 -g 2001 -d /home/FTP -s /sbin/nologin
=nL*/ %Z5k8 ?RzT0HRd nG*6ic 为FTPUSR建立HOME,把所有的FTP user 活动空间全放在此目录下:
~D=@4(f8| dO// # mkdir /home/FTP
yEqmB4^- yaR; # chown FTPUSR /home/FTP
V=*J9~K }Voh5*$E` # chgrp FTPGRP /home/FTP
<d5vVn I!<v$ Qy/bzO #f~a\}$I 下面为磁盘限额建立数据表:
9G8QzIac EH "g`r # use FTP
M>J ADt_] t5Mo'*j
= CREATE TABLE quotalimits (
d$,i?d, -pGt; name VARCHAR(30),
*(MvNN* *_wef/== quota_type ENUM("user", "group", "class", "all") NOT NULL,
Q%xY/xH] )|a9Z~#x per_session ENUM("false", "true") NOT NULL,
9c7}-Go udZ: OU< limit_type ENUM("soft", "hard") NOT NULL,
hw'2q9J| S7q&|nI bytes_in_avail FLOAT NOT NULL,
"qm> z@K mfN@tMp bytes_out_avail FLOAT NOT NULL,
bgK(l d` rpT<cCem1 bytes_xfer_avail FLOAT NOT NULL,
N]<gHGj} Z%{f[|h9} files_in_avail INT UNSIGNED NOT NULL,
'> Q$5R1 U
^9oc& files_out_avail INT UNSIGNED NOT NULL,
+=k|(8Js# l.W:6",w files_xfer_avail INT UNSIGNED NOT NULL
F`Y<(]+
GKtQ>39B );
5#o,]tP (*x"6)` k0IU~y% ] zY CREATE TABLE quotatallies (
WO9/rF_ bC{8yV=) name VARCHAR(30) NOT NULL,
:Y3?, w1_Ux<RF quota_type ENUM("user", "group", "class", "all") NOT NULL,
K)@}Ok"#\4 WLl9>v^1 bytes_in_used FLOAT NOT NULL,
j1kc&( !~l%6Z5 bytes_out_used FLOAT NOT NULL,
zNf5OItx UIj/Id bytes_xfer_used FLOAT NOT NULL,
dZgfls 6 {Z\cwP)c files_in_used INT UNSIGNED NOT NULL,
x+e
_pb yMkd|1 files_out_used INT UNSIGNED NOT NULL,
`7_LJ
\>I ,AM-cwwT:u files_xfer_used INT UNSIGNED NOT NULL
eFI4(Y \(FDR );
1F,_L}=o1s y21uvp' 2AW{qwk7 q_&IZ,{Vk 说明一下,quotatallies表不需要作修改,它记录了用户当前的磁盘使用情况,由程序自动记录
*~uuCLv_ 1W[(+TZ&s 要注意的是quotalimits 表中一些字段的含意
Q9>]@DrAx 3@?YTez# quota_type 磁盘限额的鉴别,可以设置单个用户,也可以设置一个组中的全部用户,还可以设置全部用户
~Wm}M F8Wq&X#r bytes_in_avail 上传最大字节数,就是FTP用户空间容量 (设置这个字段的时候是以byte(字节)为单位,如果要限额在10M,那就是10240000,下面也一样)
Ohag%<1# hob$eWgr bytes_out_avail 下载最大字节数,需要注意的是,这个字段中记录的是用户总共能从服务器上下载多少数据,数据是累计的。
n5/Tn7hY ?|GxVOl bytes_xfer_avail 总共可传输的文件的最大字节数(上传和下载流量)需要注意的是,这个字段中记录的是用户总共能传输文件的最大字节数,数据是累计的。
Dg+d=I? V^+:U>$w files_in_avail INT 总共能上传文件的数目
'e64%t ~(/HgFLLu files_out_avail INT 能从服务器上下载文件的总数目
CWQ2iu<_0
m5aaY files_xfer_avail INT 总共可传输文件的数目(上传和下载)
?\M6P?tpo& zpqNmxmF # :w2Hf6Q PZJ
4:h 测试
F:S>\wG, mm-UQ\h 首先停掉inetd的ftp服务
"\r~,S{: <SZO-
-+lB # ps ax|grep inetd
XSjelA? 4"x;XVNM[ 得到inetd的线程号
\Egc5{ (v:ek_ # kill 得到的线程号
!F#aodM1N qjzW9yV+ +|YZEC
Q5n :f+ 启动proftpd
TF-Ty So.P @CCd # cd /usr/local/proftpd/sbin
jY+S,lD ,GU/l)os` # ./proftpd
]UT|BE4v gCr|e}w- 如果出现错误提示可以进入proftpd的调试模式进行调试:
L_K\i? lY*]&8/= # ./proftpd -n -d 5 -c /usr/local/proftpd/etc/proftpd.conf
O:tX0<6 /.YAFH|i)" proftpd就会将调试信息打印到consle上以供调试之用。
:yjK*"T|OD ZCFf@2&z8 eSNSnh]' xcvr D 添加一个测试用户并为他设置磁盘限额
'#PqI)P "IS^ajaq use FTP
.]s(c!{y 'Sy *'& -Dxhq&
}Y I''R\Bp 添加用户
,nB3c5X)| IKzRM|/ INSERT INTO FTPUSERS (userid, passwd, uid, gid, homedir, shell)
8{SU?MHQLE G? gXK W valueS ('user1', '999999', '2001', '2001', '/home/FTP/user1', '' );
D *I;|.=u "Lq|66 cgxFEv auTTvJ 设置磁盘限额
'Rd*X6dv @@3,+7%1 将上面建立的user1帐号给予10M空间,最多能上传500个文件到服务器上,文件传输流量为20M,只能传输10个文件。
w1@b5- /dJ)TW(Ir 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` )
Tb1}XvZ 9_WPWFO VALUES ('user1', 'user', 'false', 'soft', '10240000', '0', '2048000', '500', '0', '10');
fb.\V]K Xu94v{u3 不需要设置的部分用0代替就可以了。
DwY<qNWT X0Z-1bs -F+P;S O0wCb
在windows提示符下登录ftp服务器。输入用户名user1,密码999999
~K-*q{6Q tG2OVRx8u c:\> ftp 192.168.0.1
' q<EZ{ \btR^;_\A H]$=*(aje +iH30v 运行quote SITE QUOTA显示当前用户的磁盘限额
Jhsv2,8
{ q
X%vRf0 ftp> quote SITE QUOTA
yaRcBT? !\#Wk0Ku 200-The current quota for this session are [current/limit]:
%:w% o$ "4ozlWx Name: user1
s w.AfRQP EhIV(q9x Quota Type: User
0YpiHoM Yl&tkSw46 Per Session: False
FfxX)p1t SQt|(r) Limit Type: Soft
GtM(
Y 7}'A)C>J; Uploaded Kb: 0.00/10000.00
o d}EM_ p37zz4 Downloaded Kb: unlimited
O/Y\ps3r C?60`^ Transferred Kb: 0.00/2000.00
+eBMn(7Cgv A!ioji+{[ Uploaded files: 0/500
JU'WiR
bcb d]7|v
r] Downloaded files: unlimited
tSb?]J uqa4&2(I=j Transferred files: 0/10
UROj9COv G=C5T( 200 Please contact
root@wwwx.3322.org if these entries are inaccurate
^0Q=#p Q\27\2 C^/ -lc X$- boe? 数据库用户验证和磁盘限额测试成功!
%]chL.s m+Q5vkW Cv>yAt.3 3_L1Wm 另:如果添加了FTPGRPS表,也可以为此添加记录,不过一定要注意在members的字段多个成员一定要用逗号隔开。
%[Zqr;~l ^)OZ`u8 INSERT INTO FTPGRPS VALUES ('FTPGRPS', 2001, 'FTPUSR');
r}oURy,5 4FIV 3"'# |6O9 MjQ[^%lfL 关于匿名登录:
QOT)x4!) Ns.3s7& 本文的ftp服务器提供了匿名登录服务。对于匿名登录用户,我专门在硬盘上划分了一个2G的分区/ftp,所有的匿名用户文件都放在这个单独的分区里。
(}{_]X|e
:vYtMp ){+[$@9 a
IpPL8a 添加匿名系统用户组ftpusers和匿名用户ftp
KbwTj*k[ kUn2RZ6$# # pw groupadd ftpusers
llHc=&y# 7`blGzP_ # pw useradd ftp -g ftpusers -d /ftp -s /sbin/nologin
}iua]
4| 9u?)vR[@e 如果ftp用户已经存在使用如下格式
}z%OnP =de<WoKnu2 # pw usermod ftp –g ftpusers –d /ftp –s /sbin/nologin
+z:CZ(fb
b|sc'eP#? @PPR$4 a{]g+tGH 在/ftp下建立匿名用户目录并设置权限
]~ !XiCqu *?_qE # mkdir /ftp/incoming
`E} p77 *.m{jgi1X # mkdir /ftp/pub
r"{Is?yKe 6kt]`H`cfJ # mkdir /ftp/bin
\}$*}gW[} i1qS ns # mkdir /ftp/etc
Jo{zy mb0n}I_AC # chown ftp /ftp/incoming
Ky[bX T!l
mO? Q # chgrp ftpusers /ftp/incoming
[3j$ 4rP [8F
\; VLcyPM@"Q! ]urK$ 测试
81g9ZV(4 Ro'jM0(KE 在浏览器地址栏输入
ftp://192.168.0.1 ,应该显示刚才建立的几个目录。进入incoming目录,应该可以在里面新建文件夹或文件。这样就完成对匿名ftp的测试!
Md8(`@`o
6Xdtr d?:`n9` r0F_; 注意:由于我的这个配置文件设置了每台主机的最多并发连接数为3
aGPqh,<QD Q0V^PDF MaxClientsPerHost 3
0jR){G9+ T>#TDMU#Fm 所以打开多个ftp登录窗口时会报错。
w$gSj/ +w "XNl =m`l%V[ EfKM*;A [O=W>l "A%MVym." 建立proftpd的启动脚本
;"1/#CY773 &&X$d!V # cd /usr/local/etc/rc.d
bt;lq!g fd4;mc1T # vi proftpd.sh
/@&(P#h `$J'UXtGc 内容如下:
/ ^w"' ' a*Rz<08 Ns'FH(: <z^SZ~G #!/bin/sh
Q> kiVvc saatU;V K<c2PFo)Q 6|QTS|! case "$1" in
~\2;i]| ucw`;<d8 7g-Dfg.w 4Mk8Cpz start)
Y|mW. MzcB3pi /bin/mkdir -p /var/run/proftpd
x'@W=P 7 R;WW
f.# if [ -x /usr/local/proftpd/sbin/proftpd ]; then
Q-[3j 9*' &5F= /usr/local/proftpd/sbin/proftpd && echo -n ' proftpd'
w{3ycR u[)_^kIE(n fi
W:WQaF`2x cI5N"U@yN ;;
Tj=gRQ2v (I[s3EnhS > 84e`aGE
4bnt=5] stop)
*t^eNUA RF:04d killall proftpd
\UOm]z j(sLK
& ;;
W;qP=DK2 47KNT7C *)
8+ov(B;( 22z1g(;@ echo "$0 start | stop"
DacN{r"3 yx2z%E ;;
YV-j/U{& 1DUb
[W8 q]K'p,' " rsSW3_ esac
sMP:sCRC #00D?nC (完)
^ESUMXb `g--QR R }1W .@@an;C 设置脚本可执行
$%Z3;:<Uf- $%=G[/i' # chmod 750 proftpd.sh
/
$_M@> tj[ c#@[B }w#F6 h(nj,X+ Proftpd全部安装结束后,就可以不用inetd(Internet超级服务器)了。
/HZv RpYcD 编辑/etc/rc.conf文件,将inetd=”YES”改成inetd=”NO”。
T<P0T< 4Ac}(N5D@ 编辑/etc/inetd.conf文件,将带有ftp字样的行前面加上#号。
G{+2xN
a( z|I0-1tAK 这样在重新启动后,inetd将不会自动运行。
dq(E&`SzK 6|5H=*)DH )&:L'N ytiyF2Kp 使用本文的ftp服务器加上第三步介绍的web服务器应该可以提供比较基本的虚拟主机服务了。以上面建立的测试用户user1为例,其方法是:
o,1Dqg4P3 3
<9{v 设置了数据库用户和磁盘限额后,编辑apache的配置文件/usr/local/etc/rc.d/httpd.conf,为用户配置虚拟主机并将文档目录指向/home/FTP/user1。这样user1就可以自己更新主页了。
~g7m3 <[ZI.+_Wt =G4u#t) *1$ 第五步:安装配置E-mail服务器
P_&p=${ ~@D/A/| A@2Bs5F e\D|
o?v 演示地址:
http://baihua.3322.org/cgi-bin/sqwebmail U7h(-dV
a ~opE!|m iceblood前辈制作的qmail安装包使安装qmail邮件服务器简化了许多,只是sqwebmail汉化的好像有点问题,我下载了一个汉化好的sqwebmail,将它填入iceblood前辈的安装包内,可以随安装包一次安装完成。为了提供邮箱注册功能,我使用了最新版本的vqregister-2.5,并将其界面进行了简单的汉化。
P#MK &<Zdyf?[Ou 8eN7VT eb \x(^]/@ 本E-mail服务器包含的功能
hO
\/ s1bU 1、Qmail帐号与系统帐号的分离。
hO3{ Wo!;K|~P 2、Qmail邮件列表功能。
R&*@@F-dx {n&Uf{ 3、Qmail自动回复功能。
k3>YBf`fC
DkdL#sV 4、对vpopmail的支持。
'mE^5K <( EyXV 5、邮件帐号WEB管理方式。
|@wyC0k! E{%SR 6、邮件的WEB使用方式,如:WEB发邮件,查看邮件。
,EI:gLH #K4*6LI 7、能任意调整WEB的CGI以及HTML路径。
[Gtb+'8 "(f`U. 8、SMTP服务的密码验证功能,能有效的防止别人利用自己的服务器发送匿名信。
oL-2qtv nZ
E )_ 9、选择性安装webmail。
+D`*\d1 MA*
:<l 10、对虚拟域的支持。
-ihiG_f .T8K-<R 11、增加qmail的管理脚本,安装后可以运行qmail start|stop|restart来管理qmail。
N=~~EtX J+ts 12、全面支持Mysql数据库,只要在SQL设置区里打开数据库的支持,并设置好数据库密码,就可以支持数据库了。
e <"/'Ql!k
)%F5t&lum 13、增加了QmailAdmin和sqwebmail的中文界面!![新]
2w?hgNz vy9dAl 14、对很多包有是否安装的可选择余地![新]
]iVLHVqz Ur3m[07H 以上为iceblood前辈制作的qmail安装包v1.5.3自带功能。
WbcS: !0 4TZ cc|B5 在此基础上我添加了修改过的sqwebmail的中文界面并增加了邮箱注册功能(中文界面)。
J#
EP% 5FOqv=6S jDX>izg;V -[heV| $; 下载qmail安装包1.5.3
%\6Q .V#s i=#F)AD^5# ftp://baihua.3322.org/pub/server/Qmail_setup-v1.5.3.tar.gz jatr/
+TSSi em 下载修改过的汉化安装包sqwebmail-3.5.0
WU)Ss`s \ gKi{Y1 ftp://baihua.3322.org/pub/server/sqwebmail-3.5.0-cn.tar.gz HID([Wk NBOCt)C;H 下载我汉化后的vqregister-2.5
r4Q|5kT*i zK;XFN#U^ ftp://baihua.3322.org/pub/server e;( K 1W].(-@4 英文原版vqregister-2.5下载地址
!20XsO Bp_wnd http://inter7.com/vqregister.html D*2\{W/ Gu;OVLR| ;;#`#v _A'{la~k 首先把下载的安装文件上传到/home/ylf/app目录
{/ 2E*|W~I ?9xu{B>6 解压缩qmail_setup-v1.5.3安装包
y{=>$C[
ZA820A>2! # cd /home/ylf/app
|5MbAqjzC `^6 ,kI-c # tar zxvf qmail_setup-v1.5.3.tar.gz
~ap2m 6q/?-Qcy 进入解开的目录
:dwt1> e.vtEQV9
# cd Qmail_setup
J2M(1g)t9 r:g9 Z_ 将新的sqwebmail中文安装包拷到此目录
+ts0^;QO2{ D/ Dt # cp ../sqwebmail-3.5.0-cn.tar.gz ./
Vw~\H Gs/~ @PSLs*
编辑安装配置文件setup
w/m:{c Hk l,`!rF_ # vi seutp
5kMWW*Xtf .F2:!h$ 按系统情况修改如下内容:(这里是我的配置)
/,tAoa~FA (S/F)? 'jfRt-_- j-b* C2l # 操作系统类型为FreeBSD
&c%Y<1e`% 0XU}B\'< _OS="FreeBSD"
n}n EcXb uY#TEjGh] ;_+uSalt m_7
nz!h # 默认语言为中文
dh -,E d)ahF[82 _LANG="CN"
m%r/O&g #wR;|pN Zv!{{XO2; ,r^"#C0J} # 不安装apache
57I}RMT" 8P: spD0 _INSTALLAPACHE="NO"
F-
rQ3 N4!<Xj [f{VIE*?% 4. qtp` # 添加qmail用户
i$^ZTb^ fiDl8=~@ _ADDQMAILUSERS="YES"
V5mTu)tp5 (6gK4__}] )"<8K}%! s8mr'' # 域名
sen=0SB/ UKBJ_r _DOMAIN=mail01.3322.org
6lFfS!ZFA rf
K8q'@ &^.57] z\!K<d"Xv # 邮箱管理员密码
X[3}?,aqL Ip
*g' _MAILPASSWD=1234
wdas1 3HC CA s>AXbs ;H0 {CkH # CGI路径
m`A%
p IDFFc& _CGIBIN=/usr/local/www/cgi-bin
K|r Lkl9 L^`}J7r |oFAGP1 2N [= # Html路径
CI7A#
6- aaW]JmRb _HTMLPATH=/usr/local/www/data
~$,qgf ,<Kx{+ [h i@P}{ jLVl4h& W;_E 4 kU l ###########--------Advanced set--------#################
6g:|*w WcUJhi^\C # 设置邮箱容量50M
!36]ud& \Y|*Nee}XP _MAILSIZE=50000000
e":G*2a L,_.$1d # enable virutal domain lookup via reverse ip address lookup for virtual domains. "y" and "n"
*%FA:Y y/_XgPfWU _USERCRUISE=n
SZU
\i* 0y#Ih {L # apache 安装路径
nHXX\i \IM4Z|NN" _APACHEPATH=/usr/local
mEAXM1J| @x&P9M0g # 不使用系统用户验证
E,[xUz" J$ut_N):N _SYSTEMPASS=n
*ZCn8m:-+ _2ef LjXQ # 安装 vpopmail
$.E6S<(h -G |a*^ _VPOPMAIL="YES"
'DbMF?<. OS-f(qXd+ # 安装 ezmlm
3`.P'Fh(k 4@3[ _EZMLMIN="YES"
%
ZU/x
d 0#p/A^\#7M # ezmlm coding
e]8,:Gd( Am4lEvb _EZMLM=ch_GB
6sfwlT oYM3Rgxf9Q # 安装 autorespond
hVpCB, T D@v9 _AUTORESPOND="YES"
:$3oFN*g WgQBGch,! # 安装 QmailAdmin
vIGw6BJI T]9\VW4 _QMAILADMIN="YES"
es:2M |#O 6QQfQ, qCQ./"8 15\Ph[6g ##########--------SqWebMail set--------#############
uZjC
c M c,\i"=!$ # 安装 webmail
^eq</5q D 3,X/,' _WEBMAIL="YES"
:Ixx<9c. 9"{W,'r&d # webmail coding set.have "iso","gb2312","big5" and more.
j7QX,_Q ?uL eFD _MIMESET=gb2312
uzr\oj+> k=ytuV\ # webmail use SSL,"YES" or "NO"
S::=85[>z \E1U@6a _WEBHTTPS="NO"
,L>
ar)B 7;:#;YSha ,T,:-E si4-3eC ##########--------SQL set---------################
Av J4\ +~zXDBS9 # 使用数据库
~`MS~,, k"UO c= _SQL=y
l:B;zi`)oB 1`0#HSO # mysql 主机
YNdrWBf) o89(
h! _SQLHOST=localhost
z9/G4^qF BHDML.r }M # mysql 用户
9=l.T/?sf JAc_kl{4O _SQLUSER=root
R[tC^]ai l:|D,q # mysql 密码
1%[_`J;>Z X@N$Z{ _SQLPASS=123456
}ET,ysa ,~PYt*X4 # include path
4<,|*hAT ;F:fM!l= _INCDIR=/usr/local/include/mysql
}=](p-] 5 5f'DoT # lib file path
alMYk l~s7Ae _LIBDIR=/usr/local/lib/mysql
lJ;J~> EV M7Q> NcS.49 ;Y9=!.Ak0y ff?t[GS Rg&-0b 然后在安装脚本里找到下面几句
)}v3q6?_ R9vT[{!i tar xzf sqwebmail-3.3.7.20020910.tar.gz
'_s}o< {Bvj"mL]j cd sqwebmail-3.3.7.20020910
F?+3%>/A@ {BBw$m, o if [ "$_LANG" = "CN" ]; then
RrrK*Fk8= unl1*4e+ cp /tmp/iceblood/Qmail_setup/iceblood/sqwebmailcn/*.html sqwebmail/html/en-us
K]oM8H1 ^y.nDs%ZT7 fi
vYmSKS -F/st BcWcdr+}9 `bI)<B 将其改为
`1` f*d
v <Cpp?DW_ tar xzf sqwebmail-3.5.0-cn.tar.gz
b}!3;: iD rM}0%J' cd sqwebmail-3.5.0
S:Q! "U ~^I>#Dd #if [ "$_LANG" = "CN" ]; then
>>Ar$
'1SG(0 #cp /tmp/iceblood/Qmail_setup/iceblood/sqwebmailcn/*.html sqwebmail/html/en-us
}l0&a!C | $^;wP #fi
U
5w:"x z$lF)r:Bc b8KsR=]4I c{#yx_)V& 改好后保存。这样安装包就可以自动安装新的sqwebmail程序。
\0;(VLN'U *O$CaAr\s f|EUqu%E 7v}x?I 让setup可执行
2RtHg_d_l k8nLo.O # chmod 700 setup
4Cb9%Q0
,<,:8B 执行setup安装
&a)eJF]:! q0mOG^ # ./setup
l;X|=eu' ?9MVM~$ 安装完成后系统自动运行qmail程序。可以通过qmail start|stop手动启动或停止qmail程序。
4DWwbO [dX`K`k z2c5m M(q'%XL^ 测试
4EP<tV DC+wD
Bp; 因为我们前面设置了虚拟主机www01.3322.org 和 www02.3322.org,他们的文档目录不是安装qmail时所指定的目录。为了保证邮件访问正常,我们再添加一个虚拟主机mail01.3322.org,
SS|z*h
Z ^)yTBn, 将它的文档目录指向/usr/local/www/data:
G* b2,9&F yBed kj 先到希网申请一个域名,我们假设它是mail01.3322.org
we7c`1E .aOnGp {i~8 : )vB2!H/ 编辑/usr/local/etc/apache/httpd.conf
y %8op:' H5>hx{ # vi /usr/local/etc/apache/httpd.conf
hqSJ(gs{ !/{+WHxIr| 添加下面一段
Oc?+M 5 &p
UZDjo? q6P
wZ_ hIv@i\` ServerAdmin
webmaster@mail01.3322.org (n{wg(R pI[ZBoR~ DocumentRoot /usr/local/www/data
<3X7T6_:@ Rhzn/\)| ServerName mail01.3322.org
&F$:Q:* * d5I f"8`@ ErrorLog /var/wwwlogs/mail01.3322.org.error.log
]<uQ.~ R5_i15< CustomLog /var/wwwlogs/mail01.3322.org.log common
(WlIwKP .S\&L-{
xFv;1Q JOnyrks 4JIYbb-a' lG<hlYckv 重新启动apache
I,6/21kO p4u5mM # /usr/local/etc/rc.d/apache.sh stop
"I-
w #!J(4tXny # /usr/local/etc/rc.d/apache.sh start
^cvl:HOog wmr-}Y!9u% 4b]a&_-} %~|HFYd 首先确认mail01.3322.org已经正确指向了你的主机ip地址。然后在浏览器地址栏输入
http://mail01.3322.org/cgi-bin/qmai...g,密码是1234。
"%2xR[NF ~vdkFc(8B 建立一个新用户,然后在浏览器地址栏输入
http://mail01.3322.org/cgi-bin/sqwebmail 2 -!L _W( Ft JjY@# 以你新建立的用户登录,就可以收发邮件了!
M&Y .; tCF&OOI4` ~=r^3nZR/J donw(_= 关于SMTP验证的问题:
nx":"LFI v0*N)eqDGd 网上有很多讨论关于qmail安装包的smtp验证有问题的文章,我经过反复测试,发现iceblood前辈的安装包本身并没有问题,问题出在foxmail上,如果你使用Foxmail4.2发邮件,不需要在smtp验证添任何内容就能发出去;如果是使用outlook,不添或添错了smtp验证内容都发不出去。大家可以试试。所以我这里没有给qmail-smtp打补丁。(iceblood前辈的安装包不同版本之间好像有区别,建议大家下载我这个)
%!Q`e79g8 >n5:1.g xom<P+M!| {1J&xoV" 安装vqregister-2.5
a)-FGP^ w>?Un,K vqregister-2.5是vqsignup的升级版本,提供qmail邮箱注册功能。
_cDF{E+; _+f+`]iM 进入vqregister-2.5安装目录
D]! aT+ %Tn#- # cd /home/ylf/app/vqregister-2.5-cn
N^?9ZO Wk;5/ Jc4L5*Xn/ cX!Pz.C 编译安装前需要修改两个文件
or ;f&![w ~rbIMF4T`] 修改register.c文件
R614#yn-+ >"X\>M`" # vi register.c
s'P( ,!f bJr[I 找到下面一行
ug 7o>PX XdEPbD- eret = execl("/var/qmail/bin/qmail-remote", "/var/qmail/bin/qmail-remote", p, "
register@inter7.com", cemail, NULL);
Vsq8H}K ^W83ByP 将里面的qmail路径指向正确的路径,这里改为
7iC *Pr TTNkr` eret = execl("/usr/local/qmail/bin/qmail-remote", "/usr/local/qmail/bin/qmail-remote", p, "
register@inter7.com", cemail, NULL);
8
}'|]JK 3.
WF}8 8U2dcx:G3 VU|dV\> 修改安装配置文件Makefile
n_K~vD T>>YNaUL # vi Makefile
;a"q'5+Ne Nw J:! 找到这几行
aiCFH_H4;L -l+P8:fL~ DEFS = -I$(VDIR)/include -I/usr/local/mysql/include
v"u^M-_ ][PzgzG ~o3Hdd_#}N C}g9'jY LIBS = -L$(VDIR)/lib -lvpopmail -lcrypt -L/usr/local/mysql/lib/mysql -lmysqlclient
XdgUqQb} 1-SVCk
- A!W0S d?idTcgs INSTALL_DIR = /usr/local/apache/cgi-bin/vqregister
m"tOe? zQy"m-Q 3ucP(Ex@tg CCijf]+ 将它们改成实际路径,这里是
6w3R'\9 pz^<\ DEFS = -I$(VDIR)/include -I/usr/local/include/mysql
6x{<e4<n Tz&Y]#h_ wy1X\PJjH }SyxPXs LIBS = -L$(VDIR)/lib -lvpopmail -lcrypt -L/usr/local/lib/mysql -lmysqlclient
yWPIIWHx! EER`?Sa( 6bc337b 1a0kfM$ INSTALL_DIR = /usr/local/www/cgi-bin/vqregister
UsVMoX^ #eP
LOR&q QA!_} N4n P'@<:S| 编译安装
84zTCX %bXx!x8( # make install
OY-w?'p?W 6+rlXmd F^aR+m 4] > ]-b 安装完成后需要编辑vqregister的配置文件
`WEZ"5n = iB,["s # cd /usr/local/www/cgi-bin/vqregister
9D\4n Uh}seB#mJj # vi vqregister.conf
d87vl13 PrQ?PvA<L 修改下面几项
vEM(bT=H Zx }&c |Q D:\ g,\Z /h2b;" # 设置管理信息
bte~c {'+QH)w( AdminEmail
postmaster@mail01.3322.org z"4]5&3A =`n]/L"Q +KGZHO! =]R3& ]#n # 设置邮箱使用的域名
0X2@CPIFf ij5g^{_T;8 AllowDomain mail01.3322.org
;#G oGb4AM jd`},X / tL
SN`6[: xZ5M/YSyG 其它项目可根据注释修改,不改也行,直接保存即可。
A?Q a 4i fBtm%f W|k0R4K]] ~%u|[$ 测试vqregister
$S*4r&8ZD Z!xVgM{ 在浏览器地址栏输入
http://mail01.3322.org/cgi-bin/vqre.../vqregister.cgi ,按要求添入注册信息,提交后显示注册成功信息,证明你的vqregister安装成功!如果出现错误,请按提示检查注册信息或检查vqregister.conf文件。
|xr%6 [Ff n@C~ev@%S W)j|rz. ~Aad9yyi 第六步:安装配置视频点播服务器
_STB$cZ [//R ~i? V+-$jOh <|O^>s; 演示地址:
http://baihua.3322.org/media PALl sGlf gQSNU_o Z FreeBSD下的流媒体视频点播服务器软件可以使用苹果公司的Darwin Streaming Server或者Real公司的Helix Universal Server,前者最大的优点是免费,后者在网上使用的很多。我在使用这两种产品时发现Darwin Streaming Server对各种媒体格式支持的没有Helix Universal Server支持的好,比如象现在流行的mp4,再加上现在网上rm格式的节目源非常丰富,制作rm媒体文件的工具也非常多,所以本文还是选用了Helix Universal Server做为视频点播服务器。
NBh%:tu7M u.pxz8 下载FreeBSD版的Helix Universal Servevr Basic,免费版的Helix Universal Servevr最大支持1M的带宽。并可申请1年的使用证书。
SxgYjIa- 0XwHP{XaO http://forms.real.com/rnforms/products/servers/eval/mbps.html :A46~UA!$ :^ i9] 需要填写一些信息才能下载,注意要添入正确的email地址,因为下载后授权证书会发到你添的邮箱里。还有操作系统一定要选FreeBSD!
pqM~l& jkAAqR R 下载后的文件名为rs901-freebsd4-ia32.bin,将它上传到/home/ylf/app目录。
d<w~jP\ ( fD
;g9 'J*<iA*W >>[/UFC)n 安装过程很简单:
ln*icaDqf ~sQjl] 进入/home/ylf/app目录
?zJpD8e /5AW?2) # cd /hom/ylf/app
#0I{.Wy] e)nimq
{6 修改rs901-freebsd4-ia32.bin权限为可执行
G |*(8r() +,+vkpL-% # chmod 700 rs901-freebsd4-ia32.bin
WE}kTq Hs"(@eDV&J 执行rs901-freebsd4-ia32.bin进行安装
;T]d MfO 5 v^yQ<70 # ./rs901-freebsd4-ia32.bin
$!vxVs9n h)lPi 当提示输入证书文件路径时先按回车跳过
31^cz*V <q)4la 接下来要你看一个协议,按方向键走到最后
6Q4X6U:WB IJOvnZ("A 下面提示安装位置
rn@`yTw^ uD_v! 输入/usr/local/realserver
X#xFFDzN %sh>;^58P 接着会有一些端口选择的提示,一般按回车接受默认值即可,80端口如果冲突可改为8080。系统还会随机产生一个管理端口,把端口号记下来,我们安装后通过web页进行管理时要输入这个端口号。
&MmU _eSdnHWx 另外安装时还会提示输入管理员用户名和密码,这个也要记下来。
LVIAF0kX q:>^ "P{ |as!Ui/J/ S&O3HC 安装结束后,打开real公司给你发的邮件,里面有一句“License key for Helix Server may be downloaded from:”,下面的连接就是下载证书的连接。下载后把证书文件上传到/home/ylf/app目录。然后拷贝证书文件到指定的目录
p]D]:
Z}P Op.8a`XLt& # cd /home/ylf/app
Gz
I~TWc+G vq*Q.0 M+ # cp RNKey-Helix_Server-90-2804003590401434.lic /usr/local/realserver/License
|s7`F% pnyWcrBf 其中RNKey-Helix_Server-90-2804003590401434.lic为证书文件名,你的证书文件名会不同,
09KcKhFB %U7.7dSOI; /usr/local/realserver/License是证书文件路径。
-b&{+= ^c v7 至此安装过程结束。
}/dRU${! ubsSa}$q #BVtL :x@ $aCd/& 进入程序目录
3H\w2V P;ZU-G4@ # cd /usr/local/realserver
QB!~Wh m8Vdb"0 启动Helix Universal Server
[$(%dV6O h-a!q7]l # Bin/rmserver rmserver.cfg
rj]F87" PupM/?57 出现一连串的“Starting PID”提示,证明Helix Universal Server已经启动。
!"Yj|Nu6 g]@(E iO/XhSD |LG4=j.l 测试
k;PAh>8 -Lu)'+ 在浏览器地址栏按如下格式输入
http://192.168.0.1:28274/admin/index.html ,这里28274是安装时系统随机产生的管理端口号,你的和这个不一样。
%m,6}yt ha@L94Lq 这时会弹出登陆对话框,添入你上面设置的管理员用户名和密码,这样就打开了管理界面。
@tohNO> "|Fy+'5} 选左侧的Server Setup——Media Samples就可以看系统提供的演示多媒体文件了!注意客户端要有RealPlayer8以上的媒体播放器才行。
0Q,g7K<d }uHrto3M 如果要添加自己的rm文件,可以将文件放到/usr/local/realserver/Content目录,然后在RealPlayer上输入地址
rtsp://192.168.0.1:554/xxx.rm就可以看了,其中xxx.rm是你的rm文件名。
iF5'ygR-Z c:S] R" 多媒体文件存放路径可以通过Server Setup——Mount Points修改。
W+wA_s2&D zQ?!f#f ulT8lw=' WFR?fDtE 有一个问题值得注意:当系统使用超过一块网卡时,Helix Universal Server在安装时总是将管理端口自动绑定到系统的第一块网卡上,也就是使用ifconfig命令察看网卡信息时显示的第一块网卡。这样如果你的终端不是连接在第一块网卡上,将不能打开管理web页面。
^VW
PdH/Fe UrlM%Jnq1 这个问题可以在能打开管理web页面的时候,选Server Setup——IP Binding,通过添加地址0.0.0.0来绑定所有的网卡。
S0h'50WteJ 'AGto'Yy; 另外还可以通过修改Helix Universal Server的配置文件来解决:
bUV >^d ,)+o # cd /usr/local/realserver
Jk|Q`h A61^[Y,dX_ # vi rmserver.cfg
NqHy%'R {_N,=DQ! 添加如下内容:
vE6mOM!_L ~0$NJrUy Sgim3):Z C`=p+2I] r;9 r!$d 7*Qk`*Ii .LVQx $CTSnlPq 重新启动Helix Universal Server即可。
*b *G2f^ 682Z}"I0 eg<bi@C1| \}6;Kf}\ 如果自己制作rm流媒体文件,有两种工具很好,一个是real自己的Real Producer Plus,另一个是网络多媒体梦工厂real2002。前者功能强大,后者是类似前者的简化版,用起来很方便。