作者:田逸(sery@163.com) <开放系统世界> 2006年10期

多年前,sun 微系统公司提出“网络就是计算机”这一著名的口号,从而使得网络的概念逐渐为世人所理解并加速了信息网络化的步伐。今天,信息网络已经无处不在,用性能卓越的solaris 10 来提供各种各样的网络服务,是顺理成章的事情。由于solaris 10 开源的进一步推进,越来越多的软件提供商、软件开发者开始对solaris提供支持,这就意味着在solaris 10下可使用的软件越来越丰富。
solaris 10作为主流的unix操作系统,支持几乎所有流行的网络服务。我们在安装solaris 10的时候,就会把诸如apache、nfs等等这样的网络服务默认安装到服务器中。但是在实际的应用中,一般不采用系统自带的那些网络服务(通过定制安装的方式,选择所需的软件包而取消系统默认的某些包如apache等),在需要的时候下载相应的源码,然后手动安装。与自动安装相比而言,手动安装更灵活一些,也更能满足实际需求。由于不是每个软件都有solaris包提供,也为了顾及其他的unix/linux平台,因此笔者建议尽可能使用二进制源码包来安装。

设置和修改网络参数
相对于linux而言,solaris 的网络设置或修改要麻烦一些。请照下面的步骤来设置或修改网络参数:
1、 查看接口的名字: # ifc ╟a
-bash-3.00# ifc -a
lo0: flags=2001000849<up,loopback,running,multicast,ipv4,virtual> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
iprb0: flags=1000843<up,broadcast,running,multicast,ipv4> mtu 1500 index 2
inet 192.168.2.16 netmask ffffff00 broadcast 192.168.2.255
ether 0:e:c:9b:cc:80
上面的输出可以看出网络接口的名称为 iprb0.
2、 打开文件/etc/hostname.iprb0,查看对应主机名。本例中只有一个名字sery.
# cat /etc/hostname.iprb0
sery
3、 修改文件 /etc/hosts , 把ip地址与主机名影射起来。
  
4、 修改文件 /etc/netmasks,其形式如下:
# the netmasks file associates internet protocol (ip) address
# masks with ip network numbers.
#
# network-number netmask
#
# the term network-number refers to a number obtained from the internet netwo
rk
# information center.
#
# both the network-number and the netmasks are specified in
# "decimal dot" notati e.g:
#
# 128.32.0.0 255.255.255.0
#
192.168.2.0 255.255.255.0  //这行是手动添加的
  
5、 修改文件/etc/defaultrouter,设置默认网关。只能设置一个默认网关,否则发生混乱。我的例子如下:
-bash-3.00# cat /etc/defaultrouter
192.168.2.254
  
6、 设置dns客户端。由于/etc目录没有文件resolv.c 61.135.154.50”这样的文本行,可以添加3个dns服务器,多了无用。
7、 修改文件 /etc/nsswitch.c file ”改成“hosts: dns file ”。注意中间有空格。这一步必不可少,否则 dns将不起作用。

8、 验证一下网络配置。# ping www.163.com看是否正常。

一些准备工作
为了后面的操作更容易和方便,还需要安装一些软件(如wget)以及对环境变量的路径做些更改。
1、 安装软件包wget,此软件用来从远程网站下载文件到用户的当前目录;通过比较,wget的下载比用windows 的下载工具要快很多。由于系统本身没有默认安装wget,这里需要我们手动安装它。到网站http://www.sunfreeware.com/indexintel10.html 下载包wget-1.10.2-sol10-x86-local.gz(用windows工具下载),然后通过ssh客户端工具 ssh secure file transfer client把文件传输到solaris 服务器;远程登陆到 solaris10 ,在包wget-1.10.2-sol10-x86-local.gz所在的目录执行命令 # gzip ╟d wget-1.10.2-sol10-x86-local.gz , 安装包 # pkgadd ╟d wget-1.10.2-sol10-x86-local。
2、 设置环境变量之路径。solaris 10 默认的环境变量不太符合实际的需求,使用者有必要对它进行修改;常见的情况就是设置path(路径)。实验一下:执行命令 # make 系统提示 “make command not found”,但实际上命令是存在的,不信你用 # find / -name make搜。请按照笔者的样式设置path,
-bash-3.00# echo $path
/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/ccs/bin:/usr/openwin/bin:/usr/sfw/bin
修改文件/etc/profile,把上面的输出行追加到文件,保存后运行 # source /etc/profile 使环境变量的修改生效。这时我们在运行刚才的命令 # make 输出如下内容“make: fatal error: no arguments to build”,这没关系,只是说明命令后面没有带参数而已,同时也说明路径的设置是正确无误的。

现在一切都准备就绪,接着我们就来向大家介绍几个solaris 10主要的网络服务。

web 服务apache
到目前为止,web服务仍然是internet上数量最大的网路服务。有为数众多的web服务器软件,但出于领导地位的当属开源软件apache,它占据了web服务器70%以上的份额。
1、 取得apache的安装包。 # wget http://mirror.vmmatrix.net/apache/httpd/httpd-2.2.3.tar.gz,笔者一般习惯在/root目录执行命令wget,也意味把软件包下载到目录/root。solaris 10系统本来没有目录/root,这个目录是手工创建的,通过修改文件/etc/passwd把root用户的主目录设置为/root(默认是根目录 / ),然后修改/root目录权限为 700。
2、 解压解包。在下载文件的目录(这里是/root)运行 # gzip ╟d httpd-2.2.3.tar.gz,命令完成后再执行 # tar xvf httpd-2.2.3.tar。
3、 配置、编译、安装apache.执行命令 # cd httpd-2.2.3 切换到解压生成的目录httpd-2.2.3,然后查看一下目录,看是否有关于安装方面的帮助文件如install或readme,有幸的是,在目录下有这两个文本文件,打开install文件可以得到软件包的安装方法。

从这个install文件可以得到apache在unix中的快速安装启动等方法。接着我们就在当前目录执行命令 # ./c ╟prefix=/usr/local/apache2 ╟enable-so 。说明:c # make ; make install 等一段时间就可正常完成apache 的安装。
4、 修改配置文件/usr/local/apache2/conf/httpd.c
5、 修改完配置文件以后,需要用命令apachectl检查是否有语法错误。执行命令# /usr/local/apache2/bin/apachect ╟t ,没有语法错误方可启动apache服务。
6、 启动和停止apache服务。启动apache服务真的是一项有趣的事情,运行命令 # /usr/local/apache2/bin/apachect start启动apache .怎么知道 apache按照我们的意愿启动起来呢?需要验证一下。方法一:查看apache进程,命令是 # ps ╟aef |grep httpd。方法二:在另外一个windows机器的浏览器输入solaris服务器的ip地址,能正常显示页面内容就表明成功了。经验表明,apache不能正常启动的最主要的原因就是配置文件修改得不正确。一个建议就是在修改配置文件前先给它在同一个目录(这里是c # /usr/local/apache2/bin/apachectl stop即可。

mysql数据库服务
mysql数据库是一个在linux下很受欢迎的数据库服务器,对于solaris 10这个操作环境,mysql也是支持的-mysql有针对solaris平台的安装包,在本案中,我们采用mysql的二进制源码来安装。
1、 下载源码安装包。# wget http://mysql.easynet.be/downloads//mysql-4.1/mysql-4.1.21.tar.gz
2、 解包解压mysql。# gzip ╟d mysql-4.1.21.tar.gz , # tar xvf mysql-4.1.21.tar。
3、 切换目录,执行配置操作。# cd mysql 4.1.21 , # 。/c ╟prefix=/usr/local/mysql。
4、 编译安装. # make ;make install。
5、 添加mysql用户及组。# groupadd mysql ,# useradd ╟g mysql mysql。
6、 更改目录属主。切换到目录 /usr/local/mysql ,运行命令 # chown ╟r mysql:mysql lib。
7、 初始化数据库。# /usr/local/mysql/bin/mysql_install_db ╟user=mysql。下面是初始化的截图:

8、 启动mysql服务. # /usr/local/mysql/bin/mysqld_safe ╟user=mysql &。
9、 验证mysql服务是否正常启动。先查看进程 # ps ╟aef | grep mysql ,发现mysql进程确实在运行后,再用mysql的客户端程序连接测试 # /usr/local/mysql/bin/mysql ╟u root 。因为初始的mysql的用户root没有设置密码,直接就可以连接到mysql服务器.只要mysql的提示符 “mysql > ”出现了,就可以认为mysql服务是正常的。
10、 其他的操作。与linux下的操作完全相同,不再多叙。
11、 关闭mysql服务。 # /usr/local/mysql/bin/mysqladmin shutdown。
提示:mysql的某些版本如mysql-standard-5.0.18-linux-i686-glibc23.tar.gz不需要配置、编译、安装这些过程,解包解压后直接初始化数据库。

nfs(网络文件系统)
前面的两个网络服务都是第三方提供的开源软件,但nfs(network file system)却是sun公司自家东西。由于nfs已经被默认的安装到solaris 10,因此不需要手动安装它。笔者曾尝试安装二进制源码的nfs包,但花费了很多精力却不太如愿。
1、共享文件系统。语法基本格式 share ╟f nfs ╟o <用户权限> <共享的目录>。下面是一个共享目录 /export/home/sery的例子:
# share ╟f nfs rw=192.168.10.0/24 /export/home/sery //把目录/export/home/sery开放给网段 192.168.10.0 共享,该网段的用户对共享目录具有读写权限。
2、启用nfs服务。默认情况下,solaris 10 的nfs服务是启动的,使用命令 # svcs ╟a | grep nfs来查看其状态是否在线( # svcadm enable svc:/network/nfs/server:default,命令执行完后再查一下看nfs是否
3、在客户端挂接共享目录.可以在solaris 环境挂接也可以在linux下挂接,不管在那种情况下挂接,都得先启用nfs客户端程序,然后再用mount命令来挂接。solaris nfs客户端有两个守护进程--/usr/lib/nfs/statd、/usr/lib/nfs/lockd,而linux则需启用portmap服务(# service portmap start),接下来我们来挂接第一步给出的共享:
# mount ╟f nfs 192.168.10.20:/export/home/sery /mnt/nfs //把远程服务器192.168.10.20的目录/export/home/sery挂接到本机目录/mnt/nfs上
在客户端执行挂接操作时,应使用root帐号来进行,但这个root对于远程nfs服务器的共享目录而言,它仅仅是nfs服务器的低权限帐号(nobody:x:60001:60001:nfs an access user:/:),因此还得在 nfs服务器端给id为60001的帐号读写权限才可以在客户端读写这个挂接目录,这个是很容易被初学者忽略的地方,也是为什么不能正确执行mount挂接的直接原因,请记住:系统权限一定大于应用程序的权限。
在设置共享目录的那步,如果solaris 10重新启动以后,配置就不再有效了,为了让配置一直有效,需要把它写到文件里。solaris10的文件路径是 /etc/dfs/dfstab(linux系统是 /etc/export),把需要共享的命令行添加到文件中即可。


2006-9-4