(一、系统安装)
plK=D#) yc*<:(p |</"N-#S CE{z-_{^ 前言
Q4X7Iu: Z)/6??/R L{=l#vu gF3TwAr 写本文的初衷主要是记录下我一段时间学习使用FreeBSD建设网站平台的一些经验和体会。因为本人是菜鸟,所以很多地方不够完善。本文权当给初学者提供一个具体可操作的实例。所有操作步骤都是我边做边写。避免出现遗漏或一些不必要的小错误,给初学者带来麻烦。
!/947Rn NjbwGcH%\ 本网站平台建设全过程包括FreeBSD系统的安装,web、ftp、mail、proxy服务器、视频点播服务器等。所有过程都在FreeBSD4.7环境下测试通过。
hL0]R,t;' $'^&\U~? 由于写本文时参考了网上太多前辈和大侠的资料,无法一一列举。还请作者原谅。
v51EXf [Gh"ojt]w 本连载文章前后关联很紧密,建议初学者一步一步来做。
-n$ewV W}>=JoN^J 试验环境如下:
.8]Y- GJX4KA8J 硬件环境:普通pc机,双网卡。配制不需要高,主要是稳定,并能适应长时间开机。听前辈介绍AMD k6的cpu运行FreeBSD好像有点问题。不过我没有试验。建议用intel的。
Y~az!8j;Z 8zZSp 软件环境:操作系统:FreeBSD4.7(4.8)
fE^uF[-7? s;J\Kc?"| web服务器:Apache 1.3.27+modssl +mod_php4+mod_gzip+mod_fastcgi +mod_perl +mysql3.23
J/t!-! ob'n{T+lZ ftp服务器:Proftpd1.2.7+proftpd-mod-quotatab-1.2.4+mysql
1i
u =Y uArR\k(
mail服务器: iceblood前辈制作的qmail安装包(经过修改)+vqregister-2.5
7IW> >RBF H>.B99vp proxy服务器:使用FreeBSD内置的NAT和PPP拨号+squid
NY@"&p'Q >!}`%pk( 视频点播服务器:Helix Universal Servevr (realserver9.01)
kg3ppt L~dC(J)@ZI 网络环境:我用的是adsl动态拨号方式,因为动态ip所存在的一些问题,我把所有的服务都装在一台机器上,且这台机器要直接与外网相连。静态ip更方便一些。(本文两种方式都会讨论)
azo0{`S? &8sV
o@Pa B;!f<"a8 gLIT;BK 第一步:安装系统
6Nt$ZYS YX*0?S 关于安装过程网上有很多文章,这里不作详述。仅提出几点建议供大家参考:
4\p-TPM Gy!P,a)z 1、 采用最小化安装。
s*Ih_Ag=: iITp**l 2、 安装时启用inetd,并在编辑inetd.conf文件时,把带有“ftp”的行前面的“#”号去掉。这样作是为了以后安装软件时可以用ftp上传文件。
U<47WfcW :Q_x/+- 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地址)。以下除系统安装部分,我都是采用终端方式操作。
)p8I@E M^6$
MMx 4、 分区时将/home、/usr和/var划的大一些,因为/usr为程序目录,/var要存放日志,/home是用户主目录,我的用户文件如网页、ftp上传文件等都放在这里。还有最好保留一部分空间留作以后需要的时候用。我的机器上有2块硬盘,一快18.2G SCSI硬盘,一块40G IDE硬盘。我是这样划分的。
dig~J\ dn,g Z"< 128M /
?z/Vgk+9| K)S;:MLG= 20G /home
EvE,Dm?h 0@)%h&mD 2G /ftp
&[@\ f^~ s
/%:dnij 256M /tmp
gLQ #4H
XoR>H4xh 6G /usr
q* !3C >qR~'$,$ 5G /var
6:?rlh pm USF #u 其中/ftp是为匿名ftp用户访问专用。剩余空间留作备用。当然如果硬盘空间少的话,做我们的试验也是够用的。
:eOR-}p' ;;V\"7q' 关于安装方面的文章,大家也可以参考delphij写的《FreeBSD服务器的安装与优化》。
http://community.freebsdchina.org/catalog.php?forum=34 一文。
f vLC_'M '{f=hE_/ 安装完系统后,要重新编译内核。目的是要系统支持Firrwall和提高运行效率。
NQ9Ojj{# ~]WVG@- 首先确认系统是否安装了FreeBSD的内核支持。如果是最小安装,则需要运行/stand/sysinstall命令安装内核支持。方法如下:
;=jr0\| e }+RB=#~o # /stand/sysinstall
Q_zr\RM> s_eOcm 选Configure—Distributions—src—sys,内核文件将被安装在/usr/src/sys目录中。
=Q(vni83< |dmh 注意:这之后的过程在终端上操作要方便许多。SecureCRT支持在终端界面上直接拷贝和粘贴文本内容。
"Xn%at4 &mE?y% 转到内核文件目录
5Qa
zHlJ ^#e~g/ # cd /usr/src/sys/i386/conf
~`eHHgX S>Z|)I 编辑内核文件
Owf.f;QR eW8[I'v_& # vi kernel_wwwx # kernel_wwwx为我的内核文件名
Qw)9r{f "T6# 我的内核文件如下:
j@1)K3Hga J]pa4C` #
o6}n8U}bk "5!BU& # GENERIC -- Generic kernel configuration file for FreeBSD/i386
7m1KR#j [-w@.^:]X #
xxa} YIe8 3HiFISA* # For more information on this file, please read the handbook section on
.T.5TMiOSq G&9#*<F$c # Kernel Configuration Files:
or_+2aG 6Nh0 #
. (`3JQ2s 9=+-QdX+0] #
http://www.FreeBSD.org/doc/en_US.IS...fig-config.html c-CYdi@ 9dKul,c #
8_we:
9A \pY^^ l* # The handbook is also available locally in /usr/share/doc/handbook
$L}aQlA1JM p25Fn`}H # if you've installed the doc distribution, otherwise always see the
Hs?zq d"THt} # FreeBSD World Wide Web server (
http://www.FreeBSD.org/) for the
N$ alUx* V@ :20m # latest information.
~&VN_;j_ raB+,Oi$G #
/"#4T^7& 2x}6\t # An exhaustive list of options and more detailed explanations of the
SUdm 0y _ PWj(}); # device lines is also present in the ./LINT configuration file. If you are
xtfRrX^ sbsu(Sz+ # in doubt as to the purpose or necessity of a line, check first in LINT.
=@r--E @Hjea1@t #
aXR%;]<Dw WeT* C # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.48 2002/08/31 20:28:26 obrien Exp $
'K@0Wp d@kc[WLD^ sic$uT
<!'M} s machine i386
2(#Ks's? zV.pol cpu I586_CPU
:nGMtF }NmNanW^ cpu I686_CPU
a/:XXy | :@. ; ident kernel_wwwx #内核文件名,这个要和你的内核文件名一致
)ly
^Ox p2pAvlNoF maxusers 0
y{=NP ;4~U,+Av f}fsoDoQ= 4\2V9F{s options INET #InterNETworking
bI
ITPxz %5B%KCCN options FFS #Berkeley Fast Filesystem
8b&uU [ KS<Jv; options FFS_ROOT #FFS usable as root device [keep this!]
#Ob]]!y ecHP
&Z$ options SOFTUPDATES #Enable FFS soft updates support
]n
v( aM?d tJZc/]%`H options UFS_DIRHASH #Improve performance on big directories
>J>V%
7 u?0d[mC options PROCFS #Process filesystem
v[ ,Src M7dU@ Ag options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
M<`|CVl iS: #o> options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI
$:vkX 0!#;j{JQ options SYSVSHM #SYSV-style shared memory
_%pAlo_6 P:!)9/.2 options SYSVMSG #SYSV-style message queues
H~fdbR ygViPz<J options SYSVSEM #SYSV-style semaphores
shFc[A,r} n Wgv~{,x options P1003_1B #Posix P1003_1B real-time extensions
t1i(;|8| XD%wj options _KPOSIX_PRIORITY_SCHEDULING
cyF4iG'M,y =uV,bG5V1 options ICMP_BANDLIM #Rate limit bad replies
2CLB1 v 81rfB5 options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
0i@:KYP +;gsRhWk # output. Adds ~128k to driver.
1y[B[\ AU{:;%.g options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
bLS&H[fK bhg}-dto # output. Adds ~215k to driver.
)"u:ytK{ `deYi 2z b|?;h21rG
(_+;R device tun 1
l5J.A@0 kQIw/@WC options IPFIREWALL #防火墙
|B[eJq aiux^V options IPFIREWALL_FORWARD #允许透明代理
; B$*)X9 t4K56H.L? options IPFIREWALL_VERBOSE #允许防火墙日志
d-$_|G+ <r\I"z$ options IPFIREWALL_VERBOSE_LIMIT=100 #限制日志
Pes =aw MCy~@)-IN options IPFIREWALL_DEFAULT_TO_ACCEPT #默认允许所有IP包
fluGf pj|X]4?wdI options IPDIVERT #启用由ipfw divert使用的转向IP套接字
dWpk=' jD9lz-Y@ Bc
^4 T1 |uUuFm # To make an SMP kernel, the next two are needed
nNR:cGfG Yj8& #options SMP # Symmetric MultiProcessor Kernel
u,9q<&, 0dt"ZSm #options APIC_IO # Symmetric (APIC) I/O
LDQ
e^ NMXM[Ukb
GX38~pq p":zrf'(6 device isa
RVF F6N^ l,y^HTc}7/ device eisa
L@A9{,9Pl vttrKVA device pci
gWu"91Y0> 4#2 ,Y! fM:80bnL+ k3yxx]Rk/ 3o0IjZ=[> q/'MS[C # ATA and ATAPI devices
eH[y[~r d*9j77C ] device ata
m+T2vi viV-e$s`. device atadisk # ATA disk drives
0w}{(P; i'HST|!j .v
l="< Pz
{Ig i
tW~d W-XN4:,qI # SCSI Controllers #没有SCSI设备不需要这段
Y3M','H([ Wa/geQE1< device ahb # EISA AHA1742 family
Y[,U_GX/R ]+,nA R device ahc # AHA2940 and onboard AIC7xxx devices
h7RD`k:mF MM*-i= device ahd # AHA39320/29320 and onboard AIC79xx devices
ee\Gl?VN u[J7Y device amd # AMD 53C974 (Tekram DC-390(T))
6#-Z@fz% 5j1 IH,yW device isp # Qlogic family
%w@ig~vD' auoA device mpt # LSI-Logic MPT/Fusion
KM@`YV_"g 0k7"H]J device ncr # NCR/Symbios Logic
U%Ol^xl )w@y(;WJ device sym # NCR/Symbios Logic (newer chipsets)
U)b&zZc; #PPsRKj3c options SYM_SETUP_LP_PROBE_MAP=0x40
b@F_7P% ]Y$&78u8t # Allow ncr to attach legacy NCR devices when
wEv*1y4 EyPy*_A # both sym and ncr are configured
A7e_w
7?a fl!1AKSn@N =mAGD*NKu GMyoSe%1/ device adv0 at isa?
Y~x`6 Ic_t c device adw
5
u"nxT
)/
n29] device bt0 at isa?
^$6bs64FSm W>VAbm device aha0 at isa?
F^[M ^M"HSewo device aic0 at isa?
=7H.F:BBG (
/
G)"] ~c9vdK
$o{F device ncv # NCR 53C500
i"ck`6v"8 ]Oig..LJ device nsp # Workbit Ninja SCSI-3
EPR(i#xU )moo?Q device stg # TMC 18C30/18C50
m]
EDuW %y! /{49I, lS>=y#i3Xv # SCSI peripherals #没有SCSI设备不需要这段
{Nzmb|& zvWO4\ device scbus # SCSI bus (required)
dawVE
O ]i9H_K device da # Direct Access (disks)
aEV|>K=6Y' q\-xg*' device sa # Sequential Access (tape etc)
g%Th_= qy Z5{*? 2 device cd # CD
I67k M{V }:K\)Pd device pass # Passthrough device (direct SCSI access)
IiYuUN1D ,S7~=S DtI%-I. }UJdE#4 S]Yu6FtWiO H@ 1[SKBl 9F-ViDI. 7"h=MB_ # atkbdc0 controls both the keyboard and the PS/2 mouse
ft*G*.0kO #khyy-B= device atkbdc0 at isa? port IO_KBD
'd~, o[x s\F EA"w/ device atkbd0 at atkbdc? irq 1 flags 0x1
,.1&Ff)S GN}9$: R|cFpRe D0,oml device vga0 at isa?
^D>/wX\u FRs|!\S= >TH-Q[ -wG[>Y ba8-XA_~U KU8Cl>5 # syscons is the default console driver, resembling an SCO console
HfZ (U5~ [hvig$L device sc0 at isa? flags 0x100
1.ugXD 3P<Zzt%e T s\n,Z?m -jklH/gF\% q]wn:%rX ! X#3w-K # Floating point support - do not disable.
ijR*5#5h XO8 H] device npx0 at nexus? port IO_NPX irq 13
x u\/]f) cZ7F1H~
4 I]/ ~
33@H *N&^bF"SF q>Ar.5&M_ # Serial (COM) ports
r4z}yt+ X/?h!Y} device sio0 at isa? port IO_COM1 flags 0x10 irq 4
R'$ T6FB5 ^LQ lfd nd*!`P NnSI)*%' # 我用的是8139和Dlink DFE-530TX网卡,大家可根据自己的网卡型号保留或删除
G~mB=] rg]A_(3Bb # 使用公共的MII总线控制器代码的PCI以太网适配器
^ZViQ$a"h; Q Kuc21 # 注意:一定要保留'device miibus'以确保可用
ybuSqFy`$ Dv\:b* # PCI Ethernet NICs that use the common MII bus controller code.
(B?xq1Q +T8XX@# # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
hdNZ":1s @bVh?T0~F, device miibus # MII bus support
@"#gO:|[i0 %lq7; emtp device fxp # Intel EtherExpress PRO/100B (82557, 82558)
.ubbNp_LU 5eZg+ O device rl # RealTek 8129/8139
2>_LX!kyP] ',xsUgk device vr # VIA Rhine, Rhine II
myo~Qqt? cDh4@V device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
:."n@sA@ N*4IxY'vX/ =S7C(;=4 i|! 9o: # Pseudo devices - the number indicates how many units to allocate.
7^Q$pT> +^% &8< pseudo-device loop # Network loopback
_ZE$\5>- :?of./Df| pseudo-device ether # Ethernet support
Ss#{K; ]NhWhJ: pseudo-device sl 1 # Kernel SLIP
\crb&EgID UBk
5O& pseudo-device ppp 1 # Kernel PPP
Y_iF$m/R d'@H@ pseudo-device tun # Packet tunnel.
6"c!tJc7j K&~#@I; pseudo-device pty # Pseudo-ttys (telnet etc)
=.2cZwxX$ #z54/T pseudo-device md # Memory "disks"
t6>Qe LYo7?rp pseudo-device gif # IPv6 and IPv4 tunneling
.Y Frb+6 ,%DAh pseudo-device faith 1 # IPv6-to-IPv4 relaying (translation)
~$&r(9P B
qiq G&@RLht eOnl
sx/ # The `bpf' pseudo-device enables the Berkeley Packet Filter.
xg%]\# OG$iZiuf # Be aware of the administrative consequences of enabling this!
f(ec/0W 4Fc1' pseudo-device bpf #Berkeley packet filter
2o7C2)YT$ f$*9J (完)
s*U&