6.0 Release以后,FreeBSD的稳定性和负载都上了一个台阶,特别是ULE内核控制器给SMP带来了新的希望.这里仅仅探讨一下如何配置Discuz最佳运行环境.
1.系统优化,这里我主要说一下内核编译好了.
先更新以源码到最新
cd /usr/share/examples/cvsup
ee standard-supfile
找到 *default host=CHANGE_THIS.FreeBSD.org
改成 *default host=cvsup.FreeBSD.org
ee standard-supfile
找到 *default host=CHANGE_THIS.FreeBSD.org
改成 *default host=cvsup.FreeBSD.org
执行cvsup更新源码和ports
cvsup -g -L 2 ports-supfile
cvsup -g -L 2 standard-supfile
修改内核文件
cd /sys/i386/conf
给内核文件改个名字然后再修改,否则下一次执行cvsup的时候会覆盖默认内核的
cp GENERIC shadow
ee shadow
查找
ident GENERIC
修改成
ident shadow
找到
options SCHED_4BSD
删掉或者注析掉他,然后找到
options SCHED_ULE
去掉前面的#
HT CPU的机器,要再加入一个选项.
options SMP
其他的不再一一说,这里我仅仅列出作为web服务器可以/需要删掉的部分,非web/mysql服务器请勿参照本文优化
cpu I486_CPU
cpu I586_CPU
options INET6
options NFSCLIENT
options NFSSERVER
options NFS_ROOT
options MSDOSFS
options CD9660
device fdc
options SYSVSHM
options SYSVMSG
options SYSVSEM
device cbb
device pccard
device cardbus
device wlan
device an
device awi
device ral
device wi
device wl
device aue
device axe
device cdce
device cue
device kue
device rue
这部分内容的解析大家可以参照官方手册,同时还有很多设备都可以去掉的,大家可以根据手册进行修改,但是如果你不确定,建议你不要删掉任何一个设备.
重新编译源码和内核
cd /usr/src
make buildworld
make buildkernel KERNCONF=shadow
make installkernel KERNCONF=shadow
reboot
重新登陆系统
mergemaster -p
cd /usr/src
make install world
mergemaster
reboot
源码和内核升级完毕
2.配置mysql服务器.
cd /usr/ports/databases/mysql40-server
make clean
make deinstall
make WITH_CHARSET=gb2312 WITH_XCHARSET=all WITH_LINUXTHREADS=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes install clean
rehash
mysql_install_db --user=mysql
mysqladmin –uroot –p password yourpassword
cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf
3.配置web服务器,这个部分我就不再详细说了,一来网上教程太多,二来用户选择不同,可能是apache也可能是ZEUS,下面的php配置是针对zeus的.
4.编译安装php
下载php-4.4.1,解压到一个目录下面
cd php-4.4.1
./configure --enable-fastcgi --enable-force-cgi-redirect --with-zlib --with-mysql=/usr/local --with-xml --with-gd
make
make install
make clean
cp php.ini-recommended /usr/local/lib/php.ini
5.安装ZendOptimizer
tar xvzf ZendOptimizer-2.6.0-freebsd5.4-i386.tar.gz
cd ZendOptimizer-2.6.0-freebsd5.4-i386
./install
一路确认,到Are you use Apache这项选择no.
6.安装eaccelerator
cd /usr/ports/www/eaccelerator
make install clean
mkdir /tmp/eaccelerator
chmod 777 /tmp/eaccelerator
chown nobody:nobody /tmp/eaccelerator
编辑php.ini ,加入eaccelerator支持,注意,在Zend和eaccelerator共存的机器上面,eaccelerator必须设置为zend扩展,并且参数要放在zend的参数前面.
ee /usr/local/lib/php.ini
在[Zend] 后面加入
zend_extension=/usr/local/lib/php/20020429/eaccelerator.so
eaccelerator.shm_size=64
eaccelerator.cache_dir=/tmp/eaccelerator
eaccelerator.enable=1
eaccelerator.optimizer=1
eaccelerator.check_mtime=1
eaccelerator.debug=0
eaccelerator.filter=
eaccelerator.shm_max=0
eaccelerator.shm_ttl=15
eaccelerator.shm_prune_period=15
eaccelerator.shm_only=0
eaccelerator.compress=1
eaccelerator.compress_level=9
eaccelerator.keys=shm_and_disk
eaccelerator.sessions=shm_and_disk
eaccelerator.content=shm_and_disk
同时将
zend_optimizer.optimization_level=15
修改为
zend_optimizer.optimization_level=1023
重启web服务器,祈求上帝保佑吧!