FreeBSD网站平台建设全过程.doc_第1页
FreeBSD网站平台建设全过程.doc_第2页
FreeBSD网站平台建设全过程.doc_第3页
FreeBSD网站平台建设全过程.doc_第4页
FreeBSD网站平台建设全过程.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一步:安装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: set log Phase tun command set ifaddr /0 /0adsl: # 配置代号 set device PPPoE:vr0 # vr0 改成你连接ADSL modem的网卡名 set mru 1492 set mtu 1492 set authname username# username是拨号用户名 set authkey passWord # password是拨号密码 set dial set login add default HISADDR # vi /etc/rc.conf 我的rc.conf文件内容如下:(动态ip)# - sysinstall generated deltas - # Tue Jul 15 21:20:28 1997# Created: Tue Jul 15 21:20:28 1997# Enable network daemons for user convenience.# Please make all changes to this file, not to /etc/defaults/rc.conf.# This file now contains just the overrides from /etc/defaults/rc.conf.hostname= # 你的主机域名ifconfig_fxp0=inet netmask #内网网卡ip地址,fxp0是网卡名inetd_enable=YES # 开机加载inetdkern_securelevel_enable=NOlinux_enable=YESnfs_reserved_port_only=NOsendmail_enable=NOsshd_enable=YESusbd_enable=NOgateway_enable=YESfirewall_enable=YES#启用防火墙firewall_script=/etc/rc.firewallfirewall_type=openfirewall_quiet=YESfirewall_logging_enable=YESppp_enable=YES # 开机自动拨号ppp_mode=ddialppp_nat=YES# 启用透明代理ppp_PRofile=adsl # 配置代号# - sysinstall generated deltas -# Wed Jul 16 06:52:13 1997 这样重新启动后就可以拨号上网并实现透明代理了。客户端需要设置dns服务器为服务商提供的dns,网关设成代理服务器的内网卡ip地址,这里是。并把IE中“internet选项”关于连接设置的所有复选框清除。如果解析不了域名,检查一下/etc/resolv.conf文件是否加入了正确的dns服务器地址。-如果是静态ip方式,则只需要编辑/etc/rc.conf文件。我的/etc/rc.conf文件如下:(静态ip)# - sysinstall generated deltas - # Tue Jul 15 21:20:28 1997# Created: Tue Jul 15 21:20:28 1997# Enable network daemons for user convenience.# Please make all changes to this file, not to /etc/defaults/rc.conf.# This file now contains just the overrides from /etc/defaults/rc.conf.hostname= #主机域名defaultrouter= #服务商提供的路由器地址ifconfig_vr0=inet 88 netmask #服务商提供的静态ipifconfig_fxp0=inet netmask #内部网卡ipinetd_enable=YES #开机加载inetdkern_securelevel_enable=NOlinux_enable=YESnfs_reserved_port_only=NOsshd_enable=YESsendmail_enable=NOusbd_enable=NOgateway_enable=YESfirewall_enable=YESfirewall_script=/etc/rc.firewallfirewall_type=openfirewall_quiet=YESfirewall_logging_enable=YESnatd_enable=YES# 启用透明代理natd_interface=vr0 # natd接口,vr0为连接外网modem的网卡# - sysinstall generated deltas - # Wed Jul 16 06:52:13 1997 重起后网络连接及透明代理生效。客户端同样要按上面说的方法配制。 -使用Squid:Squid是一个非常不错的代理缓存软件。我曾经一直在使用,后来因为我经常要改变web服务器里的网页,而Squid总是把我以前的页面缓存,致使不能马上反映页面的更新情况,再加上公司上网的负担不是很重。所以就不用了。安装方法:在FreeBSD下安装软件最方便的方法是使用ports。本文为了让大家对通用的软件安装方法做一定的了解,我们采用通用的方法来安装Squid,也就是说,下面的方法同样适用于Linux或其他Unix版本。在ylf的用户目录下创建目录app用来存放程序安装临时文件:# mkdir /home/ylf/app 将用户ylf设为/home/ylf/app目录及其子目录的所有者# chown R ylf /home/ylf/app 到 /Versions/v2/2.5/ 下载Squid 的最新稳定版本,现在是squid-2.5.STABLE3打开IE浏览器,在地址栏输入 ,出现ftp登陆对话框,输入用户名ylf及密码,登录成功后。将下载的squid-2.5.STABLE3复制到app目录中。执行如下命令:# cd /home/ylf/app# tar zxvf squid-2.5.STABLE3.tar.gz #解压缩安装包# cd squid-2.5.STABLE3 #进入解开的目录# ./configure -prefix=/usr/local/squid #配制、将squid安装在/usr/local/squid目录# make all#编译# make install#安装 下面编辑Squid的配置文件:# cd /usr/local/squid/etc 将原来的配置文件改名:# mv squid.conf squid.conf.bak 编辑新的配置文件:# vi squid.conf 我的squid.conf内容如下:#取消对代理阵列的支持icp_port 0 #对日志文件和pid文件位置进行设置cache_store_log none cache_access_log /usr/local/squid/var/logs/access.logcache_log /usr/local/squid/var/logs/cache.logemulate_httpd_log onpid_filename /usr/local/squid/var/logs/squid.pid #设置运行时的用户和组权限cache_effective_user squidcache_effective_group squid#设置管理信息visible_hostname .cache_mgr #设置监听地址和端口http_port 3128udp_incoming_address #设置squid用户hot object的物理内存的大小以及设置cache目录cache_mem 32 MBcache_dir ufs /usr/local/squid/cache 1024 16 256#访问控制设置acl mynet src /acl all src /http_access allow mynethttp_access deny all#透明代理设置httpd_accel_host virtualhttpd_accel_port 80httpd_accel_with_proxy onhttpd_accel_uses_host_header on#swap 性能微调half_closed_clients offcache_swap_high 100%cache_swap_low 80%maximum_object_size 1024 KB#控制对象的超时时间refresh_pattern -i .html 1440 90% 129600 reload-into-imsrefresh_pattern -i .shtml 1440 90% 129600 reload-into-imsrefresh_pattern -i .hml 1440 90% 129600 reload-into-imsrefresh_pattern -i .gif 1440 90% 129600 reload-into-imsrefresh_pattern -i .swf 1440 90% 129600 reload-into-imsrefresh_pattern -i .jpg 1440 90% 129600 reload-into-imsrefresh_pattern -i .png 1440 90% 129600 reload-into-imsrefresh_pattern -i .bmp 1440 90% 129600 reload-into-imsrefresh_pattern -i .js 1440 90% 129600 reload-into-ims 需要改的地方是访问控制设置中的子网改成你自己的子网。其他的地方可根据需要调整。不改也可。如果不使用日志,将日志设置部分改成如下句子:cache_store_log nonecache_access_log /dev/nullcache_log /dev/null 添加squid系统用户和组:# pw groupadd squid# pw useradd squid -g squid -s /sbin/nologin 建立cache目录:# mkdir /usr/local/squid/cache 改变cache目录和logs目录的所有者为squid用户和组:# chown R squid /usr/local/squid/cache# chgrp R squid /usr/local/squid/cache# chown R squid /usr/local/squid/var/logs# chgrp R squid /usr/local/squid/var/logs 运行squid z建立cache目录结构:# /usr/local/squid/sbin/squid z 测试squid运行情况:# /usr/local/squid/sbin/squid NCd1 出现下面显示证明squid安装成功:2003/06/21 18:01:09| Starting Squid Cache version 2.5.STABLE3 for i386-unknown-freebsd4.7.2003/06/21 18:01:09| Process ID 1602003/06/21 18:01:09| With 957 file descriptors available2003/06/21 18:01:09| Performing DNS Tests.2003/06/21 18:01:09| Successful DNS name lookup tests.2003/06/21 18:01:09| DNS Socket created at , port 1029, FD 42003/06/21 18:01:09| Adding nameserver 8 from /etc/resolv.conf2003/06/21 18:01:09| Unlinkd pipe opened on FD 92003/06/21 18:01:09| Swap maxSize 1048576 KB, estimated 80659 objects2003/06/21 18:01:09| Target number of buckets: 40322003/06/21 18:01:09| Using 8192 Store buckets2003/06/21 18:01:09| Max Mem size: 32768 KB2003/06/21 18:01:09| Max Swap size: 1048576 KB2003/06/21 18:01:09| Store logging disabled2003/06/21 18:01:09| Rebuilding storage in /usr/local/squid/cache (DIRTY)2003/06/21 18:01:09| Using Least Load store dir selection2003/06/21 18:01:09| Current Directory is /usr/local/squid/etc2003/06/21 18:01:09| Loaded Icons.2003/06/21 18:01:09| Accepting HTTP connections at , port 3128, FD 8.2003/06/21 18:01:09| WCCP Disabled.2003/06/21 18:01:09| Ready to serve requests.2003/06/21 18:01:16| Done scanning /usr/local/squid/cache swaplog (0 entries)2003/06/21 18:01:16| Finished rebuilding storage from disk.2003/06/21 18:01:16| 0 Entries scanned2003/06/21 18:01:16| 0 Invalid entries.2003/06/21 18:01:16| 0 With invalid flags.2003/06/21 18:01:16| 0 Objects loaded.2003/06/21 18:01:16| 0 Objects expired.2003/06/21 18:01:16| 0 Objects cancelled.2003/06/21 18:01:16| 0 Duplicate URLs purged.2003/06/21 18:01:16| 0 Swapfile clashes avoided.2003/06/21 18:01:16| Took 7.3 seconds ( 0.0 objects/sec).2003/06/21 18:01:16| Beginning Validation Procedure2003/06/21 18:01:16| Completed Validation Procedure2003/06/21 18:01:16| Validated 0 Entries2003/06/21 18:01:16| store_swap_size = 0k2003/06/21 18:01:17| storeLateRelease: released 0 object 否则根据提示检查配制文件。为了使squid的透明代理起作用,需要设置端口转发。方法如下:编辑/etc/rc.firewall文件,添加下面一句:ipfw add 00500 fwd ,3128 tcp from /24 to any 80 下面建立squid的启动脚本squid.sh:首先建立/usr/local/etc/rc.d目录:# mkdir /usr/local/etc# mkdir /usr/local/etc/rc.d# cd /usr/local/etc/rc.d# vi squid.sh 文件内容如下:#!/bin/sh# if ! PREFIX=$(expr $0 : (/.*)/etc/rc.d/$(basename $0)$); then# echo $0: Cannot determine the PREFIX &2# exit 1# ficase $1 instart)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/null 2&1 &) ; echo -n squidfi;stop)/usr/local/squid/sbin/squid -k shutdown 2&1# Uncomment this if youd like the system to (attempt to# wait for) squid to shut down cleanly#echo Sleeping for 45 seconds to allow squid to shutdown.#sleep 45;*)echo Usage: basename $0 start|stop &2;esacexit 0 这样每次启动后,squid就会自动运行。运行/usr/local/etc/rc.d/squid.sh start 启动squid运行/usr/local/etc/rc.d/squid.sh stop 停止squid-第三步:安装配置web服务器注意:在进行这步操作前建议把squid关掉,因为在进行主页更新测试时squid的cache会使更新后的主页不能及时反映出来!为了不使用squid,除了关掉squid外,还要删除ipfw的透明代理端口转发语句:# cd /usr/local/etc/rc.d# ./squid.sh stop# mv squid.sh squid.sh.bak# ipfw del 500 fwd ,3128 tcp from /24 to any 80 本web服务器的其本组成为:Apache 1.3.27 modssl mod_php4 mod_gzip mod_fastcgi mod_perl MySQL3.23 为了简化安装过程并发挥FreeBSD安装软件的优势,本文后续部分将采用ports安装。Ports 使在FreeBSD下安装各种软件变得很轻松。首先安装ports:(如果已经有/usr/ports目录则证明已经安装过了)# /stand/sysinstall 选ConfigureDistributionsports,ports将被安装在/usr/ports目录中。下面安装apache1.3.27 + modssl :# cd /usr/ports/www/apache13-modssl# make install 系统会自动下载安装包并安装完毕。安装后系统会自动产生启动脚本apache.sh,在/usr/local/etc/rc.d目录中。可以通过运行apache.sh start|stop来启动或停止apache。安装mysql3.23:# cd /usr/ports/databases/mysql323-server# make install 安装后产生启动脚本/usr/local/etc/rc.d/mysql-server.sh安装apache模块mod_php4:# cd /usr/ports/www/mod_php4 首先编辑scripts目录下的configure.php文件,加入对OpenSSL的支持# vi scripts/configure.php 找到下面一句OpenSSL OpenSSL support ON 改成OpenSSL OpenSSL support YES # make install 出现对话框时直接选ok继续安装完成后编辑apache的配制文件/usr/local/etc/apache/httpd.conf ,添加如下内容:# 设置默认可以使用的主页名称,这句系统一般已经有了,不用添加了DirectoryIndex index.php index.html# 这2句需要手工添加AddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps 安装其他Apache常用模块 mod_gzip + mod_fastcgi + mod_perl:# cd /usr/ports/www/mod_gzip# make install# cd /usr/ports/www/mod_fastcgi# make install 编辑/usr/local/etc/apache/httpd.conf文件添加下面一句AddHandler fastcgi-script fcgi fcgi fpl# cd /usr/ports/www/mod_perl# make install 重新启动让所有软件自动运行。测试:首先以root身份执行线程察看命令top,列表中应该有下面几个线程正在运行:PID USERNAME PRI NICE SIZE RES STATE COMMAND69 root 2 0 440K 296K select natd # 网络地址转换进程132 root 2 0 3692K 3052K select httpd # apache进程166 mysql 2 0 27480K 4824K poll mysqld# mysql进程 在浏览器地址栏输入 ,如果显示apache的欢迎页面,证明web服务器安装成功!web页面文件存放在/usr/local/www/data目录中,你可以把自己的网页拷贝到这个目录,就可以访问自己的主页了!键入命令:# mysql 出现下面显示证明mysql安装成功!Welcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 2 to server version: 3.23.52Type help; or h for help. Type c to clear the buffer.mysql 键入exit退出mysql。为mysql的root用户设置一个口令123456# mysqladmin -u root passWord 123456 现在我们来安装一个支持php+mysql的论坛。到/showthread.php?s=&threadid=2429去下载完美版的仙境论坛程序。将下载的rar压缩包解开,然后使用ftp上传到/home/ylf/app目录。事先备份web服务器演示页面# cd /usr/local/www/data# mkdir backup# mv * backup 将论坛程序拷贝到/usr/local/www/data目录# cd /home/ylf/app/vbb2.3.0final# cp r * /usr/local/www/data 编辑论坛配置文件:# vi /usr/local/www/data/admin/config.php 内容如下: 除了root用户的密码需要添入外,其他部分可以不改。保存后,在浏览器地址栏输入/admin/install.php ,根据提示一步步安装即可。安装成功后,在在浏览器地址栏输入 ,就可以看到论坛了!怎么样,挺漂亮吧!关于论坛的其他问题,请仔细看论坛安装包里面的说明文档,或者到仙境论坛的主页,那里有仙境论坛的一切!下一节,我们要讨论关于虚拟主机的问题。- 配制虚拟主机:Apache的虚拟主机支持有两种方式,一是基于用户访问Apache主机时所使用的域名,另一种是通过指定IP地址来提供。这里我们只介绍如何通过不同的域名来实现虚拟主机的支持。要实现基于域名的虚拟主机的前提条件是必须有两个域名同时指向Apache主机的IP地址,这里我们假设这两个域名分别是和 ,这两个域名的文档都分别放置于 /home/www01 和 /home/www02这两个目录内,同时这两个目录已经设置好权限,对于目录让所有的人都可以读取、运行,对于文件,让所有的人都可以读取。以下是具体的配置过程:首先到希网去注册2个域名。然后为这2个域名分别建立文档目录# mkdir /home/www01# mkdir /home/www02 编辑apache的配制文件httpd.conf# vi /usr/local/etc/apache/httpd.conf 在文件最后找到下面2行 在2行中间添加如下内容:NameVirtualHost * # 指定运行虚拟主机服务的主机ip地址# 静态ip方式可以将*替换为你的ip地址,动态ip直接用*即可ServerAdmin #指定WEB管理员的邮箱DocumentRoot /home/www01 #指定本虚拟主机的文档目录ServerName #指定本虚拟主机的域名ErrorLog /var/wwwlogs/.error.log #指定错误记录应该存放于那里CustomLog /var/wwwlogs/.log common #指定常规记录应该存放于那里ServerAdmin DocumentRoot /home/www02ServerName ErrorLog /var/wwwlogs/.error.logCustomLog /var/wwwlogs/.log common 创建/var/wwwlogs目录# mkdir /var/wwwlogs 重新启动apache# /usr/local/etc/rc.d/apache.sh stop# /usr/local/etc/rc.d/apache.sh start 分别在/home/www01和/home/www02目录拷入不同的网页文件进行测试,注意主页名称必须是index.html或index.php测试确认注册的2个域名已经指向了你的主机ip。在浏览器地址栏输入域名 和 ,如果分别显示你拷入的主页证明虚拟主机配置成功!利用上面的方法我们可以建立更多的虚拟主机,甚至对外提供主页空间服务!如果要对外提供虚拟主机服务,需要为使用者提供ftp上传功能。下一节我们将讨论如何通过Proftpd1.2.7 + proftpd-mod-quotatab-1.2.4 + mysql实现带有空间限额和数据库用户验证功能的ftp服务器。-第四步:安装配置ftp服务器本文根据网上流行的一篇文章整理改编而成,并修正了原文的一些小错误。由于为每一个需要使用ftp服务的用户建立系统帐户会影响系统的安全,所以我们使用数据库用户进行ftp用户验证。系统组成:PRoftpd1.2.7 proftpd-mod-quotatab-1.2.4 MySQL3.23 因为ports里没有proftpd-mod-quotatab-1.2.4模块,我们下载源代码安装。下载源代码包:(必须下载相同版本的源代码包)到 或ftp:/ftp.servus.at/ProFTPD/distrib/source/proftpd-1.2.7.tar.gz去下载proftpd-1.2.7.tar.gz。到/proftpd/ 去下载proftpd-mod-quotatab-1.2.4.tar.gz。(1.2.5 版本的mod_quotatab是用在1.2.8rc1上的)用ftp将它们上传到/home/ylf/app目录。然后解压缩源代码包:# cd /home/ylf/app# tar zxvf proftpd-1.2.7.tar.gz# tar zxvf proftpd-mod-quotatab-1.2.4.tar.gz 进入mod-quotatab目录# cd mod_quotatab 把mod_quotatab中的文件拷贝到proftpd 中的modules 目录中# cp * ./proftpd-1.2.7/modules 在开始运行configure之前,我们要先改动一个文件进入 proftpd-1.2.7/contrib 目录 # cd /home/ylf/app/proftpd-1.2.7/contrib 修改 mod_sql_mysql.c # vi mod_sql_mysql.c 找到#include 把他改为你的实际路径,这里是:#include 然后编译安装:# cd /home/ylf/app/proftpd-1.2.7#./configure -prefix=/usr/local/proftpd -with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql -with-includes=/usr/local/include/mysql -with-libraries=/usr/local/lib/mysql# make# make install 进入到proftpd配置文件所在目录# cd /usr/local/proftpd/etc 备份原配置文件# mv proftpd.conf proftpd.conf.bak 然后编辑新的配置文件proftpd.conf# vi proftpd.conf 我的proftpd.conf内容如下:# This is a basic ProFTPD configuration file (rename it to# proftpd.conf for actual use. It establishes a single server# and a single anonymous login. It assumes that you have a user/group# nobody and ftp for normal Operation and anon. ServerName ServerType standaloneDefaultServer on# 用户登陆时不显示ftp服务器版本信息ServerIdent off# Port 21 is the standard FTP port.Port 21# Umask 022 is a good standard umask to prevent new dirs and files# from being group and world writable.Umask 022MaxLoginAttempts 3TimeoutLogin 120TimeoutIdle 600TimeoutNoTransfer 900TimeoutStalled 3600MaxClients 100# 设置每台主机最多并发连接数MaxClientsPerHost 3AllowOverwrite noAllowStoreRestart onUseReverseDNS off# 设置如果shell为空时允许用户登录RequireValidShell off# 将用户限制在自己的主目录下DefaultRoot ftpusersDefaultRoot FTPGRP# To prevent DoS attacks, set the maximum number of child processes# to 30. If you need to allow more than 30 concurrent connections# at once, simply increase this value. Note that this ONLY works# in standalone mode, in inetd mode you should use an inetd server# that allows you to limit maximum number of processes per service# (such as xinetd).MaxInstances 30# Set the user and group under which the server will run.User FTPUSRGroup FTPGRP# Normally, we want files to be overwriteable.AllowOverwrite

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论