FreeBSD 之WEB服务器配置全攻略
FreeBSD 之WEB服务器配置全攻略........................................................................................ 1
前言............................................................................................................................... 2
升级系统源码树及ports.................................................................................................. 2
重新编译内核................................................................................................................. 2
规范操作的途径....................................................................................................... 2
查看/usr/src/UPDATING............................................................................................ 2
优化编译环境.......................................................................................................... 3
升级操作系统.......................................................................................................... 3
打开防火墙[pf]................................................................................................................ 3
优化内核参数.......................................................................................................... 4
设置防火墙.............................................................................................................. 4
安装数据库MYSQL.......................................................................................................... 4
配置mysql............................................................................................................... 4
安装APACHE+PHP........................................................................................................... 5
安装ZendOptimizer......................................................................................................... 6
安装FTP服务器(VSFTP)............................................................................................... 6
配置VSFTP............................................................................................................... 6
安装SubVersion............................................................................................................... 7
结束语............................................................................................................................ 7
FREEBSD 系统是一种非常 UNIX、非常 Free、非常 BSD -- UNIX 的操作系统,因为它过UNIX化,太过专业化了,叫很多新手无从下手学习。
本文的目的是使新手可以根据此文章的步骤和方法,架设一台专业,高效,安全的FREEBSD出来,并且可以立即投入实际运用,故文章中对运用及命令的使用多于理论化的知识点的描述,如果您不明白命令有何作用,建议您查查相关资料。
本文假设已经架设好或者新安装了一台FREEBSD系统主机。
本文中引用了很多FREEBSD官方站数据及网上数据,还有更多的是自己在实际工作中的经验,当然,里面的参数并不一定完全适合您,所以请您在使用时,尽可 能根据您的实际需要调整一些参数,使您的SERVER的性能完全的发挥出来。
本文的所有操作均是试验成功后的结果,但不保证书写及格式上的疏漏,特别地是首字母大小写的问题。
升级系统源码树及ports
更新/usr/share/examples/cvsup目录下stand-cvsup和ports-cvsup文件,并执行cvsup –g –L2 standard-supfile和cvsup –g –L2 ports-cvsup两个文件,升级ports树﹔
重新编译内核
规范操作的途径
[
Mergemaster -p
]
Make buildworld
Make buildkernel
Make installkernel
[//单用户模式
Mergemaster –p
Make installworld
Mergemaster
]
Reboot
查看/usr/src/UPDATING
此文件包含了关于您可能遇到的问题的重要提示信息,或制定了您可能使用到的命令的执行顺序。
优化编译环境
更新/etc/make.conf文件,做适当的编译优化,我的CPU是Intel的:
CPUTYPE=i686
CFLAGS= -O3 –pipe
COPTFLAGS= -O3 -pipe
升级操作系统
进入/usr/src
# make buildworld 【2个小时左右】
修改/usr/src/sys/i386/conf/GENERIC文件
make buildkernel KERNCONF=GENERIC
重启至单用户模式
Fsck –p
Mount –u
Mount -a –t ufs
Swapon –a
Cd /usr/src
Make installkernel KERNCONF=GENERIC
Make installworld
mergemaster
重新启动服务器
到此为止,服务器操作系统及内核升级成功
打开防火墙[pf]
为了启用PF,需要在编译内核的时候增加以下选项:
device pf
device pflog
device pfsync
options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_PRIQ
options ALTQ_NOPCC
更新rc.conf里面的设置,加上:
Pf_enable-“YES”
Pf_rules=”/etc/pf.conf”
Pflog_enable=”YES”
Pflog_logfile=”/var/log/pflog”
Pflog_flags=””
优化内核参数
修改系统内核参数,实现微调:vi /etc/sysctl.conf
net.inet.icmp.icmplim=100
设置防火墙
修改/etc/pf.conf添加规则
安装数据库MYSQL
安装mysql51-client和mysql51-server
进入/usr/ports/databases/mysql51-client
执行:
make install clean
进入/usr/ports/databases/mysql51-server
Make WITH_CHARSET=utf8 WITH_OPENSSL=yes WITH_COLLATION=utf8_unicode_ci WITH_OPTIMIZED=yes
Make install
Make clean
配置mysql
Cd /usr/local/bin
./mysql_install_db –user=mysql [默认情况下使用port安装数据库,系统会自动增加mysql用户和组]
此时/var/db/mysql目录会安装并设置OK
启动mysql:mysqld_safe &
修改root密码:mysqladmin –uroot password ‘yourpass’
Mysql(随系统)自动启动:在/etc/rc.conf中添加一行—mysql_enable=”YES”
默认/etc下没有my.cnf文件,可以在/usr/local/share/mysql/目录下选择适合需求的配置文件拷贝到/etc下并改名为my.cnf
手动启动、停止、重启mysql服务: /usr/local/etc/rc.d/mysql-server start|stop|restart
安装APACHE+PHP
安装apache22
进入/usr/ports/www/apache22
执行:
Make [选择要安装的mod等,在后面的subversion安装中需要有mod_auth*模块,注意添加,特别是mod_authn_file,否则Subversion的AuthUserFile命令会无效]
make install
Make clean
进入/usr/ports/lang/php5
执行:make install clean
进入/usr/ports/lang/php5-extensions
执行:make install clean
【注意】
1、
修改/boot/loader.conf文件,添加:
accf_data_load=”YES”
accf_http_load=”YES”
2、 Apache配置文件中的mod_unique_id模块要求hostname能够解析,因此在/etc/hosts文件中加入主机名的解析
安装完成后,在/usr/local/etc/apache/httpd.conf里面,加入如下内容:
AddType application/x-httpd-php .php .php3 .php4 .phtml
AddType 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
安装ZendOptimizer
Cd /usr/ports/devel/ZendOptimizer
Make install clean
修改/usr/local/etc/php.ini文件,添加以下内容:
[Zend]
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer="/usr/local/lib/php/20060613-debug/Optimizer"
zend_extension_manager.optimizer_ts="/usr/local/lib/php/20060613-debug/Optimizer_TS"
zend_extension="/usr/local/lib/php/20060613-debug/ZendExtensionManager.so"
zend_extension_ts="/usr/local/lib/php/20060613-debug/ZendExtensionManager_TS.so"
以上内容可能不一样,根据安装后的提示添加即可
安装FTP服务器(VSFTP)
进入/usr/ports/ftp/vsftp
执行:
make install clean
配置VSFTP
编辑/usr/local/etc/vsftpd.conf文件,加入以下内容:
Listen=YES
Background=”YES”
编辑/etc/rc.conf文件,加入以下内容:
Vsftpd_enable=”YES”
修改vsftpd.conf文件相应选项来设置VSFTP
安装SubVersion
进入/usr/ports/devel/subversion目录
Make install clean
配置apache支持svn:
导入必要的模块:dav_module、dav_fs_module、dav_svn_module、authz_svn_module
创建站点:
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath /svn (此处配置你的版本库根目录,需要创建此目录)
AuthType Basic
AuthName "Welcome my friend." (此处字符串内容修改为提示对话框标题)
AuthUserFile /svn/AuthUserFile (此处修改为访问版本库用户的文件,用apache 的 htpasswd命令生成)
AuthzSVNAccessFile /svn/AuthAccessFile (此处修改为访问版本库权限的文件)
Require valid-user
</Location>
创建用户文件:
#htpasswd –cm /svn/AuthUserFile wow (第一次添加用户需先创建文件,所以有参数-c)
创建用户访问权限文件:
# vi /subversion/auth
[groups]
Tester=testUser
Developer=wow
[test:/]
@Tester = rw
master = rw
comUser = r
重启apache进行测试(http://domainName/svn/)
结束语
至此为止,一般可以实际运作的FREEBSD系统就建立起来了,您可以重启一下,让最新的设置及软件生效。
如果在安装过程中出现错误,您可以先检查完错误,再接着安装下去。或者你可以选择你感兴趣的某些部份安装!
当然因为时间仓促,涉及到的知识太广,加上本人能力有限,其中错误在所难免,恳请各位读者提出来,大家共同提高,共同进步!