FreeBSD6.1+apache2.2+php5+mysql5.0+phpwind
服务器Xeon2.8/2G/73G*2/ LSI U320-1 RAID1/BMC5721网卡
欢迎大家提意见!
1. 系统安装
最小化模式+man+ports+src-sys+perl5.8
2./etc/rc.conf
sshd_enable="YES"
hostname="bbs"
ifconfig_lnc0="inet 10.91.11.245 netmask 255.255.0.0"
defaultrouter="10.91.255.254"
syslogd_flags="-ss"
3./etc/make.conf
CPUTYPE=nocona
NO_INET6=yes
4.重新编译内核
去掉不必要的驱动,比如USB/SCSI/RAID等,增加几行ipfw等,用SCHED_ULE代替SCHED_4BSD
#不知道打开polling对系统影响如何,暂时没有时间测试
options ACCEPT_FILTER_HTTP
options IPFIREWALL # 将包过滤部分的代码编译进内核
options IPFIREWALL_VERBOSE # 启用通过syslogd记录的日志。如果没有指定这个选项,即使您在过滤规则中指定记录包, 也不会真的记录它们
options IPFIREWALL_VERBOSE_LIMIT=10
5.
/etc/rc.conf
firewall_enable="YES" # 激活firewall防火墙
firewall_script="/etc/rc.firewall" # firewall防火墙的默认脚本
firewall_type="/etc/ipfw.conf" # firewall自定义脚本
firewall_quiet="YES" # 起用脚本时,是否显示规则信息。现在为"NO"假如你的防火墙脚本已经定型,那
么就可以把这里设置成"YES"了。
firewall_logging_enable="YES" # 启用firewall的log记录。
6. /etc/ipfw.conf 这个我也不知道怎么设置最好,大家有什么好的方案请提出来
add 10011 allow tcp from any to me 80 in
add 10021 allow tcp from any to me 22 in
add 19991 check-state
add 19992 allow tcp from me to any out keep-state setup
add 19993 allow tcp from me to any out
add 20000 allow udp from any 53 to me
add 20001 allow udp from me to any 53
我都是设置好了ipfw后,再编译内核重起,这样远程也可以控制
cvsup ports
#pkg_add cvsup-without-gui
#rehash
#cvsup -h cvsup4.cn.freebsd.org -gL 2 /usr/share/example/cvsup/ports-supfile
7.安装mysql5.0
cd/usr/ports/databases/mysql50-server
# make WITH_CHARSET=gbk WITH_XCHARSET=all WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes SKIP_DNS_CHECK=yes WITHOUT_INNODB=yes install clean
# cp /usr/local/share/mysql/my-small.cnf /etc/my.cnf
mysqld中加入bind_address=127.0.0.1
#rehash
#mysql_install_db
#chown –R mysql:mysql /var/db/mysql
#/usr/local/etc/rc.d/mysql-server forcestart
#/usr/local/bin/mysqladmin -u root password 'new-password'
mysql启动没有问题了,在rc.conf中添加mysql_enable="YES"
8.安装apache2.2
cd /usr/ports/www/apache22
#make WITH_MPM=worker WITHOUT_IPV6=yes WITH_THREADS=yes WITHOUT_SSL=yes install clean
不必要的模块都不用选
#rehash
#vi /usr/local/etc/apache22/httpd.conf
增加一行ServerName 10.91.11.245,去掉不必要的一些模块
#vi /usr/local/etc/apache22/extra/httpd-mpm.conf
StartServers 5
MaxClients 5000
MinSpareThreads 75
MaxSpareThreads 300
ThreadsPerChild 50
MaxRequestsPerChild 80000
#apachectl start
apache启动正常
/etc/rc.conf中添加apache22_enable="YES"
9. php5安装(cli/cgi/apache_mod都选上了)
# cd /usr/ports/lang/php5
# make install clean
扩展安装,不必要的就不要选把,节约时间
# cd /usr/ports/lang/php5-extensions
# make install clean
httpd.conf 中加入AddType application/x-httpd-php .php
, DirectoryIndex index.phpindex.html
测试phpinfo正常
10.安装Zend Optimizer
把Zend Optimizer下载到/usr/ports/distfiles
# cd /usr/ports/devel/ZendOptimizer/
make install clean
根据提示把后面的几行加入就可以了,apachectl restart,看看phpinfo页面,Zend Optimizer安装成功
11.下载phpwind(),它里面有详细安装说明,我就不写了
12.sysctl优化
参考man tuning和heiyeluren的文章
net.inet.tcp.sendspace=65536 #www send 缓冲应该比较大,通过流量可以看出主要是发包
net.inet.tcp.recvspace=32768 #www receive缓冲可以小一点
对于udp的我觉得没有必要调整了,其它的基本参考heiyeluren的文章吧(确实不错)。另外安全方面的也可以参考这篇文章,我就不一一详细了