(一、系统安装)
)~] (& u TK,& <_tT<5'[$u D
(mj7oB 前言
F,dx2ZPIs? 5^lxj~ F V7P&%oz{C au=o6WRa 写本文的初衷主要是记录下我一段时间学习使用FreeBSD建设网站平台的一些经验和体会。因为本人是菜鸟,所以很多地方不够完善。本文权当给初学者提供一个具体可操作的实例。所有操作步骤都是我边做边写。避免出现遗漏或一些不必要的小错误,给初学者带来麻烦。
Hx*;jpy(2 7/f3Z1g 本网站平台建设全过程包括FreeBSD系统的安装,web、ftp、mail、proxy服务器、视频点播服务器等。所有过程都在FreeBSD4.7环境下测试通过。
~ZEmULKkR Q[pV!CH 由于写本文时参考了网上太多前辈和大侠的资料,无法一一列举。还请作者原谅。
/bi[e9R \LppYXz 本连载文章前后关联很紧密,建议初学者一步一步来做。
M)N?qRD }\#Rot>Y 试验环境如下:
TDNQu_E "C SC 硬件环境:普通pc机,双网卡。配制不需要高,主要是稳定,并能适应长时间开机。听前辈介绍AMD k6的cpu运行FreeBSD好像有点问题。不过我没有试验。建议用intel的。
B$!)YD; V'T ,4 软件环境:操作系统:FreeBSD4.7(4.8)
7=WT69,& (>GK\=:< web服务器:Apache 1.3.27+modssl +mod_php4+mod_gzip+mod_fastcgi +mod_perl +mysql3.23
`[)YEgs %i-c0|,T4 ftp服务器:Proftpd1.2.7+proftpd-mod-quotatab-1.2.4+mysql
_m'Fr
7 !~&R"2/ mail服务器: iceblood前辈制作的qmail安装包(经过修改)+vqregister-2.5
.5,(_p^ 4V==7p
x( proxy服务器:使用FreeBSD内置的NAT和PPP拨号+squid
6qaQ[XTxf TAF
PawH 视频点播服务器:Helix Universal Servevr (realserver9.01)
h`k"A7M /[)qEl2]K 网络环境:我用的是adsl动态拨号方式,因为动态ip所存在的一些问题,我把所有的服务都装在一台机器上,且这台机器要直接与外网相连。静态ip更方便一些。(本文两种方式都会讨论)
U($dx.`v# {(wHPzq xp72>*_9& j|%HIF25 第一步:安装系统
U,q\emR 7C ,UDp| 关于安装过程网上有很多文章,这里不作详述。仅提出几点建议供大家参考:
R_7 d@FQ1 vIwCJN1C 1、 采用最小化安装。
:1^R9yWA4 A"D,Kg
S 2、 安装时启用inetd,并在编辑inetd.conf文件时,把带有“ftp”的行前面的“#”号去掉。这样作是为了以后安装软件时可以用ftp上传文件。
b7tOo7a H) [4C:r! 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地址)。以下除系统安装部分,我都是采用终端方式操作。
QxOjOKAG
rKf-+6Na 4、 分区时将/home、/usr和/var划的大一些,因为/usr为程序目录,/var要存放日志,/home是用户主目录,我的用户文件如网页、ftp上传文件等都放在这里。还有最好保留一部分空间留作以后需要的时候用。我的机器上有2块硬盘,一快18.2G SCSI硬盘,一块40G IDE硬盘。我是这样划分的。
yA(K=?sq kO{s^_qR^c 128M /
/)(#{i* ;Tc`}2 20G /home
xs:n\N h{p=WWK 2G /ftp
>ByXB!Wi+ aZ'Lx:)R 256M /tmp
p2udm! )J y+6o{`0 6G /usr
pg%aI, /_Z652@ 5G /var
r*_ZJ*h[ ux3<l +jv^ 其中/ftp是为匿名ftp用户访问专用。剩余空间留作备用。当然如果硬盘空间少的话,做我们的试验也是够用的。
wG<(F}VX .0O2Qqdg 关于安装方面的文章,大家也可以参考delphij写的《FreeBSD服务器的安装与优化》。
http://community.freebsdchina.org/catalog.php?forum=34 一文。
3*)ig@e6
S"$m] 安装完系统后,要重新编译内核。目的是要系统支持Firrwall和提高运行效率。
yH*6@P4:0= Zrr5csE 首先确认系统是否安装了FreeBSD的内核支持。如果是最小安装,则需要运行/stand/sysinstall命令安装内核支持。方法如下:
!M]\I & HnCzbt@ # /stand/sysinstall
m"jV}@agX )
^3avRsC 选Configure—Distributions—src—sys,内核文件将被安装在/usr/src/sys目录中。
p4i]7o@ 16i"Yg!* 注意:这之后的过程在终端上操作要方便许多。SecureCRT支持在终端界面上直接拷贝和粘贴文本内容。
J8)#PY[i4 P7MeX(Tay 转到内核文件目录
V6#K2 s nnbb0J # cd /usr/src/sys/i386/conf
{=-\|(Bx uDSxTz{ 编辑内核文件
wqW0v\ *b}lF4O? # vi kernel_wwwx # kernel_wwwx为我的内核文件名
L^4-5`gj $N=N(^ 我的内核文件如下:
;cz|ss= Ox'/`Mppw #
Ch%m -O!Zxg5x # GENERIC -- Generic kernel configuration file for FreeBSD/i386
y>|{YWbp?
\qR %%S #
ADk8{L{UU H0R&2#YD # For more information on this file, please read the handbook section on
D<X.\})Md
D"ehWLj # Kernel Configuration Files:
Xy &uZ V-r3-b #
e^Ky<*Y z)=+ F] #
http://www.FreeBSD.org/doc/en_US.IS...fig-config.html XNb ZNaAd F.=Bnw/- #
RxN,^!OV h=_0+\% # The handbook is also available locally in /usr/share/doc/handbook
v\"S
Gc ?9=9C"&s # if you've installed the doc distribution, otherwise always see the
Cssl{B ;h" P{fF # FreeBSD World Wide Web server (
http://www.FreeBSD.org/) for the
z.VyRB i0 >ap1"n9k # latest information.
J@ktyd(P Ze3X$%kWi #
WJ9cZL ^3FE\V/=
# An exhaustive list of options and more detailed explanations of the
;/*6U [wB9s{CX # device lines is also present in the ./LINT configuration file. If you are
]UG*r%9 g}U3y' # in doubt as to the purpose or necessity of a line, check first in LINT.
la?Wnw t/PlcV_M" #
$4T2z- p/
>`[I # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.48 2002/08/31 20:28:26 obrien Exp $
$<|lE/_] ?cEskafb> 3#45m+D e=QK}gzX machine i386
uH;-z_Wpn! D'hW| cpu I586_CPU
N#_GJSG_| V)i5=bHC cpu I686_CPU
T}=>C+3r awUx=%ERtA ident kernel_wwwx #内核文件名,这个要和你的内核文件名一致
4~OQhiJ R?EASc!b maxusers 0
}AvcoD/b N9<Ujom h}Wdh1.M3 1uk0d`JL options INET #InterNETworking
3TZ*RPmFRm kY&h~Q options FFS #Berkeley Fast Filesystem
=@5x"MOz Iu35#j options FFS_ROOT #FFS usable as root device [keep this!]
E|$Oha[ )CS.F= options SOFTUPDATES #Enable FFS soft updates support
`K
>?ju" oo$MWN8a>r options UFS_DIRHASH #Improve performance on big directories
o(Cey7 02k4N% options PROCFS #Process filesystem
<(e8sNe |J~eLh[d options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
CCGV~e+ ACK1@eF options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI
}V|{lvt. sW^a`VM options SYSVSHM #SYSV-style shared memory
=_8Tp~j `j9$T:` options SYSVMSG #SYSV-style message queues
m3g2b _; Q9`QL3LQD options SYSVSEM #SYSV-style semaphores
a%Jx
`hx 5Y3i|cj options P1003_1B #Posix P1003_1B real-time extensions
-sMyt HH. 8g>b options _KPOSIX_PRIORITY_SCHEDULING
[!VOw@uz U#o'H @ options ICMP_BANDLIM #Rate limit bad replies
6R29$D|HFO *AIEl"29 options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
!"TZ:"VZU -gz0md|Y # output. Adds ~128k to driver.
KZBrE$@%5 RP`2)/sMT options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
TjBY
4 <[/%{sUNC # output. Adds ~215k to driver.
ozr9>b>M 2`=6 %s
ib0g3p-Lc #9LzY
device tun 1
ksjUr 1o 9><mp]E4 options IPFIREWALL #防火墙
3v!~ cC~cI ehAu^^Q> options IPFIREWALL_FORWARD #允许透明代理
m!OMrZ%)} GW2')}g options IPFIREWALL_VERBOSE #允许防火墙日志
efuK EC?Efc+O options IPFIREWALL_VERBOSE_LIMIT=100 #限制日志
[W,-1.$!dM n|4;Hn1V options IPFIREWALL_DEFAULT_TO_ACCEPT #默认允许所有IP包
K$REZe )DUL)S options IPDIVERT #启用由ipfw divert使用的转向IP套接字
y/@iT8$rp zG
c[Z3N ?&l)W~S 7nHTlI1b # To make an SMP kernel, the next two are needed
g9my=gY 4rU!4l #options SMP # Symmetric MultiProcessor Kernel
G7* h{nE cUDg M #options APIC_IO # Symmetric (APIC) I/O
!@
YXZ - &[z\"T K.SeK3( y^FOsr device isa
_hCJ|Rrln 8Vt4HD 08 device eisa
qSO*$1i 5QWNZJ&}d device pci
,dd WBwMK YbMssd2Yg J%dJw} ev>oC~>s {sC=J hs- fV ZW[9[ # ATA and ATAPI devices
|Zq\GA | D.C!/69 device ata
P?3{z="LzJ ]i8c\UV \ device atadisk # ATA disk drives
xT F=Y_ 04y!\ CM~MoV[k7e LI:Tc7t ur2!#bU9 xKJ>gr"w# # SCSI Controllers #没有SCSI设备不需要这段
@5}gsC S@:B6](D$ device ahb # EISA AHA1742 family
iY.eJlfH KC&`x| device ahc # AHA2940 and onboard AIC7xxx devices
+|C[-W7Sw :J(sXKr[C device ahd # AHA39320/29320 and onboard AIC79xx devices
@PcCiGZ nJVp.*S device amd # AMD 53C974 (Tekram DC-390(T))
{(vOt ' ,{j4 device isp # Qlogic family
)45_]tk> 4-:7.I(hq device mpt # LSI-Logic MPT/Fusion
=p\Xy* ,sb1"^Wc device ncr # NCR/Symbios Logic
~|)
9RUXr> mpef]9 device sym # NCR/Symbios Logic (newer chipsets)
T#iU+)-\% GFR!n1Hv options SYM_SETUP_LP_PROBE_MAP=0x40
u;n(+8sz 1| xN%27> # Allow ncr to attach legacy NCR devices when
|ft:|/^F& p~bkf> # both sym and ncr are configured
3B,QJ& o?!uX|Fy 0MpS4tW0= ~+m,im8} device adv0 at isa?
9 )Yw
: 6D9o08 device adw
E8tD)=1 y-cw~kNPP3 device bt0 at isa?
/{G/|a YhgUCF# device aha0 at isa?
aW@oE
~` 9oq)X[ device aic0 at isa?
V<