(一、系统安装)
C8 xZ;V] 0;AA/ ?&63#B,iZ /tf5Bv'< 前言
!O:y@ y}My.c pEIRh1 GS a[
oh 写本文的初衷主要是记录下我一段时间学习使用FreeBSD建设网站平台的一些经验和体会。因为本人是菜鸟,所以很多地方不够完善。本文权当给初学者提供一个具体可操作的实例。所有操作步骤都是我边做边写。避免出现遗漏或一些不必要的小错误,给初学者带来麻烦。
)GM41t1i [BqHx5Xz( 本网站平台建设全过程包括FreeBSD系统的安装,web、ftp、mail、proxy服务器、视频点播服务器等。所有过程都在FreeBSD4.7环境下测试通过。
JNt^ (z r0+6evU2 由于写本文时参考了网上太多前辈和大侠的资料,无法一一列举。还请作者原谅。
6/r)y+H +#lM 本连载文章前后关联很紧密,建议初学者一步一步来做。
^h~x)@= `lO[x.[ 试验环境如下:
kT"Kyd LSGBq 硬件环境:普通pc机,双网卡。配制不需要高,主要是稳定,并能适应长时间开机。听前辈介绍AMD k6的cpu运行FreeBSD好像有点问题。不过我没有试验。建议用intel的。
B&[M7i W;'!gpa 软件环境:操作系统:FreeBSD4.7(4.8)
VcSVu \KQ71yqY web服务器:Apache 1.3.27+modssl +mod_php4+mod_gzip+mod_fastcgi +mod_perl +mysql3.23
+zaA,e?\ ,!Z*5 ftp服务器:Proftpd1.2.7+proftpd-mod-quotatab-1.2.4+mysql
DRp~jW(\y 1DE<rKI mail服务器: iceblood前辈制作的qmail安装包(经过修改)+vqregister-2.5
2.l Z:VLN !Wy6/F@Z proxy服务器:使用FreeBSD内置的NAT和PPP拨号+squid
BGD8w2 f78An 8 视频点播服务器:Helix Universal Servevr (realserver9.01)
Tgm nG/Z PT=2@kH 网络环境:我用的是adsl动态拨号方式,因为动态ip所存在的一些问题,我把所有的服务都装在一台机器上,且这台机器要直接与外网相连。静态ip更方便一些。(本文两种方式都会讨论)
a!<8\vzg si`A:14R ,9}h ES.fOdx 第一步:安装系统
ZniB]k1
-QM:
q 关于安装过程网上有很多文章,这里不作详述。仅提出几点建议供大家参考:
JORGj0v aB{vFTD5 1、 采用最小化安装。
)z73-M V" q Gw -tPD< 2、 安装时启用inetd,并在编辑inetd.conf文件时,把带有“ftp”的行前面的“#”号去掉。这样作是为了以后安装软件时可以用ftp上传文件。
Q<^Tl(`/N? >VP=MbN 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地址)。以下除系统安装部分,我都是采用终端方式操作。
^;Y|3)vvB vY }A 4、 分区时将/home、/usr和/var划的大一些,因为/usr为程序目录,/var要存放日志,/home是用户主目录,我的用户文件如网页、ftp上传文件等都放在这里。还有最好保留一部分空间留作以后需要的时候用。我的机器上有2块硬盘,一快18.2G SCSI硬盘,一块40G IDE硬盘。我是这样划分的。
TZ(cu> G-xDN59K 128M /
P"y`A}Bx / ';0H_ 20G /home
juka0/ pQ=>.JU 2G /ftp
Y;@>b{s 1zm ulj%& 256M /tmp
Pe3@d|-,MU XC0bI,Fu, 6G /usr
'IZI:V" B$ajK`x&I 5G /var
.aAL]-Rj
0-HqPdjR 其中/ftp是为匿名ftp用户访问专用。剩余空间留作备用。当然如果硬盘空间少的话,做我们的试验也是够用的。
-xSA ~]pE'\D7Ad 关于安装方面的文章,大家也可以参考delphij写的《FreeBSD服务器的安装与优化》。
http://community.freebsdchina.org/catalog.php?forum=34 一文。
)uj Ex7&c OGde00 安装完系统后,要重新编译内核。目的是要系统支持Firrwall和提高运行效率。
\r /ya<5 b J=Jg~& 首先确认系统是否安装了FreeBSD的内核支持。如果是最小安装,则需要运行/stand/sysinstall命令安装内核支持。方法如下:
TUV&vz{ ,SynnE68 # /stand/sysinstall
Szq/hv=Q !>{G,\^=pT 选Configure—Distributions—src—sys,内核文件将被安装在/usr/src/sys目录中。
?EJD?,} ??PC
k1X 注意:这之后的过程在终端上操作要方便许多。SecureCRT支持在终端界面上直接拷贝和粘贴文本内容。
dx;Ysn0- o.w\l\ 转到内核文件目录
A?CcHw
rT <j&DK2u=i # cd /usr/src/sys/i386/conf
p2n0Z\2 @hJ%@( 编辑内核文件
';TT4$(m b8V~S'6VqO # vi kernel_wwwx # kernel_wwwx为我的内核文件名
tZ}
v%3 o7J 我的内核文件如下:
U*(izD &u /Nf&A #
1Ty<\bZ= 56+s~hG # GENERIC -- Generic kernel configuration file for FreeBSD/i386
Y?
x, NLUT#!Gr #
P|.] DJ ]w;rfn9D # For more information on this file, please read the handbook section on
-~v|Rt uJFdbBDSh # Kernel Configuration Files:
U7`A497Z yRSTk2N@ #
biSz?DJ> D2](da:]8) #
http://www.FreeBSD.org/doc/en_US.IS...fig-config.html N}pw74=1 [q/Abz'i #
H<v'^*( rqdE6y+^ # The handbook is also available locally in /usr/share/doc/handbook
kSR\RuY* ::ajlRZG # if you've installed the doc distribution, otherwise always see the
.q
`Hjmg< Xe<sJ.&Wf # FreeBSD World Wide Web server (
http://www.FreeBSD.org/) for the
]$Yvj!K*Q Fs{x(_LOr # latest information.
&j4 xgh 9 :uWw8` #
v}1QH \^ZlG. # An exhaustive list of options and more detailed explanations of the
P%{^ i] 1QLbf*zeIW # device lines is also present in the ./LINT configuration file. If you are
|+iws8xK? GliwY_ # in doubt as to the purpose or necessity of a line, check first in LINT.
k.uMp<)D zaah^.MA| #
MYla OT ^Wc@oa` # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.48 2002/08/31 20:28:26 obrien Exp $
0Uo\wyd FrTi+& < AWP"b?^G| ]|MEx{BG- machine i386
.Xce9C0SW ( M7pT cpu I586_CPU
x|mqL-Q f Z @^9PQG$ cpu I686_CPU
J3n-`k8 ]}U*_rM: ident kernel_wwwx #内核文件名,这个要和你的内核文件名一致
JsDpy{q &;D8]7d
maxusers 0
JBJhG<J x7~r,x(xM
c|M6<} 4:|S` jm options INET #InterNETworking
GH+r?2< f>W- options FFS #Berkeley Fast Filesystem
CbwJd5tk ,6om\9.E@ options FFS_ROOT #FFS usable as root device [keep this!]
3wC' r :.$3vaZ@ options SOFTUPDATES #Enable FFS soft updates support
}[4r4 1[ ~g5[$r-u-u options UFS_DIRHASH #Improve performance on big directories
6"~P/\jP F;+|sMrq options PROCFS #Process filesystem
@ Wd9I;hWv *T5!{ options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
w]]8dz UPG9)aF options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI
DP3PYJ%+B \'|>p/5I options SYSVSHM #SYSV-style shared memory
mGJasn i(>4wK!! options SYSVMSG #SYSV-style message queues
;*:Pw?' y#q?A,C@n options SYSVSEM #SYSV-style semaphores
b)=[1g/=L Kjs.L!W options P1003_1B #Posix P1003_1B real-time extensions
MM(xk X4 A<[&F/ options _KPOSIX_PRIORITY_SCHEDULING
q U]gj@R -(f)6a+H options ICMP_BANDLIM #Rate limit bad replies
MP!d4 PX<J&rx options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
a=hxJ1O ~])t 6i # output. Adds ~128k to driver.
@Ub"5Fl4 80Gn%1A9 options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
g7OqX \ gK[YQXfTy # output. Adds ~215k to driver.
px}|Mu7z~ >_|O1H./4 uf&myV7 rEv$+pP device tun 1
Mf&{7% vTlwRG=5 options IPFIREWALL #防火墙
NiU2@zgl [Pq}p0cD options IPFIREWALL_FORWARD #允许透明代理
wtH?
[>S;) o]; [R options IPFIREWALL_VERBOSE #允许防火墙日志
kw"SwdP5 %*`J k#W: options IPFIREWALL_VERBOSE_LIMIT=100 #限制日志
?e,pN,4 "a8j"lPJ options IPFIREWALL_DEFAULT_TO_ACCEPT #默认允许所有IP包
a hR ^ S"OR% options IPDIVERT #启用由ipfw divert使用的转向IP套接字
V3c l~ 3td)'} v?&
-xH-S c@/(B:@ # To make an SMP kernel, the next two are needed
/J:bWr J|w\@inQ #options SMP # Symmetric MultiProcessor Kernel
5A
sP5 x)rM/Kq #options APIC_IO # Symmetric (APIC) I/O
\H=&`? #m{UrTC >i5acuth X&0 uI*r device isa
11<KpxKpk ~:3QBMk:: device eisa
'J6
M*vO Y0_),OaY device pci
}RwSp!}C 0o9 3iu=&
'+$EhFwD }MHCd)78b 21< j\
M =u+d_'P7-R # ATA and ATAPI devices
c2e
tc8 :1iqT)&|8F device ata
+eX@U;J,g p TeOW9 device atadisk # ATA disk drives
Kwg4sr5"D !-,t'GF( v7DE ^Nmg07_R /ig:9R IaT$6\> # SCSI Controllers #没有SCSI设备不需要这段
OnK~3j #3_*]8K.R device ahb # EISA AHA1742 family
XwlbJ=mf aEWWFN device ahc # AHA2940 and onboard AIC7xxx devices
4( 1(e w\DVzeW( device ahd # AHA39320/29320 and onboard AIC79xx devices
SL;9Q[ ~d6DD;`K device amd # AMD 53C974 (Tekram DC-390(T))
"Q?k'^@ l"2OP6d device isp # Qlogic family
`g6h9GC6 Ygl%eP%Z device mpt # LSI-Logic MPT/Fusion
}C#;fp"L opJMS6%r device ncr # NCR/Symbios Logic
bIEhgiH QC X8IIHG device sym # NCR/Symbios Logic (newer chipsets)
cdG|m[ kjtjw1\o options SYM_SETUP_LP_PROBE_MAP=0x40
V2i@.@$j ]@0NO;bK>F # Allow ncr to attach legacy NCR devices when
*
;Cy=J+ ,I_^IitN # both sym and ncr are configured
>B2q+tA ^pe{b9c 9>g, EoxQ
*/ device adv0 at isa?
M>>qn_yq4 gF5a5T, device adw
* C6a?] CBD6b l|A device bt0 at isa?
S -'fS2 y(=#WlK} device aha0 at isa?
_dJ{j nYa*b=[. device aic0 at isa?
T7d9ChU\#. &_gTD ZU9c 5/J SY^dWLf device ncv # NCR 53C500
wlEo"BA
)h8\u_U device nsp # Workbit Ninja SCSI-3
e4z1`YLsG Z t&6Ua[Y} device stg # TMC 18C30/18C50
D.1J_Y=9 8-Hsgf.* \a=D NSFs\a@1 # SCSI peripherals #没有SCSI设备不需要这段
nYt/U\n! QEu=-7@> device scbus # SCSI bus (required)
"n=vN<8(o "/nNM{^ device da # Direct Access (disks)
7zv1wb -#Z
bR device sa # Sequential Access (tape etc)
PGARXw+ W5' 3$,X9 device cd # CD
N?m0USu* WMBm6?54 device pass # Passthrough device (direct SCSI access)
bug
Ot7 D Kw*~0 s9>(Jzcf9 4#'("#R 5&e<#" A;O~#Chvd Cua%1]"4w %c1#lEC2xN # atkbdc0 controls both the keyboard and the PS/2 mouse
C( id=F wfP5@ !I device atkbdc0 at isa? port IO_KBD
j}AFE bLnrbid device atkbd0 at atkbdc? irq 1 flags 0x1
zP;cTF(C hG_?8:W8HT hHPs&EA.p n
8pt\i0 device vga0 at isa?
7'-j%!#w wM_
6{ tWdhDt8$& vw)7 !/# Y=T'WNaL)0 C P3<1~ # syscons is the default console driver, resembling an SCO console
kpI{KISQu ^o !O)D-q device sc0 at isa? flags 0x100
q,2]5' gBf4's 34QfgMyH dk==? iHp\o=# K"V:<a # Floating point support - do not disable.
6st^4S5 =9LC<2 device npx0 at nexus? port IO_NPX irq 13
P=5NKg sgr=w+",Q 2 /y}a#s SxjCwX"> %Z8vdU# l i\H+X # Serial (COM) ports
i%#$* >bUj*#< device sio0 at isa? port IO_COM1 flags 0x10 irq 4
8)VgS&B~ R1-k3;v^ ?R5'#|EyX V5D`eX9 # 我用的是8139和Dlink DFE-530TX网卡,大家可根据自己的网卡型号保留或删除
U4Nh "*7C`y5&P # 使用公共的MII总线控制器代码的PCI以太网适配器
#'hLb r
Db>&s3 # 注意:一定要保留'device miibus'以确保可用
#~Q8M*~@ A7P`lJgv # PCI Ethernet NICs that use the common MII bus controller code.
_B,_4} n$2 RCQ # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
]Fb0Az RH~3M0'0 device miibus # MII bus support
:o"8MZp yW.COWL=) device fxp # Intel EtherExpress PRO/100B (82557, 82558)
^t[HoFRa k*-NsNPw$ device rl # RealTek 8129/8139
!6w{(Rc(C >m_v5K device vr # VIA Rhine, Rhine II
D*vm
cSf tk/`%Q device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
FyG6!t% s%;<O:x8o A6ewdT?>, oJ78jGTnb # Pseudo devices - the number indicates how many units to allocate.
~DLIz g7p! /f1'm@8; pseudo-device loop # Network loopback
3z{S}~ rdj@u47 pseudo-device ether # Ethernet support
1h"_[`L' ][Y^-Ak1 pseudo-device sl 1 # Kernel SLIP
{4ptu~8 W'_/6_c$! pseudo-device ppp 1 # Kernel PPP
fo\\o4Qyh S=gW(c2' pseudo-device tun # Packet tunnel.
~hURs;Sb ]
mj
v;C pseudo-device pty # Pseudo-ttys (telnet etc)
nR8]@c C }sMW3'V pseudo-device md # Memory "disks"
W81o"TR|pt Q:S\0cI0 pseudo-device gif # IPv6 and IPv4 tunneling
~4
FDKUC yBz>0I3 pseudo-device faith 1 # IPv6-to-IPv4 relaying (translation)
]5|z3<K^ ccO
aCr gJ\%>r7h xaXV^ZM3 # The `bpf' pseudo-device enables the Berkeley Packet Filter.
+0pW/4x w)S; J,Hv # Be aware of the administrative consequences of enabling this!
I^fPk 6MrKi|'X@ pseudo-device bpf #Berkeley packet filter
ItK \;
bWh (完)
]+IVSxa!u XUsy.l/ 4/L>&%8V .]Ybp2`"U 我用的是8139网卡和Dlink DFE-530TX网卡,如果你用其他型号的网卡,需要察看当前目录的GENERIC 内核文件,找到描述自己的网卡型号的段并将其添加到新的内核文件里。其他的不改直接拷贝过来就可以用了。
#J+\DhDEPO rrQ0qg 接下来编译安装新内核:
[:i sZG*
nhfwOS # /usr/sbin/config kernel_wwwx #kernel_wwwx为你的内核文件名
^\YQ_/\~L P`sN&Y~m # cd ../../compile/kernel_wwwx
o5#,\Y[ g ?1m ,SK # make depend
",ad7Y7i hCLk#_ # make
DS
1JF DN|vz}s # make install
A;%kl`~iyz eH=c|m]!P 重新启动(reboot)
X'2Gi ,iOZ| bD@@tGr;W >H?uuzi 如果系统升级过源代码树,按下面方法编译内核:
Ao!=um5D J nE<J`Wo$f # cd /usr/src
ZPYH#gC&T g!`BXmW # make kernel KERNCONF=kernel_wwwx #kernel_wwwx为你的内核文件名
nB}e1
/_y (qk5f`O 重新启动
ZX]A )5G j}RM.C\7 ' WnpwY 8AX3C s_G FreeBSD网站平台建设全过程(二、接入Internet并配制代理服务)
lDU#7\5. ypT9 8 qqD0R*(C <