| 关键词: APACHE mod usr local DEFAULT 编译 variable deinstallmake 升级 make |
前言 2升级源码树 3安装cvsup 3升级系统源码树及ports 3重新编译内核 3优化编译环境 3升级操作系统 3升级配置文件 4重新编译内核 4重新启动服务器 5优化FREEBSD 5检查升级情况 5打开防火墙 5优化内核参数 5安装防火墙 6安装数据库MYSQL 7安装mysql40-server和mysql40-client 7安装phpmyadmin 8安装FTP服务器 9安装ftp软件(使用pure-ftpd/) 9安装pureftpd_php_manager 10安装APACHE服务器 11安装apache13-modssl 11安装PHP语言 12安装php 12安装ZendOptimizer 12安装APACHE其它整合软件 13安装mod_bandwidth 13安装mod_fastcgi 14安装mod_gzip 14安装mod_limitipconn 15安装mod_perl 15安装mod_throttle 16安装mod_watch 16安装APACHE第三方软件 17安装限制每个虚拟主机的并发数软件 17安装防止ddos攻击的软件 18其它需要安装的软件﹔ 18安装MRTG 19安装net-snmp 19安装mrtg 19设置虚空间的mrtg和流量分析 19安装BIND 9 20安装bind9 20安装邮件服务器 21安装qmail邮件系统 21安装WEBMIN和USERMIN 21安装webmin 21安装usermin 22结束语 22 欢迎转载﹐本文遵循GNU协议规则﹗ 前言 2升级源码树 3安装cvsup 3升级系统源码树及ports 3重新编译内核 3优化编译环境 3升级操作系统 3升级配置文件 4重新编译内核 4重新启动服务器 5优化FREEBSD 5检查升级情况 5打开防火墙 5优化内核参数 5安装防火墙 6安装数据库MYSQL 7安装mysql40-server和mysql40-client 7安装phpmyadmin 8安装FTP服务器 9安装ftp软件(使用pure-ftpd/) 9安装pureftpd_php_manager 10安装APACHE服务器 11安装apache13-modssl 11安装PHP语言 12安装php 12安装ZendOptimizer 12安装APACHE其它整合软件 13安装mod_bandwidth 13安装mod_fastcgi 14安装mod_gzip 14安装mod_limitipconn 15安装mod_perl 15安装mod_throttle 16安装mod_watch 16安装APACHE第三方软件 17安装限制每个虚拟主机的并发数软件 17安装防止ddos攻击的软件 18其它需要安装的软件﹔ 18安装MRTG 19安装net-snmp 19安装mrtg 19设置虚空间的mrtg和流量分析 19安装BIND 9 20安装bind9 20安装邮件服务器 21安装qmail邮件系统 21安装WEBMIN和USERMIN 21安装webmin 21安装usermin 22结束语 22 前言 FREEBSD系统是一种非常 UNIX、非常 Free、非常 BSD — UNIX 的操作系统,因为它过UNIX化,太过专业化了,教很多新手无从下手学习。我也是从几年前开始学习FREEBSD,并且在王波写的<FREEBSD使用大全>指导下,正式使用FREEBSD的。在这段使用和管理过程中,自己也积累了不少文章和实战经验。为了让更多的朋友喜欢上FREEBSD,喜欢上UNIX,我特地做了几次升级和优化实例,结合自己管理服务器空间的经验写出此文,希望在此抛砖引玉。本文的目的是使新手可以根据此文章的步骤和方法,架设一台专业,高效,安全的FREEBSD出来,并且可以立即投入实际运用,故文章中对运用及命令的使用多于理论化的知识点的描述,如果您不明白命令有何作用,建议您查查相关资料。本文假设已经架设好或者新安装了一台FREEBSD系统主机。本文中引用了很多FREEBSD官方站数据及网上数据,还有更多的是自己在实际工作中的经验,当然,里面的参数并不一定完全适合您,所以请您在使用时,尽可能根据您的实际需要调整一些参数,使您的SERVER的性能完全的发挥出来。本文只是一个总的线索,如果我要拆开来一个一个详细解释,我想会花更多的篇幅来写的,因为我忙着04年1月的自考,只写了实际中的运作情况,请各位朋友见谅。 升级源码树安装cvsup进入:/usr/ports/net/cvsupmake cleanmake deinstallmake installmake 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=i686CFLAGS= -O3 -pipeCOPTFLAGS= -O3 -pipe 升级操作系统进入/usr/src执行make world整个过程很久,需要2小时左右。 升级配置文件执行mergemaster升级配置文件,在此过程中,需要按i以便系统执行升级﹔ 重新编译内核到/sys/i386/conf里面,cp GENERIC onlinecq,再vi onlinecq优化内核,注意加入下面的内容#disable ctrl+alt+deleteoptions SC_DISABLE_REBOOT #quota limitoptions QUOTA #ipfw supportoptions IPFIREWALLoptions DUMMYNEToptions HZ=3000options IPDIVERToptions IPFIREWALL_VERBOSEoptions IPFIREWALL_VERBOSE_LIMIT=100options IPSTEALTHoptions TCP_DROP_SYNFINoptions IPFIREWALL_DEFAULT_TO_ACCEPToptions ICMP_BANDLIM options ACCEPT_FILTER_DATAoptions ACCEPT_FILTER_HTTP #ipfilter support#options IPFILTER#options IPFILTER_LOG#options IPFILTER_DEFAULT_BLOCK 再执行:/usr/sbin/config onlinecqcd ../../compile/onlinecqmake dependmakemake 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.confkern.ipc.somaxconn=8192kern.ipc.maxsockbuf=2097152kern.maxfilesperproc=32768kern.maxfiles=65536kern.securelevel=-1net.inet.tcp.sendspace=65536net.inet.tcp.recvspace=32768net.inet.udp.maxdgram=57344net.inet.icmp.drop_redirect=1net.inet.icmp.log_redirect=0net.inet.ip.redirect=0net.inet6.ip6.redirect=0net.inet.icmp.icmplim=100net.inet.tcp.always_keepalive=0net.inet.tcp.delayed_ack=0net.inet.tcp.log_in_vain=0net.inet.udp.log_in_vain=0net.inet.tcp.blackhole=2net.inet.udp.blackhole=1net.local.stream.sendspace=65535net.local.stream.recvspace=32768net.inet.ip.fastforwarding=1vfs.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 cleanmake deinstallmake 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_passwordport = 3306socket = /tmp/mysql.sock [mysqld]skip-innodbskip-lockingskip-networkingset-variable = port=3306set-variable = socket=/tmp/mysql.sockset-variable = back_log=50set-variable = connect_timeout=3set-variable = key_buffer=128Mset-variable = max_connections=1000set-variable = max_allowed_packet=1Mset-variable = net_buffer_length=8Kset-variable = wait_timeout=3set-variable = read_buffer_size=1Mset-variable = sort_buffer_size=1Mset-variable = table_cache=256set-variable = myisam_sort_buffer_size=32Mset-variable = log_slow_queries=/var/log/log_slow_queries.log#log-binserver-id = 1 [mysqldump]quickset-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=20Mset-variable = sort_buffer=20Mset-variable = read_buffer=2Mset-variable = write_buffer=2M [myisamchk]set-variable = key_buffer=20Mset-variable = sort_buffer=20Mset-variable = read_buffer=2Mset-variable = write_buffer=2M [mysqlhotcopy]interactive-timeout 安装phpmyadmin注意,此步骤需要在apache和php之后再执行进入/usr/ports/databases/phpmyadmin执行:make cleanmake deinstallmake installmake clean 新建立一个system的数据库备用。 安装FTP服务器安装ftp软件(使用pure-ftpd/)进入/usr/ports/ftp/pufe-ftpd执行:make cleanmake deinstallmake 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.confcp /usr/local/etc/pureftpd-mysql.conf.sample /usr/local/etc/pureftpd-mysql.conf 再修改/usr/local/etc/pure-ftpd.conf的如下部份为:NoAnonymous yesMySQLConfigFile /usr/local/etc/pureftpd-mysql.conf 再修改/usr/local/etc/pureftpd-mysql.conf的如下部份为您的设定值:# Mandatory : user to bind the server as.MYSQLUser demo# Mandatory : user password. You must have a password.MYSQLPassword demo# Mandatory : database to open.MYSQLDatabase demo 再进入使用mysql –uroot –p123456 进入mysql的文本方式﹔使用如下命令建立新表:use system;DROP TABLE IF EXISTS users;CREATE TABLE users (User varchar(16) NOT NULL default ‘’,status enum(’0′,’1′) NOT NULL default ‘0′,Password varchar(64) NOT NULL default ‘’,Uid varchar(11) NOT NULL default ‘-1′,Gid varchar(11) NOT NULL default ‘-1′,Dir varchar(128) NOT NULL default ‘’,ULBandwidth smallint(5) NOT NULL default ‘0′,DLBandwidth smallint(5) NOT NULL default ‘0′,comment tinytext NOT NULL,ipaccess varchar(15) NOT NULL default ‘*’,QuotaSize smallint(5) NOT NULL default ‘0′,QuotaFiles int(11) NOT NULL default 0,PRIMARY KEY (User),UNIQUE KEY User (User)) TYPE=MyISAM DEFAULT CHARSET=gbk; 安装pureftpd_php_manager下载pureftpd_php_manager.zip解压并放到指定的目录里面,比如:/usr/local/www/datachmod –R 755 /usr/local/www/data/pureftpd_php_manager 再加入一个普通用户和一个群组,以供ftp使用:pw groupadd ftpuserspw useradd ftpuser –g ftpusers –s /sbin/nologin 记住他们的uid和gid号,备用! 进入并编辑pureftp.config.php文件更改里面的如下行:$PUREFTP_CONFIG_FILE = ‘/usr/local/etc/pureftpd-mysql.conf’;^M $DefaultUser = “ftpuser”; # Default User Logon^M$DefaultPass = “”; # Default User Password^M$DefaultUid = “1002″; # Default User ID ( must be a real user acct )^M$DefaultGid = “1001″; # Default Group ID ( must be a real group acct )^M$DefaultDir = “/home”; # Default User Dir ( use/./ at the end to chroot )^M$DefaultUL = “0″; # Default Upload Throttle ( 0 disables it )^M$DefaultDL = “0″; # Default Download Throttle ( 0 disables it )^M$Defaultip = “*”; # Default IP restrictions ( * = any IP )^M$DefaultQS = “200″; # Default Quota Size ( 0 disables it )^M$Defaultcmt = “”; # Default Comment for user^M^M// UA^M$DefaultQF = “0″; # Default Quota Files ( 0 disabl 安装APACHE服务器安装apache13-modssl进入/usr/ports/www/apache13-modssl执行:make cleanmake deinstallmake WITH_APACHE_SUEXEC=yes APACHE_HARD_SERVER_LIMIT=1024 APACHE_PERF_TUNING=yes install编译时带上suexec和优化。Make clean 取消所有Options里面的Indexes,禁止浏览目录及文件。设置KeepAlive Off安装PHP语言安装php进入/usr/ports/www/mod_php4执行:make cleanmake deinstallmake install编译常用的选项即可,一定记得选择上mysql和gd。Make clean安装完成后,在/usr/local/etc/apache/httpd.conf里面,加入如下内容:AddType application/x-httpd-php .php .php3 .php4 .phtmlAddType application/x-httpd-php-source .phps 替换DirectoryIndex细节为: DirectoryIndex index.html index.htm index.wml index.cgi index.shtml index.jsp index.js index.jp index.php4 index.php3 index.php index.phtml default.htm default.html home.htm 再cp php.ini-recommended /etc/php.ini以及修改php.ini里面的参数vi /etc/php.ini修改下面两处为:register_globals = Onmagic_quotes_gpc = On 安装ZendOptimizer先下载ZendOptimizer-2.1.0b-FreeBSD4.0-i386.tar.gz再执行tar zxvf ZendOptimizer-2.1.0b-FreeBSD4.0-i386.tar.gzcd ZendOptimizer-2.1.0b-FreeBSD4.0-i386sh setup即可完成傻瓜式的安装。注意:此时您的php.ini配置文件,一般会移到/usr/loca/Zend/etc/php.ini并且底部会增加以下几行:[Zend]zend_optimizer.optimization_level=15zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-2.1.0zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-2.1.0zend_extension=/usr/local/Zend/lib/ZendExtensionManager.sozend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so 您可以根据需要,改变15为1023,来提升加速的等级。 安装APACHE其它整合软件安装mod_bandwidth进入/usr/ports/www/mod_bandwidth执行:make cleanmake deinstallmake install编译完成后,一定记得vi /usr/local/etc/apache/httpd.confLoadModule bandwidth_module libexec/apache/mod_bandwidth.soAddModule mod_bandwidth.c make clean 语法及作用:* BandWidthModule该模块的开关,可以对每个Server进行配置 * BandWidthPulse设定计时单位,MS(微秒),建议为:1000000 (1秒) * BandWidth可以针对特定来源的对象控制流,rate以字节为单位,但当rate为0时,为不限制流速。例子: BandWidth ecp.fr 0BandWidth 138.195 0BandWidth all 1024 * LargeFileLimit当传送一个大于等于filesize KB大小的档时,设定一个最大流速(字节/秒),当rate为0的时候,不限速。例子:LargeFileLimit 200 3072LargeFileLimit 1024 2048以上例子设定小于200KB的档将不会被限制流速,大小在200K到1024K之间的档将会被限速3072 B/s,大于1024KB的文件将会被限速2048 B/s. * MinBandWidth设定每个连接传送数据的基本带宽占用,以Byte为单位。默认值:256 B/s。当rate设定为0时,使用默认带宽限制。安装mod_fastcgi进入/usr/ports/www/mod_ fastcgi执行:make cleanmake deinstallmake install编译完成后,一定记得vi /usr/local/etc/apache/httpd.confLoadModule fastcgi_module libexec/apache/mod_fastcgi.soAddModule mod_fastcgi.cAddHandler fastcgi-script fcgi fcgi fpl make clean 安装mod_gzip进入/usr/ports/www/mod_gzip执行:make cleanmake deinstallmake install编译完成后,一定记得vi /usr/local/etc/apache/httpd.confLoadModule gzip_module libexec/apache/mod_gzip.soAddModule mod_gzip.c make clean 安装mod_limitipconn进入/usr/ports/www/mod_limitipconn执行:make cleanmake deinstallmake install编译完成后,一定记得vi /usr/local/etc/apache/httpd.confLoadModule limitipconn_module libexec/apache/mod_limitipconn.soAddModule mod_limitipconn.c make clean 安装mod_perl进入/usr/ports/www/mod_perl执行:make cleanmake deinstallmake install编译完成后,一定记得vi /usr/local/etc/apache/httpd.confLoadModule perl_module libexec/apache/mod_perl.soAddModule mod_perl.c make clean 安装mod_throttle进入/usr/ports/www/mod_throttle执行:make cleanmake deinstallmake install编译完成后,一定记得vi /usr/local/etc/apache/httpd.confLoadModule throttle_module libexec/apache/mod_throttle.soAddModule mod_throttle.c make clean 安装mod_watch进入/usr/ports/www/mod_watch执行:make cleanmake deinstallmake install编译完成后,一定记得vi /usr/local/etc/apache/httpd.confLoadModule watch_module libexec/apache/mod_watch.soAddModule mod_watch.c make clean 安装APACHE第三方软件安装限制每个虚拟主机的并发数软件mod_vhost_limit安装:apxs -c mod_vhost_limit.c -o /path/to/libexec/mod_vhost_limit.so在 httpd.conf 加入:LoadModule vhost_limit_module libexec/mod_vhost_limit.soAddModule mod_vhost_limit.c配置:MaxClients 150ExtendedStatus OnNameVirtualHost * ServerName server1DocumentRoot /some/where/1MaxVhostClients 100 ServerName server2DocumentRoot /some/where/2MaxVhostClients 30 ServerName server3DocumentRoot /some/where/3 其中: server1 被限制为 100 个并发线程数。 server2 被限制为 30 个并发线程数。 server3 没有被限制。 注:需 mod_status 的 ExtendedStatus On 支持!!如超出限制的并发数在客户端就会出现503错误: Service Temporarily UnavailableThe server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.——————————————————————————– Apache/1.3.27 Server at server1 Port 80 在 error_log 中将会有类似以下的错误提示:[Mon Jun 23 15:22:24 2003] [error] client access to server1 deferred, MaxVhostClients 100 exceeded 安装防止ddos攻击的软件dosevasive1.8.tar.gz安装方法: tar zxvf mod_dosevasive.tar.gzcd dosevasive//usr/local/apache/bin/apxs -i -c mod_dosevasive.cvi /usr/local/apache/conf/httpd.conf加入LoadModule dosevasive_module libexec/mod_dosevasive.soAddModule mod_dosevasive.c DOSHashTableSize 3097DOSPageCount 2DOSSiteCount 50DOSPageInterval 1DOSSiteInterval 1DOSBlockingPeriod 10 其它需要安装的软件﹔可选择安装的有:CPU温度监控软件CPU负载监控软件封包流量监控软件…… 安装MRTG安装net-snmp进入/usr/ports/net/net-snmp执行:make cleanmake deinstallmake installmake clean 安装mrtg进入/usr/ports/net/mrtg执行:make cleanmake deinstallmake installmake clean设置虚空间的mrtg和流量分析生成流量控制檔:/usr/local/sbin/apache2mrtg.pl /usr/local/etc/apache/httpd.conf > /usr/local/etc/apache/mod_watch.cfg修改此文件,并且加如下头部信息: WorkDir:/usr/local/www/data/mrtgOptions[_]: growright,bits#Language: gb2312 #Title[^]: Traffic Analysis forPageTop[^]: Traffic Stats for OnlineCQ.COM User#PageTop[$]: Contact QQ: 151482576PageFoot[^]: WWW.OnlineCQ.COM MSN: [email protected] QQ:151482576 保证WorkDir目录可以被浏览器访问,并且目录存在!如果不是,您可以自己修改! 执行一下,看是否正确:/usr/local/sbin/mrtg /usr/local/etc/apache/mod_watch.cfg如果有错误,多执行几次即可! 再将此加入到排程里面,15分钟自动执行一次:vi /etc/crontab*/15 * * * * root /usr/local/bin/mrtg /usr/local/etc/apache/mod_watch.cfg 安装BIND 9安装bind9这是一套域名解析系统,可以让您的SERVER做DNS SERVER,非常不错的!进入/usr/ports/dns/bind9make cleanmake deinstallmake installmake clean然后再记得修改name.conf 等配置文件,具体的内容太复杂,建议看一下其它专门讲授这方面的书籍。 安装邮件服务器安装qmail邮件系统使用iceblood的安装包,傻瓜式的安装就可以了!注意第一次安装时,多看几遍它的说明,不要弄错了!安装完成后,自己再加上qmailadmin,它可以让您在一台主机上面,开多个域名的企业邮局! 安装WEBMIN和USERMIN安装webmin先下载webmin最新版再解压:tar zxvf webmin-1.100.tar.gz进入目录开始安装:cd webmin-1.100sh setup.sh 安装时使用它的默认设置即可,自己要设置好管理员密码,这一定要注意保密!并且请设置为自动启动,以便以后可以通过此来管理。安装完成后,可以通过如下方式访问:http://IP:10000/注意,默认埠是10000 安装usermin先下载usermin最新版再解压:tar zxvf usermin-1.030.tar.gz进入目录开始安装:cd usermin-1.030sh setup.sh 安装时使用它的默认设置即可。安装完成后,可以通过如下方式访问:http://IP:20000/注意,默认埠是20000。Usermin会自动和webmin整合的,使用webmin的管理员密码,并且可以在webmin里面启动它。 结束语至此为止,一般可以实际运作的FREEBSD系统就建立起来了,您可以reboot一下,让最新的设置及软件生效。如果在安装过程中出现错误,您可以先检查完错误,再接着安装下去。或者你可以选择你感兴趣的某些部份安装!当然因为时间仓促,涉及到的知识太广,加上本人能力有限,其中错误在所难免,恳请各位读者提出来,大家共同提高,共同进步! |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|