本文假设已经架设好或者新安装了一台FREEBSD系统主机。
  本文中引用了很多FREEBSD官方站数据及网上数据,还有更多的是自己在实际工作中的经验,当然,里面的参数并不一定完全适合您,所以请您在使用时,尽可能根据您的实际需要调整一些参数,使您的SERVER的性能完全的发挥出来。本文只是一个总的线索,只写了实际中的运作情况。
  升级源码树
  安装cvsup
  进入:/usr/ports/net/cvsup
  make clean
  make deinstall
  make install
  make clean
  即可
  升级系统源码树及ports
  更新/usr/share/examples/cvsup目录下stand-cvsup和ports-cvsup文件,并执行cvsup –g –L2 standard-supfile和cvsup –g –L2 ports-cvsup两个文件,升级ports树﹔
  重新编译内核
  优化编译环境
  更新/etc/make.conf文件,做适当的编译优化,我的CPU是Intel的:
  CPUTYPE=i686
  CFLAGS= -O3 -pipe
  COPTFLAGS= -O3 -pipe
  升级操作系统
  进入/usr/src
  执行make world
  整个过程很久,需要2小时左右。
  升级配置文件
  执行mergemaster升级配置文件,在此过程中,需要按i以便系统执行升级﹔
  重新编译内核
  到/sys/i386/conf里面,cp GENERIC onlinecq,再vi onlinecq优化内核,注意加入下面的内容
  #disable ctrl+alt+delete
  options SC_DISABLE_REBOOT
  #quota limit
  options QUOTA
  #ipfw support
  options IPFIREWALL
  options DUMMYNET
  options HZ=3000
  options IPDIVERT
  options IPFIREWALL_VERBOSE
  options IPFIREWALL_VERBOSE_LIMIT=100
  options IPSTEALTH
  options TCP_DROP_SYNFIN
  options IPFIREWALL_DEFAULT_TO_ACCEPT
  options ICMP_BANDLIM
  options ACCEPT_FILTER_DATA
  options ACCEPT_FILTER_HTTP
  #ipfilter support
  #options IPFILTER
  #options IPFILTER_LOG
  #options IPFILTER_DEFAULT_BLOCK
  再执行:
  /usr/sbin/config onlinecq
  cd ../../compile/onlinecq
  make depend
  make
  make install
  重新启动服务器
  到此为止,服务器操作系统及内核升级成功
  reboot
  优化FREEBSD
  检查升级情况
  使用ssh进入系统,使用uname –a 可以查到是否升级成功﹔
  打开防火墙
  更新rc.conf里面的设置,加上:
  #enable_quotas="YES"
  #check_quotas="YES"
  firewall_enable="YES"
  firewall_script="/etc/rc.firewall"
  firewall_type="/etc/ipfw.rules" #create it!
  firewall_quiet="NO"
  firewall_logging_enable="YES"
  log_in_vain="NO"
  tcp_drop_synfin="NO"
  tcp_restrict_rst="YES"
  icmp_drop_redirect="YES"
  优化内核参数
  修改系统内核参数,实现微调:vi /etc/sysctl.conf
  kern.ipc.somaxconn=8192
  kern.ipc.maxsockbuf=2097152
  kern.maxfilesperproc=32768
  kern.maxfiles=65536
  kern.securelevel=-1
  net.inet.tcp.sendspace=65536
  net.inet.tcp.recvspace=32768
  net.inet.udp.maxdgram=57344
  net.inet.icmp.drop_redirect=1
  net.inet.icmp.log_redirect=0
  net.inet.ip.redirect=0
  net.inet6.ip6.redirect=0
  net.inet.icmp.icmplim=100
  net.inet.tcp.always_keepalive=0
  net.inet.tcp.delayed_ack=0
  net.inet.tcp.log_in_vain=0
  net.inet.udp.log_in_vain=0
  net.inet.tcp.blackhole=2
  net.inet.udp.blackhole=1
  net.local.stream.sendspace=65535
  net.local.stream.recvspace=32768
  net.inet.ip.fastforwarding=1
  vfs.vmiodirenable=1
  安装防火墙
  防火墙在上面已经编译入了内核,并且在上面的rc.conf里面已经打开了,所以在此只要设置一下即可!
  允许所有IP通过,免得把自己给挡在外面了。
  ipfw add all from any to any
  其它规则根据实际情况来做,如果您想系统
  每次启动都使用上一次的规则,可以把这些内容加到:
  vi /etc/ipfw.rules
  里面,语法规则同ipfw。
  安装数据库MYSQL
  安装mysql40-server和mysql40-client
  进入/usr/ports/databases/mysql40-server
  执行:
  make clean
  make deinstall
  make WITH_OPENSSL=yes WITH_LinuxTHREADS=yes BUILD_OPTIMIZED=yes install
  或者使用下面可参考的编译参数:BUILD_STATIC=yes
  编译成静态执行版本
  make clean
  更改mysql的root密码:
  mysqladmin –uroot –p password 123456
  生成/etc/my.cnf,使用如下命令:
  vi /etc/my.cnf
  [client]
  #password = your_password
  port = 3306
  socket = /tmp/mysql.sock
  [mysqld]
  skip-innodb
  skip-locking
  skip-networking
  set-variable = port=3306
  set-variable = socket=/tmp/mysql.sock
  set-variable = back_log=50
  set-variable = connect_timeout=3
  set-variable = key_buffer=128M
  set-variable = max_connections=1000
  set-variable = max_allowed_packet=1M
  set-variable = net_buffer_length=8K
  set-variable = wait_timeout=3
  set-variable = read_buffer_size=1M
  set-variable = sort_buffer_size=1M
  set-variable = table_cache=256
  set-variable = myisam_sort_buffer_size=32M
  set-variable = log_slow_queries=/var/log/log_slow_queries.log
  #log-bin
  server-id = 1
  [mysqldump]
  quick
  set-variable = max_allowed_packet=16M
  [mysql]
  no-auto-rehash
  # Remove the next comment character if you are not familiar with SQL
  #safe-updates
  [isamchk]
  set-variable = key_buffer=20M
  set-variable = sort_buffer=20M
  set-variable = read_buffer=2M
  set-variable = write_buffer=2M
  [myisamchk]
  set-variable = key_buffer=20M
  set-variable = sort_buffer=20M
  set-variable = read_buffer=2M
  set-variable = write_buffer=2M
  [mysqlhotcopy]
  interactive-timeout
  安装phpmyadmin
  注意,此步骤需要在apache和php之后再执行
  进入/usr/ports/databases/phpmyadmin
  执行:
  make clean
  make deinstall
  make install
  make clean
  新建立一个system的数据库备用。
  安装FTP服务器
  安装ftp软件(使用pure-ftpd/)
  进入/usr/ports/ftp/pufe-ftpd
  执行:
  make clean
  make deinstall
  make WITH_MYSQL=1 install
  或者使用下面可参考的编译参数:WITH_LANG=simplified-chinese
  使用简体中文语言包
  make clean
  配置pure-ftpd,主要需要做以下的工作:
  cp /usr/local/etc/pure-ftpd.conf.sample /usr/local/etc/pure-ftpd.conf
  cp /usr/local/etc/pureftpd-mysql.conf.sample /usr/local/etc/pureftpd-mysql.conf
  再修改/usr/local/etc/pure-ftpd.conf的如下部份为:
  NoAnonymous yes
  MySQLConfigFile /usr/local/etc/pureftpd-mysql.conf
  再修改/usr/local/etc/pureftpd-mysql.conf的如下部份为您的设定值:
  # Mandatory : user to bind the server as.
  MYSQLUser demo
  # Mandatory : user pass