FreeBSD网站平台建设全过程.docx
《FreeBSD网站平台建设全过程.docx》由会员分享,可在线阅读,更多相关《FreeBSD网站平台建设全过程.docx(49页珍藏版)》请在冰豆网上搜索。
![FreeBSD网站平台建设全过程.docx](https://file1.bdocx.com/fileroot1/2023-1/6/3383824f-dfc8-4747-a75e-8fcd15042370/3383824f-dfc8-4747-a75e-8fcd150423701.gif)
FreeBSD网站平台建设全过程
第一步:
安装FreeBSD操作系统
第二步:
接入Internet并配制代理服务
使用ADSL接入Internet有两种情况,通过拨号获取动态ip或服务商直接给定静态ip。
后者配制起来较容易。
本文先讨论动态ip如何设置。
由于第一步重新编译内核时已经加进了对Firewall的支持。
这里就可以通过直接编辑/etc/ppp/ppp.conf文件和/etc/rc.conf文件就可以上网并支持NAT方式透明代理了。
#vi/etc/ppp/ppp.conf
我的ppp.conf文件内容如下:
(注意set前要留空格)
default:
setlogPhasetuncommand
setifaddr10.0.0.1/010.0.0.2/0
adsl:
#配置代号
setdevicePPPoE:
vr0 #vr0改成你连接ADSLmodem的网卡名
setmru1492
setmtu1492
setauthnameusername #username是拨号用户名
setauthkeypassWord #password是拨号密码
setdial
setlogin
adddefaultHISADDR
#vi/etc/rc.conf
我的rc.conf文件内容如下:
(动态ip)
#--sysinstallgenerateddeltas--#TueJul1521:
20:
281997
#Created:
TueJul1521:
20:
281997
#Enablenetworkdaemonsforuserconvenience.
#Pleasemakeallchangestothisfile,notto/etc/defaults/rc.conf.
#Thisfilenowcontainsjusttheoverridesfrom/etc/defaults/rc.conf.
hostname="wwwx.3322.org" #你的主机域名
ifconfig_fxp0="inet192.168.0.1netmask255.255.255.0" #内网网卡ip地址,fxp0是网卡名
inetd_enable="YES" #开机加载inetd
kern_securelevel_enable="NO"
linux_enable="YES"
nfs_reserved_port_only="NO"
sendmail_enable="NO"
sshd_enable="YES"
usbd_enable="NO"
gateway_enable="YES"
firewall_enable="YES" #启用防火墙
firewall_script="/etc/rc.firewall"
firewall_type="open"
firewall_quiet="YES"
firewall_logging_enable="YES"
ppp_enable="YES" #开机自动拨号
ppp_mode="ddial"
ppp_nat="YES" #启用透明代理
ppp_PRofile="adsl" #配置代号
#--sysinstallgenerateddeltas-- #WedJul1606:
52:
131997
这样重新启动后就可以拨号上网并实现透明代理了。
客户端需要设置dns服务器为服务商提供的dns,网关设成代理服务器的内网卡ip地址,这里是192.168.0.1。
并把IE中“internet选项”关于连接设置的所有复选框清除。
如果解析不了域名,检查一下/etc/resolv.conf文件是否加入了正确的dns服务器地址。
--------------------------------------------------------------------------------
如果是静态ip方式,则只需要编辑/etc/rc.conf文件。
我的/etc/rc.conf文件如下:
(静态ip)
#--sysinstallgenerateddeltas--#TueJul1521:
20:
281997
#Created:
TueJul1521:
20:
281997
#Enablenetworkdaemonsforuserconvenience.
#Pleasemakeallchangestothisfile,notto/etc/defaults/rc.conf.
#Thisfilenowcontainsjusttheoverridesfrom/etc/defaults/rc.conf.
hostname="wwwx.3322.org" #主机域名
defaultrouter="218.10.104.1" #服务商提供的路由器地址
ifconfig_vr0="inet218.10.104.188netmask255.255.255.0" #服务商提供的静态ip
ifconfig_fxp0="inet192.168.0.1netmask255.255.255.0" #内部网卡ip
inetd_enable="YES" #开机加载inetd
kern_securelevel_enable="NO"
linux_enable="YES"
nfs_reserved_port_only="NO"
sshd_enable="YES"
sendmail_enable="NO"
usbd_enable="NO"
gateway_enable="YES"
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_type="open"
firewall_quiet="YES"
firewall_logging_enable="YES"
natd_enable="YES" #启用透明代理
natd_interface="vr0" #natd接口,vr0为连接外网modem的网卡
#--sysinstallgenerateddeltas--#WedJul1606:
52:
131997
重起后网络连接及透明代理生效。
客户端同样要按上面说的方法配制。
--------------------------------------------------------------------------------
使用Squid:
Squid是一个非常不错的代理缓存软件。
我曾经一直在使用,后来因为我经常要改变web服务器里的网页,而Squid总是把我以前的页面缓存,致使不能马上反映页面的更新情况,再加上公司上网的负担不是很重。
所以就不用了。
安装方法:
在FreeBSD下安装软件最方便的方法是使用ports。
本文为了让大家对通用的软件安装方法做一定的了解,我们采用通用的方法来安装Squid,也就是说,下面的方法同样适用于Linux或其他Unix版本。
在ylf的用户目录下创建目录app用来存放程序安装临时文件:
#mkdir/home/ylf/app
将用户ylf设为/home/ylf/app目录及其子目录的所有者
#chown–Rylf/home/ylf/app
到http:
//www.squid-cache.org/Versions/v2/2.5/下载Squid的最新稳定版本,现在是squid-2.5.STABLE3
打开IE浏览器,在地址栏输入ftp:
//192.168.0.1,出现ftp登陆对话框,输入用户名ylf及密码,登录成功后。
将下载的squid-2.5.STABLE3复制到app目录中。
执行如下命令:
#cd/home/ylf/app
#tarzxvfsquid-2.5.STABLE3.tar.gz #解压缩安装包
#cdsquid-2.5.STABLE3 #进入解开的目录
#./configure--prefix=/usr/local/squid #配制、将squid安装在/usr/local/squid目录
#makeall #编译
#makeinstall #安装
下面编辑Squid的配置文件:
#cd/usr/local/squid/etc
将原来的配置文件改名:
#mvsquid.confsquid.conf.bak
编辑新的配置文件:
#visquid.conf
我的squid.conf内容如下:
#取消对代理阵列的支持
icp_port0
#对日志文件和pid文件位置进行设置
cache_store_lognone
cache_access_log/usr/local/squid/var/logs/access.log
cache_log/usr/local/squid/var/logs/cache.log
emulate_httpd_logon
pid_filename/usr/local/squid/var/logs/squid.pid
#设置运行时的用户和组权限
cache_effective_usersquid
cache_effective_groupsquid
#设置管理信息
visible_hostnamewwwx.3322.org.
cache_mgryourname@
#设置监听地址和端口
http_port3128
udp_incoming_address0.0.0.0
#设置squid用户hotobject的物理内存的大小以及设置cache目录
cache_mem32MB
cache_dirufs/usr/local/squid/cache102416256
#访问控制设置
aclmynetsrc192.168.0.0/255.255.255.0
aclallsrc0.0.0.0/0.0.0.0
http_accessallowmynet
http_accessdenyall
#透明代理设置
httpd_accel_hostvirtual
httpd_accel_port80
httpd_accel_with_proxyon
httpd_accel_uses_host_headeron
#swap性能微调
half_closed_clientsoff
cache_swap_high100%
cache_swap_low80%
maximum_object_size1024KB
#控制对象的超时时间
refresh_pattern-i.html144090%129600reload-into-ims
refresh_pattern-i.shtml144090%129600reload-into-ims
refresh_pattern-i.hml144090%129600reload-into-ims
refresh_pattern-i.gif144090%129600reload-into-ims
refresh_pattern-i.swf144090%129600reload-into-ims
refresh_pattern-i.jpg144090%129600reload-into-ims
refresh_pattern-i.png144090%129600reload-into-ims
refresh_pattern-i.bmp144090%129600reload-into-ims
refresh_pattern-i.js144090%129600reload-into-ims
需要改的地方是访问控制设置中的子网改成你自己的子网。
其他的地方可根据需要调整。
不改也可。
如果不使用日志,将日志设置部分改成如下句子:
cache_store_lognone
cache_access_log/dev/null
cache_log/dev/null
添加squid系统用户和组:
#pwgroupaddsquid
#pwuseraddsquid-gsquid-s/sbin/nologin
建立cache目录:
#mkdir/usr/local/squid/cache
改变cache目录和logs目录的所有者为squid用户和组:
#chown–Rsquid/usr/local/squid/cache
#chgrp–Rsquid/usr/local/squid/cache
#chown–Rsquid/usr/local/squid/var/logs
#chgrp–Rsquid/usr/local/squid/var/logs
运行squid–z建立cache目录结构:
#/usr/local/squid/sbin/squid–z
测试squid运行情况:
#/usr/local/squid/sbin/squid–NCd1
出现下面显示证明squid安装成功:
2003/06/2118:
01:
09|StartingSquidCacheversion2.5.STABLE3fori386-unknown-freebsd4.7...
2003/06/2118:
01:
09|ProcessID160
2003/06/2118:
01:
09|With957filedescriptorsavailable
2003/06/2118:
01:
09|PerformingDNSTests...
2003/06/2118:
01:
09|SuccessfulDNSnamelookuptests...
2003/06/2118:
01:
09|DNSSocketcreatedat0.0.0.0,port1029,FD4
2003/06/2118:
01:
09|Addingnameserver202.97.224.68from/etc/resolv.conf
2003/06/2118:
01:
09|UnlinkdpipeopenedonFD9
2003/06/2118:
01:
09|SwapmaxSize1048576KB,estimated80659objects
2003/06/2118:
01:
09|Targetnumberofbuckets:
4032
2003/06/2118:
01:
09|Using8192Storebuckets
2003/06/2118:
01:
09|MaxMemsize:
32768KB
2003/06/2118:
01:
09|MaxSwapsize:
1048576KB
2003/06/2118:
01:
09|Storeloggingdisabled
2003/06/2118:
01:
09|Rebuildingstoragein/usr/local/squid/cache(DIRTY)
2003/06/2118:
01:
09|UsingLeastLoadstoredirselection
2003/06/2118:
01:
09|CurrentDirectoryis/usr/local/squid/etc
2003/06/2118:
01:
09|LoadedIcons.
2003/06/2118:
01:
09|AcceptingHTTPconnectionsat0.0.0.0,port3128,FD8.
2003/06/2118:
01:
09|WCCPDisabled.
2003/06/2118:
01:
09|Readytoserverequests.
2003/06/2118:
01:
16|Donescanning/usr/local/squid/cacheswaplog(0entries)
2003/06/2118:
01:
16|Finishedrebuildingstoragefromdisk.
2003/06/2118:
01:
16|0Entriesscanned
2003/06/2118:
01:
16|0Invalidentries.
2003/06/2118:
01:
16|0Withinvalidflags.
2003/06/2118:
01:
16|0Objectsloaded.
2003/06/2118:
01:
16|0Objectsexpired.
2003/06/2118:
01:
16|0Objectscancelled.
2003/06/2118:
01:
16|0DuplicateURLspurged.
2003/06/2118:
01:
16|0Swapfileclashesavoided.
2003/06/2118:
01:
16|Took7.3seconds(0.0objects/sec).
2003/06/2118:
01:
16|BeginningValidationProcedure
2003/06/2118:
01:
16|CompletedValidationProcedure
2003/06/2118:
01:
16|Validated0Entries
2003/06/2118:
01:
16|store_swap_size=0k
2003/06/2118:
01:
17|storeLateRelease:
released0object
否则根据提示检查配制文件。
为了使squid的透明代理起作用,需要设置端口转发。
方法如下:
编辑/etc/rc.firewall文件,添加下面一句:
ipfwadd00500fwd127.0.0.1,3128tcpfrom192.168.0.0/24toany80
下面建立squid的启动脚本squid.sh:
首先建立/usr/local/etc/rc.d目录:
#mkdir/usr/local/etc
#mkdir/usr/local/etc/rc.d
#cd/usr/local/etc/rc.d
#visquid.sh
文件内容如下:
#!
/bin/sh
#if!
PREFIX=$(expr$0:
"\(/.*\)/etc/rc\.d/$(basename$0)\$");then
# echo"$0:
CannotdeterminethePREFIX">&2
# exit1
#fi
case"$1"in
start)
if[-x/usr/local/squid/sbin/squid-a-f/usr/local/squid/etc/squid.conf];then
(cd/usr/local/squid/var/logs;/usr/local/squid/sbin/squid>/dev/null2>&1&);echo-n'squid'
fi
;;
stop)
/usr/local/squid/sbin/squid-kshutdown2>&1
#Uncommentthisifyou'dlikethesystemto(attemptto
#waitfor)squidtoshutdowncleanly
#echo"Sleepingfor45secondstoallowsquidtoshutdown.."
#sleep45
;;
*)
echo"Usage:
`basename$0`{start|stop}">&2
;;
esac
exit0
这样每次启动后,squid就会自动运行。
运行/usr/local/etc/rc.d/squid.shstart启动squid
运行/usr/local/etc/rc.d/squid.shstop停止squid
-第三步:
安装配置web服务器
注意:
在进行这步操作前建议把squid关掉,因为在进行主页更新测试时squid的cache会使更新后的主页不能及时反映出来!
为了不使用squid,除了关掉squid外,还要删除ipfw的透明代理端口转发语句:
#cd/usr/local/etc/rc.d
#./squid.shstop
#mvsquid.shsquid.sh.bak
#ipfwdel500fwd127.0.0.1,3128tcpfrom192.168.0.0/24toany80
本web服务器的其本组成为:
Apache1.3.27
modssl
mod_php4
mod_gzip
mod_fastcgi
mod_perl
MySQL3.23
为了简化安装过程并发挥FreeBSD安装软件的优势,本文后续部分将采用ports安装。
Ports使在FreeBSD下安装各种软件变得很轻松。
首先安装ports:
(如果已经有/usr/ports目录则证明已经安装过了)
#/stand/sysinstall
选Configure—Distributions—ports,ports将被安装在/usr/ports目录中。
下面安装apache1.3.27+modssl:
#cd/usr/ports/www/apache13-modssl
#makeinstall
系统会自动下载安装包并安装完毕。
安装后系统会自动产生启动脚本apache.sh,在/usr/local/etc/rc.d目录中。
可以通过运行apache.shstart|stop来启动或停止apache。
安装mysql3.2