测试
Hr.JZ>~< "I1M$^8n 首先以root身份执行线程察看命令top,列表中应该有下面几个线程正在运行:
loVvr"&g XzwQ,+IAr PID USERNAME PRI NICE SIZE RES STATE COMMAND
Zvw3C%In 9MlfZsby 69 root 2 0 440K 296K select natd # 网络地址转换进程
}qX&*DU_@ 74N\G1 132 root 2 0 3692K 3052K select httpd # apache进程
rnrx%Q `e69kBAm 166 mysql 2 0 27480K 4824K poll mysqld # mysql进程
MrjB[3Td %^BOYvPx 在浏览器地址栏输入
http://192.168.0.1 ,如果显示apache的欢迎页面,证明web服务器安装成功!web页面文件存放在/usr/local/www/data目录中,你可以把自己的网页拷贝到这个目录,就可以访问自己的主页了!
,Onm!LI= lfG&V +S1 键入命令
wtick~) [~%;E[ky$ # mysql
V$%Fs{ D,R2wNF 出现下面显示证明mysql安装成功!
Hu!>RSg,,2 7)X&fV6<8 Welcome to the MySQL monitor. Commands end with ; or \g.
Q`fA)6U Bc,z] Your MySQL connection id is 2 to server version: 3.23.52
N=q29JU ,>EY9j "4-Nnm l.'E\3Bo Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
#NxvLW/ hA19:H=7R0 m!>'}z bWzc=03 mysql>
-m-WUox4" t|XC4:/>T 键入exit退出mysql。
^mb*w)-p? JO$]t|I |?Uc:VFF B_G7F[/K 为mysql的root用户设置一个口令123456
ZuV \)
ONy9 # mysqladmin -u root password '123456'
?UZyu4O% GM92yi!8 ~}l,H:jk@ G#M]\)f% 现在我们来安装一个支持php+mysql的论坛。到
http://www.faeryboard.com/去下载完美版的仙境论坛程序。将下载的rar压缩包解开,然后使用ftp上传到/home/ylf/app目录。
VL1z$<vVXt g5'bUYsa yc}t(*A5 \0& (q%c 事先备份web服务器演示页面
?Qp_4<(5 nUu|}11 ( # cd /usr/local/www/data
, |B\[0p &BR?;LD # mkdir backup
DEp:
vlW@ 7!r`DZ"yF # mv * backup
`Hu;Gdj= M|u5Vs1 ?5M2DLh~ YZJP7nN 将论坛程序拷贝到/usr/local/www/data目录
RH 0a\RC!G +N!{(R:"v} # cd /home/ylf/app/vbb2.3.0final
yXmp]9$ %'<
qhGJ # cp –r * /usr/local/www/data
P Qay
sdb +u.L6GcB 编辑论坛配置文件
f%l#g ]] :
s3Vl # vi /usr/local/www/data/admin/config.php
9e6{( mw%_yDZ{ 内容如下
Z@umbyM gQGiph | ^M
L zy|<:K+$ MM7gMAA.mz /////////////////////////////////////////////////////////////^M
o8"xoXK5xf 4x>e7Kf // Please note that if you get any errors when connecting, //^M
@~HD<K #bH[UId[ // that you will need to email your host as we cannot tell //^M
a}{! %5 GDntGTE~sk // you what your specific values are supposed to be //^M
Fje%hcV <:o><f+ /////////////////////////////////////////////////////////////^M
wAPdu y[ );LwWKa ^M
PUArKBYM- 1(a\$Di // type of database running^M
u'][3 .;s4T?j@w // (only mysql is supported at the moment)^M
ak&v/%N hR{Zh> $dbservertype='mysql';^M #数据库类型
EpMEA1=& ~;` #{$/C& ^M
6dlPS{H#U mK4A/bsE // hostname or ip of server^M
- d6> OkXOV $servername='localhost';^M #主机名
\aozecpC` bp_@e0 ^M
C I0^eaFs Czn7,KE8X // username and password to log onto db server^M
4v$AM8/o i{0_}"B $dbusername='root';^M #登录数据库用户
#a:C=GV;4 VVOt%d $dbpassword='123456';^M #密码
W=:+f)D } U.B$4Q ^M
:4d7%q :gC2zv // name of database^M
5#PhaVc tp&iOP6O $dbname='fin230';^M #论坛所使用的数据库名称
4dAhJjhgD }+1o D{ ^M
x.Y,]wis ~Otf
" < // technical email address - any error messages will be emailed here^M
T~E83Jw `}l%Am $technicalemail='
webmaster@yoursite.com';^M #管理信息
ualtIHXK) cCs:z ^M
WBIS 4 vphLAm // use persistant connections to the database^M
Wi<Fkzj NM ]/OKs'H // 0 = don't use^M
lB-7. ~sD'pS // 1 = use^M
/jAs`"U T~Cd=s(T" $usepconnect=1;^M
'
r/1+. o6oYJ`PY ^M
NGu]|p e^QOn ?>
25r=Xv TrW3@@}j (完)
R
>TtAm0N @UX`9]-P QNY{pk U@WT;:.T 除了root用户的密码需要添入外,其他部分可以不改。
i^(<E0vS oZCO$a 保存后,在浏览器地址栏输入
http://192.168.0.1/admin/install.php ,根据提示一步步安装即可。
HYS7=[hv6 !RI&FcK 安装成功后,在在浏览器地址栏输入
http://192.168.0.1 ,就可以看到论坛了!怎么样,挺漂亮吧!关于论坛的其他问题,请仔细看论坛安装包里面的说明文档,或者到仙境论坛的主页,那里有仙境论坛的一切!
5l#)tX.by \9DTf:!4Z 下一节,我们要讨论关于虚拟主机的问题。
|rQ;|+. "fdG5|NJe {H74`-C)W J4<*KL~a 配制虚拟主机:
Nnw iH ;N|6C+y Apache的虚拟主机支持有两种方式,一是基于用户访问Apache主机时所使用的域名,另一种是通过指定IP地址来提供。这里我们只介绍如何通过不同的域名来实现虚拟主机的支持。
\=JKeL|6[S J$oJ 要实现基于域名的虚拟主机的前提条件是必须有两个域名同时指向Apache主机的IP地址,这里我们假设这两个域名分别是www01.3322.org和www02.3322.org ,这两个域名的文档都分别放置于 /home/www01 和 /home/www02这两个目录内,同时这两个目录已经设置好权限,对于目录让所有的人都可以读取、运行,对于文件,让所有的人都可以读取。
ge|}'QKow 4kiu*T 以下是具体的配置过程:
eJ'ojc3 jiat5 首先到希网去注册2个域名。然后为这2个域名分别建立文档目录
p5\b&~
g tx.sUu6 # mkdir /home/www01
apXq$wWq{D 'Tn$lh # mkdir /home/www02
]So%/rOvX N*#SY$!y G(>a LF 6*E7} 编辑apache的配制文件httpd.conf
s$;v )w$ _
i8}ld- # vi /usr/local/etc/apache/httpd.conf
6 S8#[b Y`wi=( 在文件最后找到下面2行
IaB
A 2 #X+) 6m9Z5:xG B!Y;VdX g?ft;kR6S uv$y"1'g >}iYZ[ V 51A>eU| j<[<qU: uAP|ASH9T 在2行中间添加如下内容:
Lqt] R!O'DM+ NameVirtualHost * # 指定运行虚拟主机服务的主机ip地址
d;z`xy(C 8m iIlB # 静态ip方式可以将*替换为你的ip地址,动态ip直接用*即可
L_(|5#IDw .3[YOM7h |b@-1 "-9YvB# .._wTOSq B*{CcQ<5 ServerAdmin
webmaster@www01.3322.org #指定WEB管理员的邮箱
F
1BPzRo` ^J327 DocumentRoot /home/www01 #指定本虚拟主机的文档目录
^U52
*6 S}>rsg! ServerName www01.3322.org #指定本虚拟主机的域名
lp6GiF 7Y-GbG.' ErrorLog /var/wwwlogs/www01.3322.org.error.log #指定错误记录应该存放于那里
i<l)To - wXP1tM8T CustomLog /var/wwwlogs/www01.3322.org.log common #指定常规记录应该存放于那里
cla4%|kq3Y 3KGDS9I v^vEaB /<@oUv ?D#Vh a ']V 2V)t a 3HS!/ XG0,@Ly ServerAdmin
webmaster@www02.3322.org 'vXrA 7w9) ^ DocumentRoot /home/www02
b[$>HB_Na E0YXgQa ServerName www02.3322.org
l)?c3 {w2<;YXj! ErrorLog /var/wwwlogs/www02.3322.org.error.log
F](kU#3"S DpA)Z?? CustomLog /var/wwwlogs/www02.3322.org.log common
yY!jkRq%w 6d_l[N `=oN &! R{.ku!w (完)
r8mE [hs{{II bygwoZ<E "UE'dWz 创建/var/wwwlogs目录
UXd\Q'' pJ{sBp_$ # mkdir /var/wwwlogs
.; :[sv) )%*uMuF 重新启动apache
djk sYvO"| # /usr/local/etc/rc.d/apache.sh stop
mFT[[Z# uvT]MgT # /usr/local/etc/rc.d/apache.sh start
l?ofr*U&-x *p
VKMmU 分别在/home/www01和/home/www02目录拷入不同的网页文件进行测试,注意主页名称必须是index.html或index.php
b.$Gc!g =!7yX;| {1FYHM^ Zf|f $1- 测试
xD1w#FMlQs bY#> 确认注册的2个域名已经指向了你的主机ip。
|[gnWNdR$M |g@1qXO3 在浏览器地址栏输入域名
http://www01.3322.org 和
http://www02.3322.org ,如果分别显示你拷入的主页证明虚拟主机配置成功!
MLUq"f~ N 1<lLE1fk Nj?,'?'O} klPc l[.w 利用上面的方法我们可以建立更多的虚拟主机,甚至对外提供主页空间服务!
gX);/;9mm+ U|,VH-# __)9JF <MY_{o8d 如果要对外提供虚拟主机服务,需要为使用者提供ftp上传功能。下一节我们将讨论如何通过Proftpd1.2.7+proftpd-mod-quotatab-1.2.4+mysql实现带有空间限额和数据库用户验证功能的ftp服务器。
4%B${zP(.} #[IQmU23 zc(-dMlK t0/fF'GZD 第四步:安装配置ftp服务器
N~SG=\rP;o "xw2@jGpG Z[|(}9v?~ N1_nBQF ) 由于为每一个需要使用ftp服务的用户建立系统帐户会影响系统的安全,所以我们使用数据库用户进行ftp用户验证。
^/c&Ud =8[HC}s|$ 系统组成:Proftpd1.2.7+proftpd-mod-quotatab-1.2.4+mysql
0LxA+ ;gf^;%FK 因为ports里没有proftpd-mod-quotatab-1.2.4模块,我们下载源代码安装。
w+PbT6; 1'M<{h<sP 下载源代码包:(必须下载相同版本的源代码包)
gg5`\} i4AmNRs 到
http://www.proftpd.org 或
ftp://ftp.servus.at/ProFTPD/distrib/source/proftpd-1.2.7.tar.gz/。
C5F}*]E[y hb`(d_= 7F 到
http://www.castaglia.org/proftpd/ 去下载proftpd-mod-quotatab-1.2.4.tar.gz。(1.2.5 版本的mod_quotatab是用在1.2.8rc1上的)
$BCqz! 4K Si!W@Jm 用ftp将它们上传到/home/ylf/app目录。
w+ bMDp \3x,)~m 然后解压缩源代码包
QO0T<V BH\qm
(X # cd /home/ylf/app
aiea&aJ Z?X
^7< # tar zxvf proftpd-1.2.7.tar.gz
!DD|dVA{ B\9ymhx;g% # tar zxvf proftpd-mod-quotatab-1.2.4.tar.gz
?mnwD ]u xj(&EGY: 进入mod-quotatab目录
\# ?$9C[Kw` # cd mod_quotatab
co#%~KqMu Z{&PKS 把mod_quotatab中的文件拷贝到proftpd 中的modules 目录中
^BW V6 s\_
,aI # cp * ../proftpd-1.2.7/modules
Ry tQNwv3 qd"*Td P5kkaLzG zS]Yd9;X1 在开始运行configure之前,我们要先改动一个文件
B$aboL2
!1;DRF 进入 proftpd-1.2.7/contrib 目录
{V,rWg EPW
Iu)A # cd /home/ylf/app/proftpd-1.2.7/contrib
b>?X8)f2e oljl&tuQy 修改 mod_sql_mysql.c
+ ,0RrD ) G
?H`9*y # vi mod_sql_mysql.c
OP{ d(~+ -&y{8<bu4H 找到#include 把他该为你实际路径,这里是:
]Ocf %( gtJUQu p2 #include
&H`yDrg6U yD(0:g# =DUsQN! &$|k<{j[<f 然后编译安装
Cj,fP[p#7 ZI-)' # cd /home/ylf/app/proftpd-1.2.7
JuKj Z'hW;^e%_z #./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
BB>3Kj:| e=QnGT*b5 # make
/\(0@To {C[<7ruF # make install
mS6L6)] S OANn!nZ. #P<v[O/rA JEGcZeq) 进入到proftpd配置文件所在目录
Wl?*AlFlk @?f3(Gh, # cd /usr/local/proftpd/etc
[?yOJU%` Xq1n1_Z 备份原配置文件
vH9/}w2 Lr V)}1&5 # mv proftpd.conf proftpd.conf.bak
/!ux P~2U !zVuO*+ 然后编辑新的配置文件proftpd.conf
Ay22-/C|@ 7?dB&m6W # vi proftpd.conf
n@Y`g{{e~ ;XRLp:y 我的proftpd.conf内容如下:
/)e&4.6 x?VX,9;j &S]\)&Yt -6aGcPq # This is a basic ProFTPD configuration file (rename it to
5a&[NN fYl$$. # 'proftpd.conf' for actual use. It establishes a single server
A!x_R {,yH NyFa2Ihd # and a single anonymous login. It assumes that you have a user/group
pg ;agtI ehoDWO]S # "nobody" and "ftp" for normal operation and anon.
TY],H= Nj@k|_1 (G*--+Gn ke!)C[^7z ServerName "ftpx.3322.org"
,g;~: <U (gjX ServerType standalone
+MIDq{B 3W5|Y@0 DefaultServer on
0bVtku K;G a{mtG{Wc VX2KE@ 1.4]T, ` # 用户登陆时不显示ftp服务器版本信息
b,cA mZ ^8a,gA8. ServerIdent off
ck){N?y ?sfA/9" Nc,"wA D: NBb!
# Port 21 is the standard FTP port.
MLG%+@\ "[q/2vC Port 21
FAz shR k9vr6We' DyD#4J)E E;fYL]j/oZ # Umask 022 is a good standard umask to prevent new dirs and files
Hl8-1M$& !vHnMY~AG # from being group and world writable.
;oH17 }3!83~Qbx Umask 022
snK$? 9vh Zm>Q-7r9 k3da*vwE \SHYwD}*Pr MaxLoginAttempts 3
A|,\}9)4X[ ce0TQ TimeoutLogin 120
nw+L _b 8$io^n\i TimeoutIdle 600
|CexP^;!U 47ppyh6@ TimeoutNoTransfer 900
hWfJh0I rW0# 6 TimeoutStalled 3600
. p^='Kz? ; =ai]AYW x$Ko|:- $]<C C ` MaxClients 100
Mc#uWmc 7 w}c1zpa sU^2I v\% M`*B/Fh2 #设置每台主机最多并发连接数
KdHR.;* r :{2}nE MaxClientsPerHost 3
ClCb.Ozj4 (\{9W r /63 mT
<4@RrB AllowOverwrite no
;nyV)+t+a 2
:u4~E3 AllowStoreRestart on
22"M#:r$ gbL99MZ@~ UseReverseDNS off
#oSQWC=T zm-j FY ? 0(VH8@h`O |\TOSaZ #设置如果shell为空时允许用户登录
A,ttn5Sh? ^0_ *AwIcN RequireValidShell off
bg[k8*.:F 'Cd8l#z7 =;-/( C `re]Q0IO #将用户限制在自己的主目录下
@vh3S+=M \$}xt`6p DefaultRoot ~ ftpusers
Oh9wBV V@&zn8? DefaultRoot ~ FTPGRP
^n!{ vHz
~O;!y% Z$ Fh4 >*(4evU # To prevent DoS attacks, set the maximum number of child processes
R"Nvnpm S5*wUd*p# # to 30. If you need to allow more than 30 concurrent connections
.^>[@w3 dd>|1'-] # at once, simply increase this value. Note that this ONLY works
0APwk
} L MC-1 # in standalone mode, in inetd mode you should use an inetd server
Dq/[g,( zNofI$U # that allows you to limit maximum number of processes per service
3Bee6N> &F1h3q)L # (such as xinetd).
8W)3rD> l~!Tnp\M MaxInstances 30
~
nNsq(4 _6Wz1.]n \j !JRD+j %Rj:r!XB: # Set the user and group under which the server will run.
W?mn8Y;{` -|B?pR User FTPUSR
gRIRc4p izsAn"v
Group FTPGRP
M7^PWC \~UyfVPRT Ck8`$x&t ^crk8O@Fw # Normally, we want files to be overwriteable.
H$zjN8||" 9a 9<I eUPG){" '31pb9@fH AllowOverwrite on
jv>l6) +Gqh yx"xbCc# )28Jz6.I q4@n
pbx ,LKY?=T$z # A basic anonymous configuration, no upload directories.
YNA %/ {\[u2{ # 匿名登录设置。匿名用户目录为/ftp
b2u_1P\ "(5A5> *q_
.y\D FKY|xG9 User ftp
Yxz(g] fp|!LU Group ftpusers
htk5\^(X 85Zy0l 28JWQ%- &1YAPxX # We want clients to be able to login with "anonymous" as well as "ftp"
A]`63@- . lTW5>% UserAlias anonymous ftp
>e
:&k p |B<+Y<)f^ VJ;n0*/ {c`kC]9 # Limit the maximum number of anonymous logins
}C!N$8d, lfG]^id' MaxClients 10
tX$%*Uy z #c)Q 3ddH@Y| J7W]Str # We want 'welcome.msg' displayed at login, and '.message' displayed
+C1/02ZJ +Wh0Of # in each newly chdired directory.
-1d2Qed Bi/=cI DisplayLogin welcome.msg
4]0|fi3}> 5jD2%"YUV DisplayFirstChdir .message
9$8B)x +:pjQ1LsJ XSC._)ztEE o#gb+[ # Limit WRITE everywhere in the anonymous chroot
'qwFVP fC+<n{"C #
m-S4"!bl eE5U|y)_ # DenyAll
}eb}oK z40uY]Ck #
+168!Jw; [}q6bXM* ;W,XP#{W \M(0@#-$C s9svuFb ~K]5`(KV z[Xs=S!]I 6,*hzyy}Qu #数据库联接的信息,FTP是数据库名,localhost是主机名,root是连接数据库的用户名,#123456是密码(如果没有密码留空)
| YmQO#'' lgFA}p@ SQLConnectInfo FTP@localhost root 123456
q|BR-0yi C-'n4AY^ ;4p_lw@ 37Ux2t #数据库认证的类型
N-EVHe'}6 h'YC!hjp SQLAuthTypes Backend Plaintext
:S'P
lH :5IbOpVM PrqN5ND vp7J'; #指定用来做用户认证的表的有关信息。("FTPUSERS"和"FTPGRPS"是数据表名字,等一会
'1{co/Y *m6~x-x #在下面建立)
oG~a`9N%C hw]x T5 SQLUserInfo FTPUSERS userid passwd uid gid homedir shell
v
MTWtc!6 \9TCP;{ SQLGroupInfo FTPGRPS groupname gid members
/\P3UrQ&] C1_':-4 1uBnU2E 'z7,)Q&8 #数据库的鉴别
U86bn(9K 5:v"^"S z SQLAuthenticate users groups usersetfast groupsetfast
c+$alwL~ O& k+;r ?
hU0S 5<h7+ %?t9 #如果home目录不存在,则系统会根据它的home项新建一个目录
ovJwor 7.7P>U SQLHomedirOnDemand on
}qU(G3 $'Z\'<k[ l?GN& u 7\I,;swo #启用磁盘限额
!\w@b`Iv8 I?c "\Fe QuotaDirectoryTally on
kSj,Pl\NC <yzgZXxIaS gE2k]`[j] YLs%u=e($ #磁盘限额单位 b"|"Kb"|"Mb"|"Gb"
X:Z4QqT ^-Ob($(\ QuotaDisplayUnits "Kb"
+|(-7" :k9n
9
d Bn/_ tDn{;ED< QuotaEngine on
Ca}T)]// $j=c;+W 6\"g,f 9>,$q"M}? #磁盘限额日志记录
}jTCzqHW] uFPJ}m[>5 QuotaLog "/var/log"
yneIY-g(p 40,u(4.m* Mg3>/! 2;X{ZLo # 打开磁盘限额信息,当登陆FTP帐户后,使用命令 "quote SITE QUOTA" 后可显示当前用#户的磁盘限额
b.HfxYt( NvCq5B$C QuotaShowQuotas on
<j
CD^ j"g[qF/* NKyaR_q` O#Y;s;)i" #SQL调用语句,不用修改
<sdC#j nGb%mlb 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}'"
2P)*Y5`KBH x[XN;W& ,pfHNK-u 6aC'\8{h 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*%pNE U R%l6+Okr EG=~0j ~ <_XyHb- 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
eru2.(1 es]S]}JV o[<lTsw< tx0`#x SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" quotatallies
9?M>Y?4 .A 12Co }EFMJ,NQ ^|Bpo( QuotaLimitTable sql:/get-quota-limit
#a7 Wx} \X&LrneR"t QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
7-Bttv{ <zUU` (完)
%&EDh2w> )X-~+X91S Iu(j"b# N=4`jy = 下面为ftp用户建立相应的数据库和表
QN!.~> 1 /@lZ 进入mysql数据库命令状态:
}~/u%vI@M5 Wk3R6
V # mysql –p
MZ9{*y[z z +NxO!y 提示输入密码
oEfy{54 @|A
wT M@)^*=0H [+7 Nu 建立数据库FTP(注意大小写和每句话后面的“;”)
s
Yp?V\Y" Ekq&.qjYG" CREATE DATABASE FTP;
/eFudMl 2RW^Nqc9 Y<1]{4Wt ';T=kS<^_ 然后在这个数据库中建立一个用户表FTPUSERS,这个表是必须的:
#p<1@, 4(2iR0N use FTP;
a-nf5w>&q 24)Sf 2VSs#z! f9`F~6$ create table FTPUSERS (
LojEJ 6:PQkr userid TEXT NOT NULL,
;4E(n ds>V|}f[ passwd TEXT NOT NULL,
p~X=<JM Z]Zs"$q@ uid INT NOT NULL,
mv%Zh1khn/
'ju gid INT NOT NULL,
e-@=QI^, oXKH,r homedir TEXT,
ZmT
N s]=bg+v?j shell TEXT
M
mihWD02 8vP:yh@ );
a04I.5! Z{'.fq2A W.nQYH NhP&sQO 此表格是为了用户认证所需要的,其中userid、passwd是必不可少的,userid是用做FTP服务的用户名;passwd是指此用户的密码;uid是系统用户的ID,也就是所映射的系统用户;gid是所属系统组的ID;homedir是该用户所在的HOME目录;shell可以为该用户指定相应的shell。当然你可以建立更多的字段,例如:用来记录用户登录次数的count,或者是日期的date,如果你对配置熟悉了之后,你可以根据自己的喜欢添加更多的功能。在此就不多讲。
H2EKr#(
]J`yh$a o>3g<-ul <OYy;s 如果需要更多的功能,可以添加另外一个需要的表:FTPGRPS,也就是确定组的表格,当然也可以不用,这里讲一个它的格式:
x{=@~c%eh hu=b, create table FTPGRPS (
\a\J0&Z .tFMa: groupname TEXT NOT NULL,
|{)SLvlJl :)cn&'l(S gid SMALLINT NOT NULL,
P:`tL)W_ e+_~a8 -| members TEXT NOT NULL
^F}HWpF_ FNQR sNi );
6[iu CMOZ |.8lS3C 其中groupname是组的名称,gid是系统组的ID,members是组的成员。注意:多成员,他们之间要用逗号隔开,不能使用空格。
6Vq]AQx BK+(Uf;g HizMjJ| Muhq,>!U 为FTP用户建立相应的系统用户。
-Odk'{nW gWqO5C~h 在本例中,将整个FTP服务只提供一个有效的系统用户FTPUSR和组FTPGRP,当然你也可以设置多个系统用户。但出于安全的考虑,我只设一个,用他来启动FTP daemon,并把所有的FTP用户映射过这个用户。
fF~3"!1#\I \QpH~&QIS iJIDx9 )Z O&ur|&v 先建立FTPGRP组:
ue YBD]3' p-KMELB # pw groupadd FTPGRP -g 2001
ow,4'f!d %cPz>PTW@ 建立FTPUSR用户:
!i"Z pONBF3H8 # pw adduser FTPUSR -u 2001 -g 2001 -d /home/FTP -s /sbin/nologin
)_7OHV *3 z3 zN^ZT WJB/X"J YLEk
M
为FTPUSR建立HOME,把所有的FTP user 活动空间全放在此目录下:
#7wOr78 #fF~6wopV # mkdir /home/FTP
6f$h1$$)^ uTSTBI4t # chown FTPUSR /home/FTP
ao@"j}c <%@S-+D`] # chgrp FTPGRP /home/FTP
~-1!?t/% d;Uzl1; pO2Y'1* kX\\t.nH 下面为磁盘限额建立数据表:
jl!rCOLt4 @D<KG # use FTP
e-}b]\ i]qVT)j CREATE TABLE quotalimits (
|C MKY wZ^7#yX> name VARCHAR(30),
Hg~O0p}[ <G5d{rKZ quota_type ENUM("user", "group", "class", "all") NOT NULL,
. q=sC?D /1h
0l; per_session ENUM("false", "true") NOT NULL,
!jV}sp<Xp zsQhydTR limit_type ENUM("soft", "hard") NOT NULL,
7DG{|%\HF
"F,d}3} bytes_in_avail FLOAT NOT NULL,
( k@%04c %J_`-\)"{~ bytes_out_avail FLOAT NOT NULL,
b IS3 h^u 9W7. bytes_xfer_avail FLOAT NOT NULL,
p@/i e@DX .x
1& files_in_avail INT UNSIGNED NOT NULL,
o0f{ePZ= G^Z
SQ! files_out_avail INT UNSIGNED NOT NULL,
`ViFY
3Pb]Of# files_xfer_avail INT UNSIGNED NOT NULL
E"E Bj7<s 3C=| );
L_3undy, =h`yc$
A(2 $m.e}`7SF! '+!@c&d#%o CREATE TABLE quotatallies (
]yTMWIx#
>&1MD} name VARCHAR(30) NOT NULL,
q#8$@*I H*l2,0&W quota_type ENUM("user", "group", "class", "all") NOT NULL,
9M$=X- "y %S.ipWG bytes_in_used FLOAT NOT NULL,
5#v F?+K~['i bytes_out_used FLOAT NOT NULL,
w(sD}YA) L5E|1T bytes_xfer_used FLOAT NOT NULL,
1T{A(<:o$ LI>tN R~ files_in_used INT UNSIGNED NOT NULL,
~S\Ee 2e> *?k~n9n5U files_out_used INT UNSIGNED NOT NULL,
uC_&?
mOLP77(o files_xfer_used INT UNSIGNED NOT NULL
Cst:5m0! S 1%/ee3 );
-Qs4s RJ#xq#l
\= M*x +) pO82 说明一下,quotatallies表不需要作修改,它记录了用户当前的磁盘使用情况,由程序自动记录
+/g/+B_b E1atXx 要注意的是quotalimits 表中一些字段的含意
p4\r` Z#-:zD7_ quota_type 磁盘限额的鉴别,可以设置单个用户,也可以设置一个组中的全部用户,还可以设置全部用户
Qx9lcO_ a0vg%Z@! bytes_in_avail 上传最大字节数,就是FTP用户空间容量 (设置这个字段的时候是以byte(字节)为单位,如果要限额在10M,那就是10240000,下面也一样)
t@a2@dX| C?UV3 bytes_out_avail 下载最大字节数,需要注意的是,这个字段中记录的是用户总共能从服务器上下载多少数据,数据是累计的。
YS}uJ&WoF QzjLKjl7p4 bytes_xfer_avail 总共可传输的文件的最大字节数(上传和下载流量)需要注意的是,这个字段中记录的是用户总共能传输文件的最大字节数,数据是累计的。
^%^~:<N 0>uMR{ # files_in_avail INT 总共能上传文件的数目
?a8 o.&`l Kr$ w"] files_out_avail INT 能从服务器上下载文件的总数目
7=YjY)6r^ E~=`Ac,G2 files_xfer_avail INT 总共可传输文件的数目(上传和下载)
G~oGBq6Gz MroJ!.9 vd@_LcK ryd*Ha">I 测试
{x3"/sF V!eq)L 首先停掉inetd的ftp服务
4g}eqW ;C1]gJZ, # ps ax|grep inetd
*x^W`i
HG(J+ocn 得到inetd的线程号
vOb=> TFX*kk&R # kill 得到的线程号
;QT.|.t6 S7tc VEolyPcsg& gm**9]k ^{ 启动proftpd
oW:p6d I}5#!s< {& # cd /usr/local/proftpd/sbin
J#tGQO e8HGST` # ./proftpd
*\?tW]8< p'lL2n$E 如果出现错误提示可以进入proftpd的调试模式进行调试:
!,rp| , _K /e # ./proftpd -n -d 5 -c /usr/local/proftpd/etc/proftpd.conf
wnaT~r@U' aS^
4dEJ proftpd就会将调试信息打印到consle上以供调试之用。
"3kIQsD|j /{eD##vhP sN6R0YW gO0X-fN8 添加一个测试用户并为他设置磁盘限额
g]^@bxdg NaeG2>1 use FTP
x|#R$^4CY PcXz4?Q$ S#IlWU Cr?|bDv}o 添加用户
58x=CN\QU HZp}<7NR(7 INSERT INTO FTPUSERS (userid, passwd, uid, gid, homedir, shell)
,KXS6:1%5Y )aW;w |#n valueS ('user1', '999999', '2001', '2001', '/home/FTP/user1', '' );
wS*An4%G K{eq'F5M 7Eoa~ +,` Cv_O 设置磁盘限额
-L;sv0 D0 'L 将上面建立的user1帐号给予10M空间,最多能上传500个文件到服务器上,文件传输流量为20M,只能传输10个文件。
t5r,3x!E #0K122oY 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` )
oyQp"'|N Pr
|u_^ VALUES ('user1', 'user', 'false', 'soft', '10240000', '0', '2048000', '500', '0', '10');
W\JbX<mQ ]a4rA+NFLB 不需要设置的部分用0代替就可以了。
89*txYmx Qh4@Nl#Ncf ~x:\xQti muMb pF 在windows提示符下登录ftp服务器。输入用户名user1,密码999999
ZWZRG-:&H lTl-<E; c:\> ftp 192.168.0.1
tI2V)i! 7 &y'\ D6cqON0a. 3lw
KV 运行quote SITE QUOTA显示当前用户的磁盘限额
oBfh1/<<a "bI'XaSv ftp> quote SITE QUOTA
)%8 ;C]G; c{YBCWA 200-The current quota for this session are [current/limit]:
Up:<NHJT 2Zf}t Name: user1
G}!dm0s$ ~Z74e>V% Quota Type: User
_J'V5]=4 PQ6.1} Per Session: False
[)K?e!c8 El3Y1g3+3 Limit Type: Soft
y|sU-O2}Dl U ?vG?{A Uploaded Kb: 0.00/10000.00
T#ktC0W]h [1pWg^ Downloaded Kb: unlimited
`a$-"tW~j drr
W?U Transferred Kb: 0.00/2000.00
QWqEe|}6 CCZ'(Tkq Uploaded files: 0/500
ulY8$jB
V1[Cc?o Downloaded files: unlimited
mmE!!J`B DG2CpR)S Transferred files: 0/10
&NvvaqJ iUNlNl ? 200 Please contact
root@wwwx.3322.org if these entries are inaccurate
<1r#hFUUL _!vxX] R07 7eX O$<m(~[S 数据库用户验证和磁盘限额测试成功!
K9{]v=#I 2vb {PQ >_R,^iH" ^T(v4'7 另:如果添加了FTPGRPS表,也可以为此添加记录,不过一定要注意在members的字段多个成员一定要用逗号隔开。
,;RAPT4 :Q~Rb<']{x INSERT INTO FTPGRPS VALUES ('FTPGRPS', 2001, 'FTPUSR');
}vppn=[Y ii< /!B( 9$]I3k BU3VXnqT[ 关于匿名登录:
$K_G|Wyi 3>Ne_kY 本文的ftp服务器提供了匿名登录服务。对于匿名登录用户,我专门在硬盘上划分了一个2G的分区/ftp,所有的匿名用户文件都放在这个单独的分区里。
tw<mZd2H c34s(>AC :Nry | N*Is_V\R 添加匿名系统用户组ftpusers和匿名用户ftp
7/ $r F 7v 1rf] # pw groupadd ftpusers
oP[R?zN XsOz
{?G # pw useradd ftp -g ftpusers -d /ftp -s /sbin/nologin
d7g3VF<j GJpQcse% 如果ftp用户已经存在使用如下格式
uT")j,tz #0;H'GO?c # pw usermod ftp –g ftpusers –d /ftp –s /sbin/nologin
+(a}S$C h-0#h/u>M UEm~5,>$0 xN^ngRg0 在/ftp下建立匿名用户目录并设置权限
?^y!}( |j?iD # mkdir /ftp/incoming
u 2)#Ml uA`EJ )d # mkdir /ftp/pub
G54,`uz2 3Ryae/Nk # mkdir /ftp/bin
#2dd`F8 UW!*=?h # mkdir /ftp/etc
o@o0V 8`I/\8;H'p # chown ftp /ftp/incoming
`~~.0QC .ty^ k@J|] # chgrp ftpusers /ftp/incoming
U};~ff+ "Uk " )/32sz]~ ZvQ~K(3 测试
Iu3*`H Cob<N'. 在浏览器地址栏输入
ftp://192.168.0.1 ,应该显示刚才建立的几个目录。进入incoming目录,应该可以在里面新建文件夹或文件。这样就完成对匿名ftp的测试!
:6N'%LKK e!eUgD d]fo>[%Xr ")gd)_FOS 注意:由于我的这个配置文件设置了每台主机的最多并发连接数为3
HU~,_m ap
5D6y+ MaxClientsPerHost 3
.}xF2'~E/ E%+ aqA)f 所以打开多个ftp登录窗口时会报错。
IJ#G/<ZJZ _^Ds[VAgA (]Zyk,[ Cp`>dtCd =1:dKo8 .aA8'/ 建立proftpd的启动脚本
~7kIe+V vt(A?$j|A # cd /usr/local/etc/rc.d
,JLY
oE+ E#5$O2b# # vi proftpd.sh
Rt%3\?rf E0SP 内容如下:
wZAY0@pA I: j!A lZ\Si *8WcRx #!/bin/sh
1cA4-,YO> vk^ /[eha (Lp$EC&%6 ;z>?-
j case "$1" in
Z`W@Od$f v/1&V+"^kd ^GS,4[)H Boi?Bt start)
{}Q A#:V u'm[wjCjc /bin/mkdir -p /var/run/proftpd
?E6*Ef Pc{0Js5VzE if [ -x /usr/local/proftpd/sbin/proftpd ]; then
o3s ME2 <"&I'9 /usr/local/proftpd/sbin/proftpd && echo -n ' proftpd'
0EA<ip ;aI`4; fi
$L@os2 z 8w&;Ls ;;
MO1t0My c u lqh}Uv' SK>*tKY
Y[\ZN stop)
#]vy`rv e>FK5rz killall proftpd
UNc[h&@_ H&yK{0H ;;
qjtrU#n
C0Oe$&
_ *)
h_SDW %($ D:r+3w:l] echo "$0 start | stop"
6)@Y 41H]C &+K:pU?[$ ;;
?6m6 4{M |q(
.j4[i 7,pn0,HI 0_A|K>7 esac
oD@~wcMIT0 M6X`]R' (完)
vz~QR i* 1TuN @Yl&Jg2l' :X66[V&eH 设置脚本可执行
u4W2{ R cz;|h8 # chmod 750 proftpd.sh
K]<49`MX t9!8Bh< *h H\H
+VN&kCx) Proftpd全部安装结束后,就可以不用inetd(Internet超级服务器)了。
4ox[, &B;M.sz~C4 编辑/etc/rc.conf文件,将inetd=”YES”改成inetd=”NO”。
YhZmyYamE \["'%8[:gR 编辑/etc/inetd.conf文件,将带有ftp字样的行前面加上#号。
IPIas$ [VsTyqV a 这样在重新启动后,inetd将不会自动运行。
~S$\ PG4 LH"CIL2 &'0|U{| d/m.VnW 使用本文的ftp服务器加上第三步介绍的web服务器应该可以提供比较基本的虚拟主机服务了。以上面建立的测试用户user1为例,其方法是:
IwR/4LYI #y?iUv 设置了数据库用户和磁盘限额后,编辑apache的配置文件/usr/local/etc/rc.d/httpd.conf,为用户配置虚拟主机并将文档目录指向/home/FTP/user1。这样user1就可以自己更新主页了。
'JjW5 sNF[-,a ;(Xig$k hm&cRehU 第五步:安装配置E-mail服务器
sK&[sN33 u=U.+\f5 |$)+h\h K).Gj2 $ 演示地址:
http://baihua.3322.org/cgi-bin/sqwebmail LzS)WjEN AwC"c ' iceblood前辈制作的qmail安装包使安装qmail邮件服务器简化了许多,只是sqwebmail汉化的好像有点问题,我下载了一个汉化好的sqwebmail,将它填入iceblood前辈的安装包内,可以随安装包一次安装完成。为了提供邮箱注册功能,我使用了最新版本的vqregister-2.5,并将其界面进行了简单的汉化。
LXGlG _>k&,p]y y1FE +EX[ LRuB&4r8 本E-mail服务器包含的功能
5i$iUDuT>( $z"1&y) 1、Qmail帐号与系统帐号的分离。
gXQ
s)Eyv ??7c9l5, 2、Qmail邮件列表功能。
8vuA`T!~G ^1b/Y8&8A 3、Qmail自动回复功能。
JxV0y '0\v[f{K3G 4、对vpopmail的支持。
,f]GOH j\uh]8N3< 5、邮件帐号WEB管理方式。
S
6|#9C& :d!qZFln 6、邮件的WEB使用方式,如:WEB发邮件,查看邮件。
y>5??q Z<Pf[C 7、能任意调整WEB的CGI以及HTML路径。
qoo+=eh! BSMM3jXb 8、SMTP服务的密码验证功能,能有效的防止别人利用自己的服务器发送匿名信。
uxjx~+qFd mHY R? 9、选择性安装webmail。
*?-,=%,z/ iz0GL&< 10、对虚拟域的支持。
S=N3qBH6 ?|`Ba- 11、增加qmail的管理脚本,安装后可以运行qmail start|stop|restart来管理qmail。
n'42CE 5N_w(B 12、全面支持Mysql数据库,只要在SQL设置区里打开数据库的支持,并设置好数据库密码,就可以支持数据库了。
{?zBc E: 5xs GSoa+ 13、增加了QmailAdmin和sqwebmail的中文界面!![新]
Kz>Bw;R( EV$$wrohQ` 14、对很多包有是否安装的可选择余地![新]
jnu!a.H X>$s>})Y 以上为iceblood前辈制作的qmail安装包v1.5.3自带功能。
REj<2Lo MKr)6PG, 在此基础上我添加了修改过的sqwebmail的中文界面并增加了邮箱注册功能(中文界面)。
!L=RhMI +'@j~\>^yJ nc.(bb), qpCNvhi 下载qmail安装包1.5.3
]m(C}} CH ojF+e ftp://baihua.3322.org/pub/server/Qmail_setup-v1.5.3.tar.gz I_k!'zR[N cu~\&3R 下载修改过的汉化安装包sqwebmail-3.5.0
lQ]8PR
t8 K!\$M BI ftp://baihua.3322.org/pub/server/sqwebmail-3.5.0-cn.tar.gz V?0Yzg$sy ]nM 2J}7 下载我汉化后的vqregister-2.5
NY,ZTl_ d`g)(* ftp://baihua.3322.org/pub/server \a}_=O q5UD!&W 英文原版vqregister-2.5下载地址
z5|m`$gy _Z>I"m http://inter7.com/vqregister.html icw (y(W "~|;XoMU 1>pFUf|cV 43HZ)3!me 首先把下载的安装文件上传到/home/ylf/app目录
&l0-0T> yG ,oSp| 解压缩qmail_setup-v1.5.3安装包
#j?SdQ 0&@pD`K e # cd /home/ylf/app
l5*sCp*Z s;9>YV2at # tar zxvf qmail_setup-v1.5.3.tar.gz
Uh tk`2O Jj:Bi&C 进入解开的目录
K*]^0 Ne=o+ $.( # cd Qmail_setup
>cV^f6fH RaBq@r*( 将新的sqwebmail中文安装包拷到此目录
nz}}m^-j bFv,.(h' # cp ../sqwebmail-3.5.0-cn.tar.gz ./
^hN.FIzM J,&B 编辑安装配置文件setup
^G*zFqa+` 9td[^EB#(h # vi seutp
\GFFPCi4D j/Dc';,d.( 按系统情况修改如下内容:(这里是我的配置)
p[&6hXTd M;$LB@h TA"4yri=7x kR1dk4I4 # 操作系统类型为FreeBSD
d${RZ}/ IcDAl~uG _OS="FreeBSD"
="<S1}. $X;wj5oj waYH_)Zx dPtQ
Sa # 默认语言为中文
1;Q>B>6 ]%4rL
S _LANG="CN"
@TWt M# [Dv6z t> %{sL/H_ jr=>L: # 不安装apache
(oiF05n
h i=ztWKwKf _INSTALLAPACHE="NO"
p ^(gXzW Z`9yGaTO .Y^UPxf@ YcQ3:i # 添加qmail用户
B\ITXmd
@[vwqPOL _ADDQMAILUSERS="YES"
u]Eyb),Gy O6Gg?j mH/$_x)o `~.0PnHf # 域名
UyWKE< aV6l"A] _DOMAIN=mail01.3322.org
M10u? 0nDlqy6b1b JOA_2qa>\ "\:ZH[j # 邮箱管理员密码
2 ~zo)G0 gEBwn2 _MAILPASSWD=1234
{Y p;R '~Z#h P 7ql&UIeQ vA(')"DDT # CGI路径
kV mJG# Z\)emps _CGIBIN=/usr/local/www/cgi-bin
!:7aXT*D$ EA/+~ux 'h:[[D%H` 4 <&8`Q # Html路径
6$l6>A 2Q/#.lNL _HTMLPATH=/usr/local/www/data
4=T>Iy c/g"/ICs G3.MS7J
+T R# yU"'h[^ pR
VL}^Rk ###########--------Advanced set--------#################
>UQ`@GdafR KioD/
# 设置邮箱容量50M
n*
7mP ?pLKUA h _MAILSIZE=50000000
G#~6a%VW ic+tn9f\ # enable virutal domain lookup via reverse ip address lookup for virtual domains. "y" and "n"
1aAYBV<3 ua'dm6",: _USERCRUISE=n
dE_I=v DJF-J# # apache 安装路径
6J\Yi)v< >;ucwLi _APACHEPATH=/usr/local
TN=MZ{L sT^^#$ub # 不使用系统用户验证
OSvv\3= lk5}bnd5 _SYSTEMPASS=n
O0lQ1<= SAa
hkX # 安装 vpopmail
/wjL< _DAAD,'<a _VPOPMAIL="YES"
F> F&+63Q- f17pwJ~= # 安装 ezmlm
Q>FuNdUk L'>t:^QTh _EZMLMIN="YES"
p4|Zz:f '$cU\DTN6 # ezmlm coding
m;v/(d> 8")1, _EZMLM=ch_GB
^<@9ph #Moju # 安装 autorespond
fy|Ae mST/u>' _AUTORESPOND="YES"
-6+&?f nsq7,%5 # 安装 QmailAdmin
E+ 65 JQ*CF(9 _QMAILADMIN="YES"
fRTQ5V 6^L4wd7) L;},1
\ 'WUevPmt ##########--------SqWebMail set--------#############
8#Q=CTjF iCouGd} # 安装 webmail
_~M*XJ] ` olC@nQ1c* _WEBMAIL="YES"
>D';i\2j& jocu=Se@ # webmail coding set.have "iso","gb2312","big5" and more.
wHQyMq^ |7jUf$Q\p _MIMESET=gb2312
l6X\.oI !5~{?sr> # webmail use SSL,"YES" or "NO"
6m$,t-f0b LWb5C{ _WEBHTTPS="NO"
T/^ /U6JB #_tixg 2<aBUGA D/CSR=b ##########--------SQL set---------################
)ow|n^D($M T/%s7!E # 使用数据库
\h%/Cp+p x)hp3&L _SQL=y
x.7Ln9 Y%UfwbX!g # mysql 主机
_fH.#C .1yp}&e# _SQLHOST=localhost
%2<G3]6^U ]F@XGJN # mysql 用户
^n|u$gIF8 g`jO _SQLUSER=root
,$,6%"'" 29?{QJb # mysql 密码
/x6,"M[97 ]-$0?/`p8 _SQLPASS=123456
mis
cmD /\-qz$ # include path
k,xY\r$ f$x\~y<[ _INCDIR=/usr/local/include/mysql
|wKC9 O@% CQo<}}-o # lib file path
%Ot22a Q']
_3 _LIBDIR=/usr/local/lib/mysql
ta*B#2D> ,%+i}H,3 6xs_@Vk|d /-wAy-W kzhncku JkazB1h 然后在安装脚本里找到下面几句
i6)$pARp j*m7&wOE tar xzf sqwebmail-3.3.7.20020910.tar.gz
_MfB,CS
ZJ9J*5!C cd sqwebmail-3.3.7.20020910
C@` eYi &46h!gW if [ "$_LANG" = "CN" ]; then
.17WF\1HC. -{i;!XE$SR cp /tmp/iceblood/Qmail_setup/iceblood/sqwebmailcn/*.html sqwebmail/html/en-us
5-Vdq ?Sj3-*/? fi
_2V L% s[|sfqB1` 1&~u:RUXe #Sj:U1x 将其改为
*KO4H 6,sZo!G tar xzf sqwebmail-3.5.0-cn.tar.gz
/wB<1b" )+c4n] cd sqwebmail-3.5.0
K@P5]}'# )8ejT6r #if [ "$_LANG" = "CN" ]; then
EKsL0;FV sO~:e?F #cp /tmp/iceblood/Qmail_setup/iceblood/sqwebmailcn/*.html sqwebmail/html/en-us
vu[+UF\G 4tTK5`7N #fi
LB_ylfg k&4@$;Ap 'dYjbQ}~; ,v$gWA!l 改好后保存。这样安装包就可以自动安装新的sqwebmail程序。
i DV.L %D|27gh (MiEXU~v j?ihUNY!+ 让setup可执行
-b"7WBl yjODa90!G # chmod 700 setup
7@u0;5p| =(ts~^ 执行setup安装
OPR+K ? C`c;I7 # ./setup
P 8DY*B k GwHMXtj4 安装完成后系统自动运行qmail程序。可以通过qmail start|stop手动启动或停止qmail程序。
$\l7aA5~ TTaSg\K #(C2KRRiA HDUtLUd 测试
Ml` f+$ EOu\7;kE9 因为我们前面设置了虚拟主机www01.3322.org 和 www02.3322.org,他们的文档目录不是安装qmail时所指定的目录。为了保证邮件访问正常,我们再添加一个虚拟主机mail01.3322.org,
6CBk,2DswI L;=:OX0 将它的文档目录指向/usr/local/www/data:
& IVwm" $Scb8< 先到希网申请一个域名,我们假设它是mail01.3322.org
RwMK%^b t>QAM6[ Jw'%[(q
Q +!IIt {u 编辑/usr/local/etc/apache/httpd.conf
LC/9)Sh_n 60P^aj$V # vi /usr/local/etc/apache/httpd.conf
\xi
wp. `JyTS~v$ 添加下面一段
uM,bO*/f ((wG
K|d JX,&im*BG lwhAF, '$ ServerAdmin
webmaster@mail01.3322.org iva&W W8j)2nKD DocumentRoot /usr/local/www/data
L
DD^X@q OI"vC1.5 ServerName mail01.3322.org
/gZrnd? S8mqz. ErrorLog /var/wwwlogs/mail01.3322.org.error.log
/Fej)WQp @EH:4~ CustomLog /var/wwwlogs/mail01.3322.org.log common
@^oOXc,r$ ^~Nz8PCY ^D 8YF Mp*")N, kRs(A~ngc
_V6jn~N 重新启动apache
^& ZlV %m]9"; # /usr/local/etc/rc.d/apache.sh stop
} 5i0R Z.+-MN WV # /usr/local/etc/rc.d/apache.sh start
ZzPlIl}\ 9\RSJGx6 X96>N{C*> es@_6ol.@ 首先确认mail01.3322.org已经正确指向了你的主机ip地址。然后在浏览器地址栏输入
http://mail01.3322.org/cgi-bin/qmai...g,密码是1234。
6r/NdI aObWd5~ 建立一个新用户,然后在浏览器地址栏输入
http://mail01.3322.org/cgi-bin/sqwebmail ]YQ[ ) >=-w2& 以你新建立的用户登录,就可以收发邮件了!
vwDnz/- k`Nc<nN8 ;Pik}, l-4T Tg 关于SMTP验证的问题:
PVvNu5k '" LrGvkZ 网上有很多讨论关于qmail安装包的smtp验证有问题的文章,我经过反复测试,发现iceblood前辈的安装包本身并没有问题,问题出在foxmail上,如果你使用Foxmail4.2发邮件,不需要在smtp验证添任何内容就能发出去;如果是使用outlook,不添或添错了smtp验证内容都发不出去。大家可以试试。所以我这里没有给qmail-smtp打补丁。(iceblood前辈的安装包不同版本之间好像有区别,建议大家下载我这个)
bFk >IifN +h^>?U, |
Zx X=)Ue 安装vqregister-2.5
S(Md <U`lh vqregister-2.5是vqsignup的升级版本,提供qmail邮箱注册功能。
M7{w7}B0@ ss'#sPX 进入vqregister-2.5安装目录
:U!kn b"/> ez_qG=J . # cd /home/ylf/app/vqregister-2.5-cn
(y%}].[bB ,<n >g; xlG/$`Ab YIo$ 编译安装前需要修改两个文件
z/u;afB9q {Y-<#U~iH 修改register.c文件
"1>I/CM !a?$ # vi register.c
]kA0C~4 [mphiH/ 找到下面一行
IFNs)* so}(*E&(a eret = execl("/var/qmail/bin/qmail-remote", "/var/qmail/bin/qmail-remote", p, "
register@inter7.com", cemail, NULL);
ocBfs^ aW MIvAugUOl 将里面的qmail路径指向正确的路径,这里改为
,R/HT@ r4/G&m[V eret = execl("/usr/local/qmail/bin/qmail-remote", "/usr/local/qmail/bin/qmail-remote", p, "
register@inter7.com", cemail, NULL);
nsFOtOdd 0FmYM@Wc 3Z#k9c_b 9 lE[oAC 修改安装配置文件Makefile
{pMbkAQ@ hI*gw3V # vi Makefile
@~%R%Vu |Fz/9+I 找到这几行
fH?e9E4l 5BnO-[3 DEFS = -I$(VDIR)/include -I/usr/local/mysql/include
]b!o(5m B}_*0D t%Hg8oya xayo{l=uGv LIBS = -L$(VDIR)/lib -lvpopmail -lcrypt -L/usr/local/mysql/lib/mysql -lmysqlclient
wJM})O%SQ <EFA^,3t% ,K=\Y9l3 8px@sXI*` INSTALL_DIR = /usr/local/apache/cgi-bin/vqregister
,> lOmyh . (G9mZFV 8enlF\I8g jY'svD~ 将它们改成实际路径,这里是
!'uL V(Ll]g/T_; DEFS = -I$(VDIR)/include -I/usr/local/include/mysql
PjZsMHW% ;Z|X` <6g 7YT%.ID ]w z`j1 LIBS = -L$(VDIR)/lib -lvpopmail -lcrypt -L/usr/local/lib/mysql -lmysqlclient
h`n,:Y^++P >+y[HTf- mxk :P 8A/"ia INSTALL_DIR = /usr/local/www/cgi-bin/vqregister
*TQXE:vZ[ P6'Oe|+' 0o~? ]C KDr?<"2L 编译安装
9TRS#iVL+* -N;$L~`iAt # make install
l&l&eOE UFBggT\ SV#$Cf g o1<Y#db[ 安装完成后需要编辑vqregister的配置文件
4ti\;55{W X!Ag7^E # cd /usr/local/www/cgi-bin/vqregister
g
bDre~| ]OIB;h;3 # vi vqregister.conf
Zp@j*P ~<
%%n'xmm 修改下面几项
l,j7I3&~% e;L++D h>\T1PM \d$fi*{ # 设置管理信息
.l?sYe64S |#9Nu9ak AdminEmail
postmaster@mail01.3322.org C(-w A r
>bMx~a] {I'8+~|pZL FG/". dU # 设置邮箱使用的域名
KZoIjK] -7E)u AllowDomain mail01.3322.org
zOJ4I^^ KMC]< \]RPxM:_> 6;s.%W 其它项目可根据注释修改,不改也行,直接保存即可。
PyQt8Qlz
UhKC:<% xgoG>~F Qj;wklq 测试vqregister
iUDN m|e ~D# -i >Z 在浏览器地址栏输入
http://mail01.3322.org/cgi-bin/vqre.../vqregister.cgi ,按要求添入注册信息,提交后显示注册成功信息,证明你的vqregister安装成功!如果出现错误,请按提示检查注册信息或检查vqregister.conf文件。
2;h4$^`dt q"){PRTm/ $yxwB/ O( d%+oCoeb 第六步:安装配置视频点播服务器
>np!f8+d"q >h:rYEsh8V /}+VH_N1 \Ps}1)wT 演示地址:
http://baihua.3322.org/media cV]c/*zA kaM=Fk=t FreeBSD下的流媒体视频点播服务器软件可以使用苹果公司的Darwin Streaming Server或者Real公司的Helix Universal Server,前者最大的优点是免费,后者在网上使用的很多。我在使用这两种产品时发现Darwin Streaming Server对各种媒体格式支持的没有Helix Universal Server支持的好,比如象现在流行的mp4,再加上现在网上rm格式的节目源非常丰富,制作rm媒体文件的工具也非常多,所以本文还是选用了Helix Universal Server做为视频点播服务器。
zq]I"0Bi. 2I'gT$h 下载FreeBSD版的Helix Universal Servevr Basic,免费版的Helix Universal Servevr最大支持1M的带宽。并可申请1年的使用证书。
S -$ L2N $ 9bIUJ http://forms.real.com/rnforms/products/servers/eval/mbps.html %oPW`r WUOoK$I~K 需要填写一些信息才能下载,注意要添入正确的email地址,因为下载后授权证书会发到你添的邮箱里。还有操作系统一定要选FreeBSD!
A^lJlr:_` .*FBr7rE\ 下载后的文件名为rs901-freebsd4-ia32.bin,将它上传到/home/ylf/app目录。
6ub-NtVu NGQBOV A|jmp~@K)+ P?|F+RoX$ 安装过程很简单:
5cahbx1"
r'bctFsD 进入/home/ylf/app目录
sBUK v(U) \"=4)Huv # cd /hom/ylf/app
S-x'nu$u *}fs@"S
修改rs901-freebsd4-ia32.bin权限为可执行
bY`
b3 TCShS}q;% # chmod 700 rs901-freebsd4-ia32.bin
z[Sq7bbYO j v9DQr 执行rs901-freebsd4-ia32.bin进行安装
Dp1FX"a) O3ij/8f # ./rs901-freebsd4-ia32.bin
ivTx6-] wJ.?u]f@ 当提示输入证书文件路径时先按回车跳过
6.#5Ra B%y?+4;zA 接下来要你看一个协议,按方向键走到最后
pXn(#n< : jgvg$fd 下面提示安装位置
vNdMPulr{ <'(O0 输入/usr/local/realserver
~x67v+I $z1W0 接着会有一些端口选择的提示,一般按回车接受默认值即可,80端口如果冲突可改为8080。系统还会随机产生一个管理端口,把端口号记下来,我们安装后通过web页进行管理时要输入这个端口号。
[=3f:>ssm Eo
h4#fZ\N 另外安装时还会提示输入管理员用户名和密码,这个也要记下来。
,_SE!iL #B_Em$ {7EnM1] wY$'KmNW 安装结束后,打开real公司给你发的邮件,里面有一句“License key for Helix Server may be downloaded from:”,下面的连接就是下载证书的连接。下载后把证书文件上传到/home/ylf/app目录。然后拷贝证书文件到指定的目录
T2EQQFs Pv-El+e! # cd /home/ylf/app
`Uz2(zqS |76G#K~<X # cp RNKey-Helix_Server-90-2804003590401434.lic /usr/local/realserver/License
6f=,$:S$ ~HW8mly' 其中RNKey-Helix_Server-90-2804003590401434.lic为证书文件名,你的证书文件名会不同,
.kbo]P Z\1*g k /usr/local/realserver/License是证书文件路径。
6Bv!t2 lI,lR 至此安装过程结束。
?HD
eiJkX !u)>XS^E 7E0L-E=. ~Qg:_ @@\ 进入程序目录
0cGO*G2Xr RC[mpR;2 # cd /usr/local/realserver
fRcs@yZnS oc|%|pmRd< 启动Helix Universal Server
.$ o0$`}
5yA1<&z # Bin/rmserver rmserver.cfg
3EY>XS 30BFwNE 出现一连串的“Starting PID”提示,证明Helix Universal Server已经启动。
XIep3l* kdq<)>" blVt:XS{,m d17RJW%A 测试
[quT&E !
.q,m>?+ 在浏览器地址栏按如下格式输入
http://192.168.0.1:28274/admin/index.html ,这里28274是安装时系统随机产生的管理端口号,你的和这个不一样。
wP|Amn+; SRP.Mqg9 这时会弹出登陆对话框,添入你上面设置的管理员用户名和密码,这样就打开了管理界面。
tVUC@M>' <bvbfS 选左侧的Server Setup——Media Samples就可以看系统提供的演示多媒体文件了!注意客户端要有RealPlayer8以上的媒体播放器才行。
4z;@1nN_8a 6H]rO3[8 如果要添加自己的rm文件,可以将文件放到/usr/local/realserver/Content目录,然后在RealPlayer上输入地址
rtsp://192.168.0.1:554/xxx.rm就可以看了,其中xxx.rm是你的rm文件名。
~]w|ULNa3| 4J~ZZ 多媒体文件存放路径可以通过Server Setup——Mount Points修改。
bUcEQGHcZ= bU3P;a( {4C/ZA{|l J2_~iC&;s 有一个问题值得注意:当系统使用超过一块网卡时,Helix Universal Server在安装时总是将管理端口自动绑定到系统的第一块网卡上,也就是使用ifconfig命令察看网卡信息时显示的第一块网卡。这样如果你的终端不是连接在第一块网卡上,将不能打开管理web页面。
B,xohT \Fh#CI 这个问题可以在能打开管理web页面的时候,选Server Setup——IP Binding,通过添加地址0.0.0.0来绑定所有的网卡。
bmid;X| q.}M^iDe 另外还可以通过修改Helix Universal Server的配置文件来解决:
+VSq [P jV|j]m&t # cd /usr/local/realserver
~10 >mg s^&Oh*SP* # vi rmserver.cfg
=/#+, _N @h 添加如下内容:
;q"Yz-3 :cE6-Fv )qID<j# D4G*Wz8 hx.ln6=4 `GpOS_; HL`=zB% :-[y`/R 重新启动Helix Universal Server即可。
|_h$}~; qH=<8Iu )0 1,3J>#
^ UDNp.6k 如果自己制作rm流媒体文件,有两种工具很好,一个是real自己的Real Producer Plus,另一个是网络多媒体梦工厂real2002。前者功能强大,后者是类似前者的简化版,用起来很方便。