(一、系统安装)
C*_C;6.~Y =,=A,kI[; /GN<\_o=q L:j<c5 前言
_x'6]f{n ,X-bJA@( F=e8 IUr \BTODZ:h 写本文的初衷主要是记录下我一段时间学习使用FreeBSD建设网站平台的一些经验和体会。因为本人是菜鸟,所以很多地方不够完善。本文权当给初学者提供一个具体可操作的实例。所有操作步骤都是我边做边写。避免出现遗漏或一些不必要的小错误,给初学者带来麻烦。
zuad~%D<I 85:=4N% 本网站平台建设全过程包括FreeBSD系统的安装,web、ftp、mail、proxy服务器、视频点播服务器等。所有过程都在FreeBSD4.7环境下测试通过。
?m}s4a :D6
ON"6 由于写本文时参考了网上太多前辈和大侠的资料,无法一一列举。还请作者原谅。
m)t;9J5 b9J_1Gl] 本连载文章前后关联很紧密,建议初学者一步一步来做。
]"hFC<w OJuG~euy 试验环境如下:
wj^3N7_:w V)HG(k 硬件环境:普通pc机,双网卡。配制不需要高,主要是稳定,并能适应长时间开机。听前辈介绍AMD k6的cpu运行FreeBSD好像有点问题。不过我没有试验。建议用intel的。
kR-SE5`Jk O7m(o:t x3 软件环境:操作系统:FreeBSD4.7(4.8)
mbTEp*H i{NzV web服务器:Apache 1.3.27+modssl +mod_php4+mod_gzip+mod_fastcgi +mod_perl +mysql3.23
}<v@01 5y[Oj^ ftp服务器:Proftpd1.2.7+proftpd-mod-quotatab-1.2.4+mysql
i Dp)FQ$ D9=KXo^ mail服务器: iceblood前辈制作的qmail安装包(经过修改)+vqregister-2.5
JN-y)L/> (AaoCa[ proxy服务器:使用FreeBSD内置的NAT和PPP拨号+squid
RQ'9m^ ]Kt6^|S$a 视频点播服务器:Helix Universal Servevr (realserver9.01)
C=L>zOZ v\gLWq' 网络环境:我用的是adsl动态拨号方式,因为动态ip所存在的一些问题,我把所有的服务都装在一台机器上,且这台机器要直接与外网相连。静态ip更方便一些。(本文两种方式都会讨论)
g0=z&2Q[_) P|tO<t6/9* KE5kOU; 1~Y<//5E 第一步:安装系统
(ylTp]~mR- {9&;Q|D z 关于安装过程网上有很多文章,这里不作详述。仅提出几点建议供大家参考:
!Y0Vid DrUO- 1、 采用最小化安装。
30#s aGV /tx]5`#@7] 2、 安装时启用inetd,并在编辑inetd.conf文件时,把带有“ftp”的行前面的“#”号去掉。这样作是为了以后安装软件时可以用ftp上传文件。
;~)5s' y|i,| 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地址)。以下除系统安装部分,我都是采用终端方式操作。
?r
"{}% |^"1{7) 4、 分区时将/home、/usr和/var划的大一些,因为/usr为程序目录,/var要存放日志,/home是用户主目录,我的用户文件如网页、ftp上传文件等都放在这里。还有最好保留一部分空间留作以后需要的时候用。我的机器上有2块硬盘,一快18.2G SCSI硬盘,一块40G IDE硬盘。我是这样划分的。
)Xz,j9GzJS JxdDC^> 0 128M /
s 8jV(P(O "Y
=;.:qe 20G /home
_ @NL;w:! kzQ+j8.,U 2G /ftp
X8a/ `Y, s^G.]%iU 256M /tmp
A@!qv#' r[`9uVT/ 6G /usr
-8ywO"6 w7.V6S$Ga 5G /var
HSE!x_$ D09Sg%w 其中/ftp是为匿名ftp用户访问专用。剩余空间留作备用。当然如果硬盘空间少的话,做我们的试验也是够用的。
EPI4!3] #C74z$ 关于安装方面的文章,大家也可以参考delphij写的《FreeBSD服务器的安装与优化》。
http://community.freebsdchina.org/catalog.php?forum=34 一文。
T= y}y ["k,QX 安装完系统后,要重新编译内核。目的是要系统支持Firrwall和提高运行效率。
i/;\7n Q^9_'t}X 首先确认系统是否安装了FreeBSD的内核支持。如果是最小安装,则需要运行/stand/sysinstall命令安装内核支持。方法如下:
/ |;RV" _lJ!R:* # /stand/sysinstall
{Qf=G|Ah H7&8\FNa 选Configure—Distributions—src—sys,内核文件将被安装在/usr/src/sys目录中。
FF`T\&u 9X+V4xux 注意:这之后的过程在终端上操作要方便许多。SecureCRT支持在终端界面上直接拷贝和粘贴文本内容。
wj$<t'MN Y1W1=Uc uk 转到内核文件目录
urs,34h .LnGL]/ # cd /usr/src/sys/i386/conf
J9--tJ?[>o G#q@v(_b 编辑内核文件
TTX5EDCrC ok"k*?Ov # vi kernel_wwwx # kernel_wwwx为我的内核文件名
|/|5UiX7 b5dD/-Vj 我的内核文件如下:
7UKh688 KI iO #
6EoMt@7g O-0x8 O^B # GENERIC -- Generic kernel configuration file for FreeBSD/i386
?DS@e@lx r,8 [O #
x/I%2F ~OYiq}g # For more information on this file, please read the handbook section on
Af~$TyX t:x\kp # Kernel Configuration Files:
b;B%q$sntC wtLO!=B #
9IdA%RM~mH \$~|ZwV{ #
http://www.FreeBSD.org/doc/en_US.IS...fig-config.html $t'MSlF !7O+ogL #
T@H^BGs vFzRg5lH # The handbook is also available locally in /usr/share/doc/handbook
^qvZXb 7dTkp!'X- # if you've installed the doc distribution, otherwise always see the
p}z<Fdu0 hn7#
L # FreeBSD World Wide Web server (
http://www.FreeBSD.org/) for the
~f&E7su-6+ ;LKkbT
5 # latest information.
L^/5ux e9Wa<i8 #
hE'-is@7 4$HhP,gL= # An exhaustive list of options and more detailed explanations of the
3)t.p>VgO Fj 8z # device lines is also present in the ./LINT configuration file. If you are
P-9)38`5 q"CVcLi9 # in doubt as to the purpose or necessity of a line, check first in LINT.
\"w"$9o6 T$)^gHS #
r..iko]T jh?H.;** # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.48 2002/08/31 20:28:26 obrien Exp $
Y#ap* :DK {Vg6 8?B!2 .FP$m? machine i386
b"<liGh"n- TM__I\+Q cpu I586_CPU
60^`JVGWH p;`>e>$ cpu I686_CPU
j1Y~_ L Tm2G4+] ident kernel_wwwx #内核文件名,这个要和你的内核文件名一致
R"/GQ`^AqA 5 9
T8r maxusers 0
{Y(zd[ yM6pd U]i Z\bmW%av <yV"6/l0 options INET #InterNETworking
,i^9 |Oeq k$^UUo6 options FFS #Berkeley Fast Filesystem
V@.Ior}w ih-#5M@ options FFS_ROOT #FFS usable as root device [keep this!]
gMi0FO' //up5R_nx options SOFTUPDATES #Enable FFS soft updates support
kYE9M8s; >4x(e\B options UFS_DIRHASH #Improve performance on big directories
{ T/[cu< T=
8 0, options PROCFS #Process filesystem
\i>?q 3,_aAgeE options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
o"s)eh W<h)HhyG options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI
k&M;,e3v6 `z}?"BW| options SYSVSHM #SYSV-style shared memory
yt+L0wzzB (fH#I tf options SYSVMSG #SYSV-style message queues
[~+wk9P 2"v6
>b% options SYSVSEM #SYSV-style semaphores
>>4qJ%bL sU<Wnz\[ options P1003_1B #Posix P1003_1B real-time extensions
}`@vF|2L h6Ub}(Ov options _KPOSIX_PRIORITY_SCHEDULING
:^lI`9'*R LRxZcxmy options ICMP_BANDLIM #Rate limit bad replies
MVpGWTH@F ~p6 V,Q options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
u4cnE" &C5_g$Ma.Z # output. Adds ~128k to driver.
IV~>I-rd +zqn<<9 options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
7uqzm B&M%I:i # output. Adds ~215k to driver.
SBu"3ym $j%'{)gK L]|gZ&^ n1ZbRV device tun 1
(!u~CZ; ^cC,.Fdw options IPFIREWALL #防火墙
^'MT0j 93>jr<A options IPFIREWALL_FORWARD #允许透明代理
*g "Nq+i@ 1/B>XkCJ options IPFIREWALL_VERBOSE #允许防火墙日志
/s&9SYF tn\yI!a options IPFIREWALL_VERBOSE_LIMIT=100 #限制日志
-vo})lO PudS2k_Qv options IPFIREWALL_DEFAULT_TO_ACCEPT #默认允许所有IP包
fCd&D @Rze|
T. options IPDIVERT #启用由ipfw divert使用的转向IP套接字
;J( 8
L V;VHv=9`o 3Y4?CM&0v 94`7a<&ZNL # To make an SMP kernel, the next two are needed
LtF,kAIt7v #FLb*%Nr #options SMP # Symmetric MultiProcessor Kernel
@}u*|P* h%na>G #options APIC_IO # Symmetric (APIC) I/O
tPWLg), c%
-Tem'# jxJ8(sr$ >{n,L6_t device isa
VOsRAn/N IxN9&xa device eisa
XAKs0*J> h]&GLb&<? device pci
hg]]Ok~cAs 3PWL@>zi W&W5lArr #<"~~2? JPI3[.o |)DGkOtd # ATA and ATAPI devices
HXC ;Np ITX a&5D device ata
fSj5ZsO 7vKK%H_P device atadisk # ATA disk drives
F@jZ ho e`_LEv ij`w} V ea2ayT 9Q^r
O26+ 2eS~/Pq5=i # SCSI Controllers #没有SCSI设备不需要这段
=!A_^;NQf %g$o/A$ device ahb # EISA AHA1742 family
^$jb7HMObI {%5eMyF# device ahc # AHA2940 and onboard AIC7xxx devices
?3`UbN: :K,i\ device ahd # AHA39320/29320 and onboard AIC79xx devices
T@B/xAq5! /N10
device amd # AMD 53C974 (Tekram DC-390(T))
k/_ 59@) dh iuI|?@ device isp # Qlogic family
E?f-wQF l}|%5.5- device mpt # LSI-Logic MPT/Fusion
9!\B6=r y4 !X#OOqPr= device ncr # NCR/Symbios Logic
!;v|' I Yx%Hs5}8 device sym # NCR/Symbios Logic (newer chipsets)
a$OE0zn` X=&ET)8-Y options SYM_SETUP_LP_PROBE_MAP=0x40
[=q1T3 {*" |#6- # Allow ncr to attach legacy NCR devices when
^98~U\ar !sP{gi#= # both sym and ncr are configured
wH&!W~M
:6
R\OeH+ `wEb<H
20 h, ^ device adv0 at isa?
'3fu g}{aZ$sta device adw
RWZSQ~ ;7V%#- device bt0 at isa?
L|7R9+ZG c
( C%Hld device aha0 at isa?
Z]Cq3~l I-*S&SiXjI device aic0 at isa?
BhGu!Y6f 6,"Q=9k4[ s~g *@K >+ n5NsmVW \x device ncv # NCR 53C500
hd<c&7|G' g-bK|6?yz device nsp # Workbit Ninja SCSI-3
}B+C~@j j{A y\n ( device stg # TMC 18C30/18C50
"Ac-tzhE DV-d(@`K %s|Ely) }<SQ # SCSI peripherals #没有SCSI设备不需要这段
E6ElNgL cp7=epho device scbus # SCSI bus (required)
n
M*%o- }2.`N%[ device da # Direct Access (disks)
WX?IYQ+ J=I:CD% device sa # Sequential Access (tape etc)
Y"aJur=` Vn}0}Jz device cd # CD
?P`K7 -;m0R device pass # Passthrough device (direct SCSI access)
q,|j]+9q l<LI7Z]A AJ`h9%B BM
.~ 5\ 'Aq{UGN 06Sceq v%z=ysA NP3y+s # atkbdc0 controls both the keyboard and the PS/2 mouse
[EXs [D4SW# device atkbdc0 at isa? port IO_KBD
*C*U5~Zq7: E
KLyma&}Y device atkbd0 at atkbdc? irq 1 flags 0x1
]MitOkX kfY}S DU/] )_S(UVI5 device vga0 at isa?
9IfmW^0 ;))+>%SGCt q ^N7I@Y l4YJ c Yu^4VXp~M% ~Otoqu| # syscons is the default console driver, resembling an SCO console
mnX2a
:KP@RZm device sc0 at isa? flags 0x100
giw &&l=_ hRCJv#]HC 051E6- "_NN3lD)X _9Te!gJ4_# Hd ={CFip # Floating point support - do not disable.
CxW>~O: T_5H&;a device npx0 at nexus? port IO_NPX irq 13
kv{za4,& "e>;'%W vw/J8' uh>; 8 q{LF>Wi G}raA% # Serial (COM) ports
}V`"s^ R.1.)P[ device sio0 at isa? port IO_COM1 flags 0x10 irq 4
,<P
vovg_ 21l;\W :J&oX
<nF^ Ka
V8[|Gn, # 我用的是8139和Dlink DFE-530TX网卡,大家可根据自己的网卡型号保留或删除
#f]SK[nR s-Tv8goNV # 使用公共的MII总线控制器代码的PCI以太网适配器
Moza".fiN H40p86@M # 注意:一定要保留'device miibus'以确保可用
2-EIE4ds 5e^ChK0Q # PCI Ethernet NICs that use the common MII bus controller code.
D'DfJwA v^*K:#<Q! # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
>Abdd <<5(0#y# device miibus # MII bus support
!?h;wR ^k">A:E2 device fxp # Intel EtherExpress PRO/100B (82557, 82558)
ul >3B4 ?1
4{J]H4 device rl # RealTek 8129/8139
K
Z91- n 0L^e device vr # VIA Rhine, Rhine II
S|N_ o =X:Y,? device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
E*K;H8}s )F]]m#` zHRplm+i +\
.Lp 5 # Pseudo devices - the number indicates how many units to allocate.
jm/`iXnMf CkQ3#L <2 pseudo-device loop # Network loopback
_)m]_eS._ 0 /U{p,r6` pseudo-device ether # Ethernet support
K is"L(C yWo; a pseudo-device sl 1 # Kernel SLIP
i<Zc"v; VjZ|$k pseudo-device ppp 1 # Kernel PPP
`b7t4d* Iit;F pseudo-device tun # Packet tunnel.
S_UIO.K . 3T3EX|G pseudo-device pty # Pseudo-ttys (telnet etc)
( ^Nz9{ 5<Nx^D pseudo-device md # Memory "disks"
:*9Wh ;iL#7NG-R pseudo-device gif # IPv6 and IPv4 tunneling
&d^m 1 Fywv pseudo-device faith 1 # IPv6-to-IPv4 relaying (translation)
Hf2_0wA3 RMu~l@ <R=Zs[9M1 >_ T-u<E # The `bpf' pseudo-device enables the Berkeley Packet Filter.
s9DYi~/, g*C7
' # Be aware of the administrative consequences of enabling this!
tl^9WG >!1-lfa8 pseudo-device bpf #Berkeley packet filter
vV-`jsq20H w%jII{@, (完)
A#iV=76_ ]jp6k<KF M!D3 }JRm Y&Z.2