说明:我原来使用win2003系统(PIII-1000+512M SD+40GHDD),现在改用Free BSD 5.4 stable (服务器版)。速度提升了40%!强烈建议自己有服务器的朋友使用BSD 建立自己WEB 系统,除非你需要ASP
本文有详细的安装设置过程,是我个人笔记的保留!按照下面的步骤一定可以实现(即使你不会)。
FreeBSD5.4+APACHE2.0.55+PHP4.4.2+MYSQL4.0.26+PHPMYADMIN2.7+ZEND2.62+eaccelerator(速度提升50%,不得不装)
要玩好freebsd这种unix类操作系统,我觉得首先需要有下面两个基本能力,否则的确会非常艰难。
1. 良好的英文能力。freebsd虽然也有图形界面(GUI),但如果是做服务器,更多是靠命令行(如同msdos)操作,在我这里web server的例子里,几乎是纯命令行作业。所以英文能力是很重要的。
2. unix基础。基本的unix指令要知道,比如 ls、pwd、cp、man、rm、mkdir、rmdir 等。尤其要知道 man 命令的作用。还要知道当屏幕显示过多内容的时候,需要用到scroll lock和more指令。下面简单举例说明几个指令的用法。
ls (列目录,类似于msdos的dir)
ls | more (列目录,使用管道和more命令分屏显示过多的内容)
cp abc abc_bak (文件的拷贝,类似于msdos的copy)
cp -R abc abc_bak(目录的拷贝)
rm -R abc/* (子目录abc下的所有文件及子目录删除,类似于msdos的del,但允许加-R选项针对子目录操作)
man ls (查ls命令的详细说明)
mv abc ../abc_bak (移动并改名abc为父目录下的abc_bak,abc可以为文件也可以为子目录)
3. 有一本freebsd handbook,纸版的当然好,电子版的也不错:
http://www.freebsd.org.cn/snap/doc/zh_CN.GB2312/books/handbook/
1.首先,选择Standard安装,这也是推荐的安装模式。还有一种mini安装,安装出来的系统是最小的,运行效率最高,但是可能你会面临更多的调整。
2.硬盘分区及unix分区配额分配
我作为初学者,选择了standard模式安装,随后进入了FREEBSD的fdisk程序界面,和msdos的fdisk很像,但屏幕下方的提示更多更友好。如果你有两块或更多的硬盘,那么fdisk会先问你需要在那个硬盘上做分区。由于我是做服务器,不存在双系统等问题,所以用上下箭头选择已有的分区并按d键全部删除这些已有的分区使其成为空盘,再按a自动分配为一个大分区,最后按q退出fdisk,就这么简单地分好了一个硬盘的区。
然后sysinstall会提示你的服务器是否需要使用BootMgr,如果你不需要多重引导,那么可以选Standard,我在这个地方选择的是BootMgr——允许多重引导。
随后使用Disklabel创建unix分区并分配分区空间。该画面和fdisk有些类似,你可以用上下方向键选择需要的分区,然后屏幕下方的提示按键并按照自己的要求划分分区。我在这里采用了默认的方法:选a自动划分,选q退出。
特别提示:mysql安装默认会安装到/var分区,如果你不想改变mysql的默认安装,那么你在这里应该把自动划分出来的/var分区调整一下,调整的更大些。/var分区默认只有256M,稍微大的数据库就不够用了。我在下面的mysql安装中没有使用默认的安装分区/var,而是改到了/usr分区,所以我在这里不需要改动任何分区的大小。
下面是我的分区(512M内存,40G硬盘):
/512M
swap 2048M
/var 1024M (mysql 的默认在这里)
/tmp 2048M
/usr 10240M
/home 其他全部(WEB数据就在这里,含FTP用户数据)
3.安装过程的提示选择
分区及配额完成后,随后就会出现软件包选择画面,你可以选择Developer或者是其他什么模式。作为web服务器,我觉得选Developer好些,不过我当时不太明白,什么也没选,直接选了EXIT。其实没选也不要紧,后面还有机会。
随后的画面是提示你从什么介质安装,我们这里当然是自己烧好的ISO光盘了——选CD/DVD,机器都没起来,别的介质其实也选不成。
选了介质之后,画面提示:
User Confirmation Requested
Last Chance! Are you SURE you want to continue the installation?
当你确定后,之前的分区设置即将生效,硬盘中的原有东西将会被删除,并且开始安装初始的内核系统。
初始内核的安装是很快的(10分钟),而且具有多数流行硬件,我用的FB5.4很顺利认出了所有硬件。
随后开始安装后的设置,首先会提问你是否采取PPP/SLIP的模式连通网络,如果不是可以选NO,我是ADSL的DHCP模式上网,所以选NO。如果你是拨号模式,根据提示操作吧。
随后是要求你输入你上网的网卡的TCP/IP设置。如果是DHCP,把网线接好,机器会自动获取设置。如果是静态IP,你可以根据自己的机器情况设置IP、掩码、网关、DNS等。
随后机器会提问以下问题:
是否设置机器为网关GATEWAY——NO(我们是web server,不是网关)
是否设置机器为inetd超级服务器——YES(暂时使用FTP,后来我们可以改用pureftpd)
然后提示编辑:inetd.conf 文件,把第一行#ftp前的#去掉。
是否设置为NFS SERVER/CLIENT——NO(我们不是这个用途)
是否设置为anonymous FTP——NO(我们不需要这种用途)
是否需要设置sshd——YES(我们将通过这种较为安全模式远程控制服务器)
选择时区——按照提示选择即可,会提示你北京时间缩写是"CST"
是否需要LINUX兼容性——YES(或许我会为服务器安装一些LINUX软件,例如CS SERVER )
是否需要设置system console——默认的挺好,刚开始的学的就不必改了。
是否需要配置鼠标——NO(我看不出来作为一个托管在电信的webserver有什么必要配置鼠标)
是否需要添加用户——添加一个吧,根据提示添加即可,用户组写成wheel,以便你可以用这个用户远程登录服务器后su到root进行管理。添加完这个用户之后,会问你要root的密码,输入即可。如果不添加用户,会直接让你设置root的密码。
其实,这些安装后设置,只要英文良好,按照提示做,不会有什么问题的。
安装后,可以进入/stand/sysinstall的configure进行最终的Packages和Distributions选择。
Packages是已经编译好的二进制包,可以直接运行。默认标准安装完之后,作为Web Server,我看了一下也就需要 net下的cvsup(在线升级用)和 archivers 下的unzip(某些zip包可能会用到)这两个包。选中后执行安装,就会把它们装到系统里。
随后进入Distributions 里安装代码。强烈建议各位一定要把 src 代码全部选中(不过至少要选择:src 全部和ports)。好处。另一个就是ports,不用说,也是要全装的。我在这里,就是选择了src和ports。选中后执行安装,就会把它们安装到系统里了。
至此,一个初始的FREEBSD5.4就装完了。虽然看着多,实际上也就30分钟时间。如果你是第一次装FD,这个时候还是不要着急进行后面的操作,可以先看看手册,熟悉熟悉FREEBSD。
下面关于:ADSL 和 源码升级的介绍!
1. 在ee /etc/rc.conf 中加入:
network_interfaces="bge0 lo0" (bge0 是我的1000M卡,如果不知道,请用ifconfig 查看)
gateway_enable="YES"
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="adsl"
2. 在 ee /etc/resolv.conf 中加入:
domain xpdd.net (我的米)
nameserver 202.102.192.68
nameserver 202.102.199.68 (DNS,全国通用)
3.在 ee /etc/ppp/ppp.conf 中的内容替换为:
default:
set log phase tun command (前面有空格)
enable dns(前面有空格)
adsl:
set device PPPoE:bge0(选择网卡)(前面有空格)
set speed sync (前面有空格)
set mru 1492 (前面有空格)
set mtu 1492 (前面有空格)
set dial (前面有空格)
set login (前面有空格)
add default HISADDR (前面有空格)
set authname 帐号 (前面有空格)
set authkey 密码 (前面有空格)
然后启动ADSL :
ppp -background adsl
提示为:
Working in background mode
Using interface: tun0
PPP enabled
表示OK。
用ifconfig 看公网地址:inet 220.179.XX.XX--> 220.179.XXX.XX netmask
这时候: ping www.sohu.com 成功了。
2. 系统安装完后的第一步,是进行CVSUP,立刻同步你的src源代码和ports代码。关于cvsup的详细内容,请看FREEBSD手册的cvsup部分,此处我只介绍在本例中的过程。由于cvsup需要互联网环境,所以需要接好你的网线了。进入下列目录:
#cd /usr/src/share/examples/cvsup
里面是几个cvsup的supfile例子。我们可以直接修改这些例子为我们所用。首先编辑standard-supfile,这个文件是升级内核源代码的例子文件。我个人喜欢用ee编辑文件(因为有使用提示,且使用习惯接近windows下的),输入下面的指令:
#ee standard-supfile (正式版)
#ee stable-supfile (安全稳定版)推荐
能看见里面东西很多,但都不用改,它默认指定是升级所有的系统源代码——这是有好处的。我们只需要修改一个地方,下翻页找到下面这行:
*default host=CHANGE_THIS.FreeBSD.org
改成指定的freebsd官方cvsup服务器即可:
*default host=cvsup.FreeBSD.org
或更快的国内freebsd cvsup服务器:
*default host=cvsup.cn.FreeBSD.org (推荐,速度快)
*default host=cvsup.FreeBSDChina.org
退出并保存,运行下面的指令开始cvsup在线升级代码:
#cvsup standard-supfile (正式版)
#cvsup stable-supfile(安全稳定版)推荐
然后
#cvsup -g -L 2 stable-supfile
系统源代码升级,我的ADSL大概用30分钟左右即可完成。
#cvsup ports-supfile
然后
#cvsup -g -L 2 stable-supfile
这个升级过程大约也要30分钟左右。至此,所有的代码升级完毕。
3. MAKE WORLD和定制内核。
关于MAKE WORLD的详细内容,也应该详细翻阅手册相关部分,下面继续介绍本例中的情况。上面的升级完成后,首先需要重新编译系统(MAKE WORLD)。由于我们的系统是刚装的,干净的,所以没有那么多难题。进入:
#cd /usr/src
#make buildworld 编译
会开始一个30分钟左右的编译过程,如果编译没有什么问题,继续:
#make installworld 安装
即可更新系统为最新版,随后就可以重启机器了。
下来,我们需要定制内核。定制内核的必要性我想就不必我说了,各位也应该好好看看手册相关部分。
具体操作,进入下面的目录:
#cd /usr/src/sys/i386/conf
能看到一个名为GENERIC的文件。把这个文件拷贝一个副本,例如名为dd,这个副本将是你将来内核的配置文件。
#cp GENERIC dd
#ee dd
用ee编辑SAMPLEKERN这个文件,按照上面提到的那个帖子编辑,根据你自己的硬件情况、软件需求编辑,保存后开始编译内核。由于我们CVSUP过了,所以用手册上提到的“新”方法编译。
#cd /usr/src
make buildkernel KERNCONF=dd
这个编译过程大概要20分钟,编译完先不要着急install,先备份一下旧内核,以免有意外。
#cd /boot
#cp -R kernel kernel.old
随后安装内核:
#make installkernel KERNCONF=dd
安装好之后,可以重启了。
我的内核
- #
- # GENERIC -- Generic kernel configuration file for FreeBSD/i386
- #
- # For more information on this file, please read the handbook section on
- # Kernel Configuration Files:
- #
- # http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
- #
- # The handbook is also available locally in /usr/share/doc/handbook
- # if you've installed the doc distribution, otherwise always see the
- # FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
- # latest information.
- #
- # An exhaustive list of options and more detailed explanations of the
- # device lines is also present in the ../../conf/NOTES and NOTES files.
- # If you are in doubt as to the purpose or necessity of a line, check first
- # in NOTES.
- #
- # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.413.2.13 2005/04/02 16:37:58 scottl Exp $
- machine i386
- #cpu I486_CPU
- #cpu I586_CPU
- cpu I686_CPU
- ident dd
- # To statically compile in device wiring instead of /boot/device.hints
- #hints "GENERIC.hints" # Default places to look for devices.
- options SCHED_ULE # 4BSD scheduler
- options INET # InterNETworking
- #options INET6 # IPv6 communications protocols
- options FFS # Berkeley Fast Filesystem
- options SOFTUPDATES # Enable FFS soft updates support
- options UFS_ACL # Support for access control lists
- options UFS_DIRHASH # Improve performance on big directories
- #options MD_ROOT # MD is a potential root device
- #options NFSCLIENT # Network Filesystem Client
- #options NFSSERVER # Network Filesystem Server
- #options NFS_ROOT # NFS usable as /, requires NFSCLIENT
- #options MSDOSFS # MSDOS Filesystem
- #options CD9660 # ISO 9660 Filesystem
- options PROCFS # Process filesystem (requires PSEUDOFS)
- options PSEUDOFS # Pseudo-filesystem framework
- options GEOM_GPT # GUID Partition Tables.
- options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
- options COMPAT_FREEBSD4 # Compatible with FreeBSD4
- options SCSI_DELAY=15000 # Delay (in ms) before probing SCSI
- #options KTRACE # ktrace(1) support
- options SYSVSHM # SYSV-style shared memory
- options SYSVMSG # SYSV-style message queues
- options SYSVSEM # SYSV-style semaphores
- options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
- options KBD_INSTALL_CDEV # install a CDEV entry in /dev
- #options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
- # output. Adds ~128k to driver.
- #options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
- # output. Adds ~215k to driver.
- options ADAPTIVE_GIANT # Giant mutex is adaptive.
- device apic # I/O APIC
- # Bus support. Do not remove isa, even if you have no isa slots
- device isa
- device eisa
- device pci
- # Floppy drives
- #device fdc
- # ATA and ATAPI devices
- device ata
- device atadisk # ATA disk drives
- device ataraid # ATA RAID drives
- device atapicd # ATAPI CDROM drives
- #device atapifd # ATAPI floppy drives
- #device atapist # ATAPI tape drives
- #options ATA_STATIC_ID # Static device numbering
- # SCSI Controllers
- #device ahb # EISA AHA1742 family
- #device ahc # AHA2940 and onboard AIC7xxx devices
- #device ahd # AHA39320/29320 and onboard AIC79xx devices
- #device amd # AMD 53C974 (Tekram DC-390(T))
- #device isp # Qlogic family
- #device mpt # LSI-Logic MPT-Fusion
- #device ncr # NCR/Symbios Logic
- #device sym # NCR/Symbios Logic (newer chipsets + those of `ncr')
- #device trm # Tekram DC395U/UW/F DC315U adapters
- #device adv # Advansys SCSI adapters
- #device adw # Advansys wide SCSI adapters
- #device aha # Adaptec 154x SCSI adapters
- #device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
- #device bt # Buslogic/Mylex MultiMaster SCSI adapters
- #device ncv # NCR 53C500
- #device nsp # Workbit Ninja SCSI-3
- #device stg # TMC 18C30/18C50
- # SCSI peripherals
- #device scbus # SCSI bus (required for SCSI)
- #device ch # SCSI media changers
- #device da # Direct Access (disks)
- #device sa # Sequential Access (tape etc)
- #device cd # CD
- #device pass # Passthrough device (direct SCSI access)
- #device ses # SCSI Environmental Services (and SAF-TE)
- # RAID controllers interfaced to the SCSI subsystem
- #device amr # AMI MegaRAID
- #device arcmsr # Areca SATA II RAID
- #device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
- #device ciss # Compaq Smart RAID 5*
- #device dpt # DPT Smartcache III, IV - See NOTES for options
- #device hptmv # Highpoint RocketRAID 182x
- #device iir # Intel Integrated RAID
- #device ips # IBM (Adaptec) ServeRAID
- #device mly # Mylex AcceleRAID/eXtremeRAID
- #device twa # 3ware 9000 series PATA/SATA RAID
- # RAID controllers
- #device aac # Adaptec FSA RAID
- #device aacp # SCSI passthrough for aac (requires CAM)
- #device ida # Compaq Smart RAID
- #device mlx # Mylex DAC960 family
- #device pst # Promise Supertrak SX6000
- #device twe # 3ware ATA RAID
- # atkbdc0 controls both the keyboard and the PS/2 mouse
- device atkbdc # AT keyboard controller
- device atkbd # AT keyboard
- device psm # PS/2 mouse
- device vga # VGA video card driver
- device splash # Splash screen and screen saver support
- # syscons is the default console driver, resembling an SCO console
- device sc
- # Enable this for the pcvt (VT220 compatible) console driver
- #device vt
- #options XSERVER # support for X server on a vt console
- #options FAT_CURSOR # start with block cursor
- device agp # support several AGP chipsets
- # Floating point support - do not disable.
- device npx
- # Power management support (see NOTES for more options)
- #device apm
- # Add suspend/resume support for the i8254.
- device pmtimer
- # PCCARD (PCMCIA) support
- # PCMCIA and cardbus bridge support
- #device cbb # cardbus (yenta) bridge
- #device pccard # PC Card (16-bit) bus
- #device cardbus # CardBus (32-bit) bus
- # Serial (COM) ports
- device sio # 8250, 16[45]50 based serial ports
- # Parallel port
- device ppc
- device ppbus # Parallel port bus (required)
- device lpt # Printer
- device plip # TCP/IP over parallel
- device ppi # Parallel port interface device
- #device vpo # Requires scbus and da
- # If you've got a "dumb" serial or parallel PCI card that is
- # supported by the puc(4) glue driver, uncomment the following
- # line to enable it (connects to the sio and/or ppc drivers):
- #device puc
- # PCI Ethernet NICs.
- #device de # DEC/Intel DC21x4x (``Tulip'')
- #device em # Intel PRO/1000 adapter Gigabit Ethernet Card
- #device ixgb # Intel PRO/10GbE Ethernet Card
- #device txp # 3Com 3cR990 (``Typhoon'')
- #device vx # 3Com 3c590, 3c595 (``Vortex'')
- # PCI Ethernet NICs that use the common MII bus controller code.
- # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
- device miibus # MII bus support
- #device bfe # Broadcom BCM440x 10/100 Ethernet
- device bge # Broadcom BCM570xx Gigabit Ethernet
- #device dc # DEC/Intel 21143 and various workalikes
- #device fxp # Intel EtherExpress PRO/100B (82557, 82558)
- #device lge # Level 1 LXT1001 gigabit ethernet
- #device nge # NatSemi DP83820 gigabit ethernet
- #device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc')
- #device re # RealTek 8139C+/8169/8169S/8110S
- #device rl # RealTek 8129/8139
- #device sf # Adaptec AIC-6915 (``Starfire'')
- #device sis # Silicon Integrated Systems SiS 900/SiS 7016
- #device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
- #device ste # Sundance ST201 (D-Link DFE-550TX)
- #device ti # Alteon Networks Tigon I/II gigabit Ethernet
- #device tl # Texas Instruments ThunderLAN
- #device tx # SMC EtherPower II (83c170 ``EPIC'')
- #device vge # VIA VT612x gigabit ethernet
- #device vr # VIA Rhine, Rhine II
- #device wb # Winbond W89C840F
- device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
- # ISA Ethernet NICs. pccard NICs included.
- device cs # Crystal Semiconductor CS89x0 NIC
- # 'device ed' requires 'device miibus'
- #device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards
- #device ex # Intel EtherExpress Pro/10 and Pro/10+
- #device ep # Etherlink III based cards
- #device fe # Fujitsu MB8696x based cards
- #device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc.
- #device lnc # NE2100, NE32-VL Lance Ethernet cards
- #device sn # SMC's 9000 series of Ethernet chips
- #device xe # Xircom pccard Ethernet
- # ISA devices that use the old ISA shims
- #device le
- # Wireless NIC cards
- #device wlan # 802.11 support
- #device an # Aironet 4500/4800 802.11 wireless NICs.
- #device awi # BayStack 660 and others
- #device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
- #device wl # Older non 802.11 Wavelan wireless NIC.
- # Pseudo devices.
- device loop # Network loopback
- device mem # Memory and kernel memory devices
- device io # I/O device
- device random # Entropy device
- device ether # Ethernet support
- device sl # Kernel SLIP
- device ppp # Kernel PPP
- device tun # Packet tunnel.
- device pty # Pseudo-ttys (telnet etc)
- device md # Memory "disks"
- device gif # IPv6 and IPv4 tunneling
- device faith # IPv6-to-IPv4 relaying (translation)
- # The `bpf' device enables the Berkeley Packet Filter.
- # Be aware of the administrative consequences of enabling this!
- # Note that 'bpf' is required for DHCP.
- device bpf # Berkeley packet filter
- # USB support
- #device uhci # UHCI PCI->USB interface
- #device ohci # OHCI PCI->USB interface
- #device ehci # EHCI PCI->USB interface (USB 2.0)
- #device usb # USB Bus (required)
- #device udbp # USB Double Bulk Pipe devices
- #device ugen # Generic
- #device uhid # "Human Interface Devices"
- #device ukbd # Keyboard
- #device ulpt # Printer
- #device umass # Disks/Mass storage - Requires scbus and da
- #device ums # Mouse
- #device urio # Diamond Rio 500 MP3 player
- #device uscanner # Scanners
- # USB Ethernet, requires mii
- #device aue # ADMtek USB Ethernet
- #device axe # ASIX Electronics USB Ethernet
- #device cdce # Generic USB over Ethernet
- #device cue # CATC USB Ethernet
- #device kue # Kawasaki LSI USB Ethernet
- #device rue # RealTek RTL8150 USB Ethernet
- # FireWire support
- #device firewire # FireWire bus code
- #device sbp # SCSI over FireWire (Requires scbus and da)
- #device fwe # Ethernet over FireWire (non-standard!)
- # Fw by rendian
复制代码
[ 本帖最后由 rendian 于 2006-2-17 10:07 编辑 ] |