3 用FreeBSD构建家庭网络世界

第三章:配置成为文件服务器
刚才介绍过通过上面这钟方式连接的网络由于没有采用HUB , 所以各个客户机之间不能象网络邻居那样相互访问 , 但是每个客户机都能访问服务器 , 所以如果我们能把FreeBSD服务器配置成为Windows网络邻居就方便多了 , 大家可以把要共享的东西拷贝到服务器上共享就是了 。实现这种功能的软件就是Samba 。
Samba的主要功能是让Windows的用户用网络邻居的方式共享Unix/Linux服务器上的文件和打印机 , 该软件使用和局域网管理(LanManager)协议相兼容的SMB(或CIFS)协议来工作 , 其支持的客户端操作系统有Dos、Win95/98/ME、WinNT/2000、Macintosh、OS/2、Unix/Linux等 , 功能十分强大 , 而且它还自带一个可以让用户以WEB方式进行服务器配置的工具—SWAT(Samba Web Administration Tool) , 意即Samba基于网页的管理工具 。接下来看看如何实现从同一局域网的Windows客户机上去访问FreeBSD的”/public”目录 。
首先用Windows客户机从http://www.samba.org/网站上获取最新的软件包 , 以2.2.8版本为例 , 文件名为samba-2.2.8.tar.gz , Linux和Unix对软件包的命名方式是“软件名+版本”这种方式 。为了将这个软件包上传到FreeBSD服务器上我们一般会用到FTP服务器 。FTP服务和Telnet一样是FreeBSD最小化安装就带了的服务 。启用它仅仅只需要在“/etc/inetd.conf”中把“ftp”前面的注释符号“#”去掉 , 然后执行”killall –HUP ‘inetd"”命令让系统重新读取、执行该配置文件 , 处理之后用FTP客户就可以登陆服务器了 , 登陆可以用除root外任何用户的账号 。假设以”zhp”用户登陆,FTP将自动切换到了该用户的拥有目录-“/home/zhp/”目录 , 因为“zhp”是该目录的主人 , 所以拥有该文件夹的最高权限 , 当然也可以上传文件 , 接着把刚才下载的文件包上传到该目录 。
下面将通过telnet软件(推荐NetTerm软件)以远程的方式来安装Samba 。先还是用“zhp”用户登陆 , 用su命令切换到管理员模式 , 输入管理员密码后就可得到系统的控制权 。安装步骤如下:
#cd /home/zhp /*这个目录为刚才FTP上传文件的目录*/
#tar –zxvf samba-2.2.8.tar.gz /*解压包到同一目录*/
这里文件名很长 , 可以在敲打了文件名开头的几个字母后按“TAB”键 , 系统的shell会自动补齐剩下的文件名 。
#cd samba-2.2.8/soure /*进入Samba源代码目录*/
#./configure /*按缺省值配置Samba*/
#./make /*编译连接*/
#/make install /*拷贝和安装Samba , 默认安装目录为/usr/local/samba*/
#ee /etc/services /*用ee编辑器修改services文件*/
加入“swat 901/tcp”于该文件中后存盘退出 , 它的作用是确定SWAT启动的监听端口 , 缺省是901端口 , 可以修改为别的数值 。
#ee /etc/inetd.conf /*用ee编辑器修改inetd.conf文件*/
加入“swat stream tcp nowait root /usr/local/samba/bin/swat swat”于该文件中存盘退出 , 它的作用是以inetd的方式在启动的时候自动加载SWAT 。
#reboot /*重新启动服务器*/
服务器重新启动之后 , SWAT服务就已经启动了 , 现在可以用任何一台能连通该服务器的Windows客户机的IE来配置Samba服务器了 , 在IE地址栏输入http://202.115.65.225:901/会看到一个登陆框 , 输入“root”和“root密码”就进入了如图10的页面 。

图10
用最简单的配置方法我们只要修改修改GLOGALS和SHARES中的设置就可以了 , 我们点击GLOGALS后配置相关参数 , 如图11所示 , 这里配置该服务器的netbios名字为“BSD” , 工作组为“ITP” , 安全级别为“SHARE” , 如果安全级别设置成“USER”就需要在访问文件的时候输入在FreeBSD上的账号 。

图11
接下来配置共享目录 , 先用“mkdir /public”命令建立“/public/”目录 , 为了让“public”指向“/public”目录必须要建立一个名为“public”的共享 , 如图12所示 。

图12
单击“Creat Share”按钮将建立名为public的共享 , 接下来按照图13所示配置好该共享属性 。其中Path为路径 , 该处为“/public/”,read only设置为“NO” , 该目录允许上传、修改和删除文件操作 , 将geuest ok设置为“Yes”则客户端访问时可以匿名访问 , 当然考虑到安全因素这样配置是不科学的 , 但是对于家庭用户着实很方便 。

图13
SWAT所作的工作仅仅是以可视化的方式修改了Samba的配置文件“/usr/local/samba/lib/samba.conf” , 这个文件也可以手动修改 , 具体如何修改请参考相关文献 。现的工作是启动samba , 方法如下:
#cd /usr/local/samba/bin /*进入samba执行文件目录*/
#./smbd –D /*以daemon模式启动smbd , 其功能为用smb协议同客户机通讯*/
#./nmbd -D /*以daemon模式启动nmbd , 其功能解析netbios name*/
这个时候我们就可以在Windows客户机的网络邻居中看到我们的文件了 , 如图14所示 。

图14
第四章:配置成为WEB服务器
现在最流行的WEB服务器非Apache莫属了 , 但是在没有第三方软件支持它只基本上支持只静态的网页显示 , 但在安装上PHP支持和MYSQL数据库服务之后它就能运行几乎全部现成的程序 , 包括优秀的论坛、留言板 , 你甚至可以建设一个自己的软件下载站点 。当然制作一个个人主页来展示自己 , 让自己朋友都来这里聚聚也很有趣 。
那就看看如何实现 。前面提到的“三剑客”-Apache、PHP、Mysql为三家软件公司的产品 , 每个软件都有很多安装参数 , 具体安装的组合方式也有多样 , 我选择了一种比较简单的方法给大家讲述 。
第一步:下载软件包
这三个软件都是免费的 , 大家可以用客户机分别到它们的官方网站上去下载 , 网址如下:
Apache http://www..apache.org/
PHP http://www.php.net/
Mysql http://www.mysql.com/
下载的包是被先压缩成tar文件再打包成gz文件的 , tar.gz为其扩展名 , 然后把它们利用FTP全部上传到“/home/zhp”目录 , 这里“zhp”是前面创建的用户 。接着用Telnet远程获得管理员权限 , 执行”tar –zxvf $软件包.tar.gz”命令分别解开这三个包 , 本例执行了下面的三个命令 。
# tar –zxvf apache_1.3.24.tar.gz
# tar –zxvf mysql-max-3.23.49-unknown-freebsdelf4.4-i386.tar.gz
# tar –zxvf php-4.1.2.tar.gz
这三个软件包解开后会生成三个目录 , 根据软件版本不同会有不同 , 本例为:
apache_1.3.24;mysql-max-3.23.49-unknown-freebsdelf4.4-i386;php-4.1.2
下面的操作我就以这些目录名为例继续安装和配置 。
# cd /home/zhp/apache_1.3.24 /*进入apache安装目录*/
# ./configure /*预配置一下apache*/
# cd ../php-4.1.2 /*进入PHP安装目录*/
# mkdir /usr/local/php /*创建PHP安装目录*/
#./configure –prefix=/usr/local/php/ --with-mysql --with-apache=../apache_1.3.24 --enable-track-vars
/*生成配置文件 , 指定安装路径 , 支持mysql , 告知apache安装文件位置*/
# make /*编译*/
# make install /*安装拷贝文件到/usr/local/php */
#cd ../apache_1.3.24
#mkdir /usr/local/www /*创建apache安装目录*/
#./configure --prefix=/usr/local/www --activate-module=src/modules/php4/libphp4.a /*libphp4.a现在并不存在 , 系统将会创建*/
#make /*编译*/
#make install /*安装拷贝文件到/usr/local/www*/
#cd ../php-4.1.2
#cp php.ini-dist /usr/local/lib/php.ini /*拷贝php配置文件到系统目录*/
#cd /usr/local/www/conf /*进入apache配置文件目录*/
#ee httpd.conf /*修改配置文件httpd.conf*/
添加AddType application/x-httpd-php .php到该文件中后存盘退出
#cd /home/zhp/ mysql-max-3.23.49-unknown-freebsdelf4.4-i386
#mkdir /usr/local/mysql /*创建mysql安装目录*/
#./configure –prefix=/usr/local/mysql /*配置mysql*/
#make /*如果内存比较小请加上--with-low-memory参数 */
#make install /*拷贝文件到/usr/local/mysql目录*/
接下来用/stand/sysinstall添加一个mysql用户组和一个mysql用户 , 然后继续执行命令
# scripts/mysql_install_db /*创建一个特殊的数据库”mysql” , 它管理用户权限*/
# chown -R root /usr/local/mysql
# chown -R mysql /usr/local/mysql/var /*这三行改变目录权限、归属*/
# chgrp -R mysql /usr/local/mysql
# /usr/local/mysql/bin/safe_mysqld --user=mysql & /*启动mysql服务器*/
#/usr/local/www/bin/apachectl start /*启动apache服务器*/
到这里所有的配置执行完毕 , 以后可以从客户机上用FTP上传HTML/php网页到你的到“/home/zhp/public_html/”目录下 , 然后在IE地址栏内输入http://192.168.0.1/zhp/$网页文件.php就可以看看效果了 , 如果你觉得Mysql数据库管理不方便 , 你还可以去下载一个名为“phpMyAdmin”的软件来在线管理 , 该软件只要解压并上传到Web服务器 , 然后修改“config.inc.php”文件中的参数“$cfgPmaAbsoluteUri“为phpmyadmin上传目录的URL地址就可以了 , 执行文件为“index.php” 。
【3 用FreeBSD构建家庭网络世界】配置成功之后执行看到图15所示页面 , 该例设置为“$cfgPmaAbsoluteUri="http://202.115.65.225/~itp/phpadm/ ‘“ 。