(一、系统安装)
FPMk& ditzl(L lt]U?VZ QRjt.Ry| 前言
t2gjhn^p e8# 3Y+Tc %)e+w+ *~"`&rM( 写本文的初衷主要是记录下我一段时间学习使用FreeBSD建设网站平台的一些经验和体会。因为本人是菜鸟,所以很多地方不够完善。本文权当给初学者提供一个具体可操作的实例。所有操作步骤都是我边做边写。避免出现遗漏或一些不必要的小错误,给初学者带来麻烦。
&ar}6eO .`p_vS9 本网站平台建设全过程包括FreeBSD系统的安装,web、ftp、mail、proxy服务器、视频点播服务器等。所有过程都在FreeBSD4.7环境下测试通过。
oF^B J8%Lm PLyu1{1"z 由于写本文时参考了网上太多前辈和大侠的资料,无法一一列举。还请作者原谅。
5C&f-* Bh %qHT!aP 本连载文章前后关联很紧密,建议初学者一步一步来做。
-jy"?]ve. GwycSb1 试验环境如下:
R}VL UL$ tvUvd(8w 硬件环境:普通pc机,双网卡。配制不需要高,主要是稳定,并能适应长时间开机。听前辈介绍AMD k6的cpu运行FreeBSD好像有点问题。不过我没有试验。建议用intel的。
WWLVy( /%c^ i!=f" 软件环境:操作系统:FreeBSD4.7(4.8)
Yp)U'8{h c ..:V3]-D web服务器:Apache 1.3.27+modssl +mod_php4+mod_gzip+mod_fastcgi +mod_perl +mysql3.23
.R'i=D`Pz 8GP}g?% ftp服务器:Proftpd1.2.7+proftpd-mod-quotatab-1.2.4+mysql
(
A) wcB *J=ol mail服务器: iceblood前辈制作的qmail安装包(经过修改)+vqregister-2.5
1`t?5|s>
NZuFxJ-` proxy服务器:使用FreeBSD内置的NAT和PPP拨号+squid
75HL f0s
&9H 视频点播服务器:Helix Universal Servevr (realserver9.01)
EHHxCq? H^g<`XEgw 网络环境:我用的是adsl动态拨号方式,因为动态ip所存在的一些问题,我把所有的服务都装在一台机器上,且这台机器要直接与外网相连。静态ip更方便一些。(本文两种方式都会讨论)
C] w< &o 6~S0t1/t? ihWz/qx&q
R'/wOE2 第一步:安装系统
%},gE[N!J o;mIu#u 关于安装过程网上有很多文章,这里不作详述。仅提出几点建议供大家参考:
o0L#39`'g A] 9JbNV 1、 采用最小化安装。
bAiw]xi O m 2、 安装时启用inetd,并在编辑inetd.conf文件时,把带有“ftp”的行前面的“#”号去掉。这样作是为了以后安装软件时可以用ftp上传文件。
q9!9OcN2 l/^-:RRNKi 3、 添加一个wheel组的用户,这样在系统工作正常后可以在windows系统上通过终端登录软件(如SecureCRT)进行所有操作。FreeBSD4.7在最小安装时支持SSH终端登录,所以我们需要使用支持SSH协议的终端软件,如SecureCRT。例如我添加的用户名是ylf,隶属wheel系统组。系统产生一个用户目录/home/ylf。我可以通过SecureCRT以ylf身份登录到系统,然后通过su命令切换到root用户。同时我也可以在IE浏览器内键入
ftp://192.168.0.1 ,并输入ylf用户名和密码登录ftp将需要的文件上传到自己的用户目录里。(192.168.0.1是我的服务器连接内网的网卡ip地址)。以下除系统安装部分,我都是采用终端方式操作。
8957$g v~Qy{dn
P 4、 分区时将/home、/usr和/var划的大一些,因为/usr为程序目录,/var要存放日志,/home是用户主目录,我的用户文件如网页、ftp上传文件等都放在这里。还有最好保留一部分空间留作以后需要的时候用。我的机器上有2块硬盘,一快18.2G SCSI硬盘,一块40G IDE硬盘。我是这样划分的。
zTB9GrU E2|iAT+=. 128M /
obq}# M<unQ1+wh 20G /home
+a-@
!J~: xW =$j| 2G /ftp
Ol[gck|~ o}A #- 256M /tmp
ea0tx3' zIFL?8!H9{ 6G /usr
N -]PK%* .}N^AO= 5G /var
=fG8YZ( @W8}N|jek 其中/ftp是为匿名ftp用户访问专用。剩余空间留作备用。当然如果硬盘空间少的话,做我们的试验也是够用的。
DZRxp, l`&6W?C 关于安装方面的文章,大家也可以参考delphij写的《FreeBSD服务器的安装与优化》。
http://community.freebsdchina.org/catalog.php?forum=34 一文。
c5e\ckqm^ S$52KOo 安装完系统后,要重新编译内核。目的是要系统支持Firrwall和提高运行效率。
]gksyxn3 6W;kIoB 首先确认系统是否安装了FreeBSD的内核支持。如果是最小安装,则需要运行/stand/sysinstall命令安装内核支持。方法如下:
9 Zm<1Fw )uvFta<( # /stand/sysinstall
rj~ian Z!reX6 选Configure—Distributions—src—sys,内核文件将被安装在/usr/src/sys目录中。
--`LP[ll 9Oyi:2A 注意:这之后的过程在终端上操作要方便许多。SecureCRT支持在终端界面上直接拷贝和粘贴文本内容。
o$VH,2 QF 3gy;$}Lq T 转到内核文件目录
N RSse" QV$dKjMS # cd /usr/src/sys/i386/conf
B5HdC%8/} vXyo 编辑内核文件
f+Me dc~ W;dzLgc # vi kernel_wwwx # kernel_wwwx为我的内核文件名
2gAdZE&Y ,jsx]U/^ 我的内核文件如下:
Z(mn
U;9{v O^weUpe\ #
YO$b# @ ^cgq3H' # GENERIC -- Generic kernel configuration file for FreeBSD/i386
[;?{BB )]>
'7] i #
kZ-~
;fBe w s>Iyw.u # For more information on this file, please read the handbook section on
}#>d2 =T$ n "KJB # Kernel Configuration Files:
_np>({ Uv`v|S:+2 #
jjT2k 9~'Ip7X,! #
http://www.FreeBSD.org/doc/en_US.IS...fig-config.html 0C+yq'D~[ 3dDQz# #
[e@OHQM P8 ,jA<W # The handbook is also available locally in /usr/share/doc/handbook
,
)pt_"-XA H0 n@kKr # if you've installed the doc distribution, otherwise always see the
W?J*9XQ` ioa_AG6B # FreeBSD World Wide Web server (
http://www.FreeBSD.org/) for the
<VR&=YJ X /,1] # latest information.
j_uY8c>3\q *2
$m>N #
#'Y6UGJ\n :$Q]U2$mPS # An exhaustive list of options and more detailed explanations of the
`[ ` *@O(y A;j$rGx # device lines is also present in the ./LINT configuration file. If you are
FJ,\?ooGf *5'6E' # in doubt as to the purpose or necessity of a line, check first in LINT.
>\x_"oR G%8)6m'3 #
`pAp[]SfQd )7"DR+;: # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.48 2002/08/31 20:28:26 obrien Exp $
2]RH)W86; IcA\3j bc=u1=~w ~K#_'Ldrd machine i386
4f[M$xU&h %3#I:>si cpu I586_CPU
LOUKURe E -kri3?Y, cpu I686_CPU
]#-/i2-K [(P[qEY ident kernel_wwwx #内核文件名,这个要和你的内核文件名一致
^@LhUs>3 V?V)&y] 4 maxusers 0
~v(M6dz~vk 3g#=sd!0O@ =']}; O{cGk:
y options INET #InterNETworking
q{Ta?|x# :f
!=_^} options FFS #Berkeley Fast Filesystem
9k+&fyy (T#(A4:6S options FFS_ROOT #FFS usable as root device [keep this!]
vl{_M*w
; m57tOX options SOFTUPDATES #Enable FFS soft updates support
S}p&\w H yZ~eLWz options UFS_DIRHASH #Improve performance on big directories
`_g?y) J%-lw{FC options PROCFS #Process filesystem
vH?+JN"A pT;-1c%: options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
&~JfDe9IS g*r{!:,t options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI
VRQbf B/9<b{6 options SYSVSHM #SYSV-style shared memory
IU'!?XVo N"
Jtg@w options SYSVMSG #SYSV-style message queues
iI@Gyq= am'p^Z@ options SYSVSEM #SYSV-style semaphores
`\4JwiPo Wh'_slDH+ options P1003_1B #Posix P1003_1B real-time extensions
;GgQ@s@ ;aK !eD$ options _KPOSIX_PRIORITY_SCHEDULING
u388Wj
gQpD]p%k options ICMP_BANDLIM #Rate limit bad replies
mA] 84zO +?5Uy*$ options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
hzuMTKH9 ND55`KT4 # output. Adds ~128k to driver.
o
+QzQ+ Z lfpt:5a9& options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
id#k!*$7 pJ$N@ID # output. Adds ~215k to driver.
Ibv_D$cT At[n<8_| mp+\! ?Str*XA; device tun 1
K'{W9~9Lq LnI{S{]wDh options IPFIREWALL #防火墙
~q]|pD"\K| :af;yu options IPFIREWALL_FORWARD #允许透明代理
"U5Ln2X{J hNq8
uyKx options IPFIREWALL_VERBOSE #允许防火墙日志
[>M*_1F [,o5QH\Etq options IPFIREWALL_VERBOSE_LIMIT=100 #限制日志
v1X&p\[d r@ T-Hi options IPFIREWALL_DEFAULT_TO_ACCEPT #默认允许所有IP包
IB.'4B7 ofPF} options IPDIVERT #启用由ipfw divert使用的转向IP套接字
!8" $d_=h T?]kF- #-gGsj;F =4M.QA@lI! # To make an SMP kernel, the next two are needed
n2y/zP>TC Z*vpQBbu #options SMP # Symmetric MultiProcessor Kernel
S`2mtg /,uSCITD #options APIC_IO # Symmetric (APIC) I/O
Gkodk[VuLs pT
ocqJ22 ;( Ajf.i Lr24bv\ device isa
=N@)CB7a L`HH);Ozw device eisa
kP}hUrDX5 Fyh?4!/. device pci
T)Zt'M mSw?2ba An8%7xa7 =ve*g& .^W\OJ`G (Xr_ np @ # ATA and ATAPI devices
ENYF0wW /50g3?X, device ata
;5Wx$Yfx _86*.3fQG device atadisk # ATA disk drives
:uIi
? &Xn8oe V'Z&>6Z Av;q:x? 94p:| 5@ /mMAwx # SCSI Controllers #没有SCSI设备不需要这段
F; MF:;mM M8#*zCp{5 device ahb # EISA AHA1742 family
!HdvCYB> j2o1" device ahc # AHA2940 and onboard AIC7xxx devices
!0!U01SWa r{_B: device ahd # AHA39320/29320 and onboard AIC79xx devices
V&mH#k cz7CrK~5 device amd # AMD 53C974 (Tekram DC-390(T))
m<FWv2)^ )O2Nlk~l& device isp # Qlogic family
>2| [EZ ]e@0T{! device mpt # LSI-Logic MPT/Fusion
!e:iB7< {;Y 89&*R device ncr # NCR/Symbios Logic
==h|+NFa :~ZqB\>i device sym # NCR/Symbios Logic (newer chipsets)
eC+"mhB QX/X {h6 options SYM_SETUP_LP_PROBE_MAP=0x40
*%OYAsc Hyq@O8 # Allow ncr to attach legacy NCR devices when
't0+:o">: v.l7Q # both sym and ncr are configured
"W &:j:o |2
YubAIZ( z_:eM7]jv J0ZxhxX35 device adv0 at isa?
XSm"I[.g {uaZ<4N. device adw
4GU/V\e| eq@am(#&kY device bt0 at isa?
<THZ2`tTK3 d}{LM!s device aha0 at isa?
7xv4E<r2 ,]PyDq6 device aic0 at isa?
i}/e}s<-6 -y&v9OC2- E ;BPN b)on A| device ncv # NCR 53C500
_KB{J7bs<a V>b2b5QAH, device nsp # Workbit Ninja SCSI-3
}J ei$0x mQd4#LJ_ device stg # TMC 18C30/18C50
_pz,okO[V K0EY<Ltq ]6$,IKE7 KGV.S # SCSI peripherals #没有SCSI设备不需要这段
!US8aT c;:">NR device scbus # SCSI bus (required)
\)OZUch ID67?:%r device da # Direct Access (disks)
/9x{^ g$*/XSr( device sa # Sequential Access (tape etc)
fm(mO% @4IW=V device cd # CD
up\oWR: GVmC }>z device pass # Passthrough device (direct SCSI access)
0bMoUy*q fD1?z"lo lLb:f6N @s_3 0+ Ds%9cp*6 ~Cjz29|gp "w}-?:# j f4]N0 # atkbdc0 controls both the keyboard and the PS/2 mouse
"z
rA`` ~bdv_|k device atkbdc0 at isa? port IO_KBD
0HGl f
z%(Fo2)^ device atkbd0 at atkbdc? irq 1 flags 0x1
&49u5&TiP LHs-& yJ!OsD XDPL;(? device vga0 at isa?
:P3{Nxa +c^_^Z$_4o s|Z:}W?{ `W@T'T" )PR3s1S^ =43I1&_
# syscons is the default console driver, resembling an SCO console
0cHfxy3 O^5UB~ device sc0 at isa? flags 0x100
KAd_zkUA +7,8w '.?^uM b2N6L2~V 6X/wdk
qE )Y}oN # Floating point support - do not disable.
tawe Gc%~ Vclr)}5 device npx0 at nexus? port IO_NPX irq 13
KQ&Y2l1*>> \ht ?Gn 1N8;)HLIBJ Vy__b=ti? !; IJ 9A~>`.y # Serial (COM) ports
QV7,G9 geksjVwPH device sio0 at isa? port IO_COM1 flags 0x10 irq 4
^YGTh0$W P?kx -<_QF82 !O|ql6^; # 我用的是8139和Dlink DFE-530TX网卡,大家可根据自己的网卡型号保留或删除
ebqg"tPN{ X0`j-*,FX # 使用公共的MII总线控制器代码的PCI以太网适配器
m6^ 5S lsk_P&M # 注意:一定要保留'device miibus'以确保可用
8p&kL