时隔三个多月,终于又再次来到济南参加RHCE认证的学习培训,还是那所培训机构,还是那位老师,只是同学们都换成了新面孔,而季节也由盛夏过度到了初冬。照例还是将每天的学习过程记录下来,为自己留下第一手的资料,同时希望也能为大家提供一些帮助。

第一天(11月26日)

第一天的主要内容是搭建Web服务器,这也是RHCE考试最重要的内容。
 
1、Apache概述
在Linux系统中使用Apache实现Web服务器,互联网中大约60~70%的Web服务器基于Apache实现。Apache来源于NCSA(由欧洲量子实验室开发),现在由Apache软件基金会(ASF)负责管理和开发,其官网为httpd.apache.org。
RHCE认证培训+考试七天实录(一)_第1张图片

Apache的特点:开源,模块化设计(可以灵活添加各种功能),跨平台应用(可以用于Windows、UNIX/Linux系统)。缺点:默认只有256个并发连接,运行速度偏慢,效率较低。目前已经出现了一些取代它的软件,如nginx。

Apache有两个版本分支:1.x和2.x,目前使用的都是2.x版本,最新版本为2.2.15。
Apache的服务进程为httpd,查看系统中是否已安装Apache:
[root@localhost ~]# rpm -qa | grep httpd
httpd-tools-2.2.15-15.el6_2.1.x86_64
如果Apache没有安装,可以用yum安装:
[root@localhost ~]# yum install httpd httpd-manual
httpd-manual是Apache的帮助手册。
Apache的一些常用命令:
# service httpd start         启用httpd服务
# service httpd stop         停止httpd服务
# service httpd status        查看httpd服务的状态
# service httpd restart       重启httpd服务
httpd服务启动之后会开放80端口,利用netstat命令查看系统开放的端口:
[root@localhost ~]# netstat -an | grep :80
只要80端口开放,www服务器就可以正常访问,如果有问题,多半是防火墙的原因。
另:在/etc/services中注明了所有的端口对应的服务。可以用grep命令在其中查找相应端口的信息。
 
2、httpd.conf配置文件
Apache的配置文件是/etc/httpd/conf/httpd.conf,服务器的配置信息全部存储在这个文件中,如果修改了配置文件,就必须重启httpd服务才可以生效。
httpd.conf文件中的内容非常多,用wc命令统计一共有1004行,其中大部分是以#开头的注释行。所以对httpd.conf的配置一般采用搜索的方式对常用项目进行设置,在vim命令模式下输入“/”,后面跟上要搜索的内容。
RHCE认证培训+考试七天实录(一)_第2张图片

下面是配置文件中的一些比较重要的设置项目。

   apache的默认主目录
DocumentRoot "/var/www/html"
如果更改了主目录的位置(不是在/var/www目录下),需要用“setenforce 0”命令将SELinux关闭,所以主目录一般不建议更改。
   apache的默认主页
DirectoryIndex index.html index.html.var
    默认侦听的端口
Listen 80            
   客户端在访问Apache服务器时默认使用的用户apache和组apache
User apache
Group apache
 
例题1:为站点 http://server14.example.com创建一个web服务器,然后执行下述步骤:
   从ftp://192.168.0.254/pub/station.html下载文件,并且将文件重命名为index.html。
   将文件拷贝到web服务器的主目录下,不能对文件index.html的内容做任何修改。
   我的电脑的IP为192.168.0.114,域名server14.example.com与IP的对应关系已经在DNS服务器中创建好了。
操作步骤:
首先从服务器下载文件:
[root@server14 ~]# wget ftp://192.168.0.254/pub/station.html
将文件改名并移动到主目录中:
[root@server14 ~]# mv station.html /var/www/html/index.html
打开浏览器,输入网址http://server14.example.com,可以正常访问页面,操作完成。
 
3、构建虚拟主机
虚拟主机指的是在同一台服务器中运行多个Web站点。
有三种技术可以实现虚拟主机。
基于域名的虚拟主机:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的。例如,www.example.com和www.accp.com站点的IP地址都是192.168.0.1。这是使用最为普遍的虚拟主机类型。
基于IP地址的虚拟主机:为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛
基于端口的虚拟主机:这种方式并不使用域名、IP地址来区分不同的站点内容,而是使用了不同的TCP端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。此种方式也很少使用。
在RHCE考试中只考察基于域名的虚拟主机。
例题2:扩展您的服务器,为站点 http://www14.example.com创建一个虚拟主机,然后执行下述步骤:
  设置主目录为/var/www/virtual
  从 ftp://192.168.0.254/pub/www.html下载文件,并且将文件重命名为index.html。
  将文件index.html放到虚拟主机的主目录下,不要对文件的内容做任何更改。
  确保harry用户能够在/var/www/virtual目录下创建文件。
操作步骤:
同样的,www14.example.com与IP的对应关系已在DNS服务器中设置好了。
首先创建虚拟主机的主目录:
# mkdir /var/www/virtual
从服务器下载文件:
[root@server14 ~]# wget ftp://192.168.0.254/pub/www.html
将文件改名并移动到主目录中:
[root@server14 ~]# mv www.html /var/www/virtual/index.html
修改配置文件httpd.conf:
[root@server14 ~]# vim /etc/httpd/conf/httpd.conf
按G将光标移动到文件末尾,增加如下内容:
NameVirtualHost 192.168.0.114
    DocumentRoot /var/www/virtual/
    ServerName www14.example.com
在末行模式下按wq保存退出。
这些增加的内容的含义:
    NameVirtualHost 192.168.0.114
表示在192.168.0.114这台主机上启用虚拟主机功能。
    ……
这是虚拟主机的标准格式,每增加一台虚拟主机就要添加这样一个段落。
     DocumentRoot /var/www/virtual/
指定虚拟主机的主目录。
     ServerName www14.example.com
指定虚拟主机的域名。
最后将httpd服务重启后生效。
# service httpd restart
打开浏览器,在地址栏中输入http://www14.example.com/,就可以访问虚拟主机站点了。
 
4、访问控制
对Apache网站的访问控制可以采用基于用户的访问控制,或是基于客户机地址的访问控制两种方式。
(1)基于用户的访问控制
注意,此用户与系统用户没有任何关系。
例题3:设置网站server14.example.com下面的private子目录需要通过用户身份验证才能访问,只有输入用户名harry或natasha以及相应的密码才能访问。
操作步骤:
首先创建子目录:
# mkdir /var/www/html/private
然后在子目录中创建网页:
# vim /var/www/html/private/index.html
下面修改配置文件httpd.conf,在文件末尾增加下面的部分:
    DocumentRoot /var/www/html/
    ServerName server14.example.com
    AuthName "test"
    AuthType Basic
    AuthUserFile /etc/httpd/conf/.htpasswd
    require valid-user
其中的设置项目的含义:
    ……,表示对目录“/var/www/html/private”进行访问控制设置。
     AuthName:定义受保护的领域名称,将在弹出的认证登陆对话框中显示。
     AuthType:设置认证的类型,Basic为基本认证
     AuthUserFile:设置用于保存用户帐号、密码的认证文件路径。(可以自由定义)
     require valid-user:授权给认证文件中的所有有效用户
最后这一项也可以写成“Require User [用户名]”,指定一个用户名,这样无论认证文件中如何定义,只有该用户可以访问。
设置完成后,保存退出httpd.conf。
接下来创建存储认证用户账号及口令的文件:
# htpasswd –cm /etc/httpd/conf/.htpasswd harry
-c,创建文件    -m,MD5加密
如果要再加入别的用户,需要去掉-c选项
# htpasswd –m /etc/httpd/conf/.htpasswd natasha
重启httpd服务,配置完成:
# service httpd restart
(2)基于客户机地址的访问控制
考试时只考察这种方式,这种方式相对比较简单。
例题4:设置网站server14.example.com下面的private子目录只允许在本机访问(本机IP:192.168.0.114)。
修改配置文件,增加下面的部分:
# vim /etc/httpd/conf/httpd.conf
    DocumentRoot /var/www/html/
    ServerName server14.example.com
   Order allow,deny
   Allow from 192.168.0.114
其中的设置项目的含义:
     Order allow,deny    定义控制顺序,先允许后拒绝,默认拒绝所有。
     Allow from 192.168.0.114 设置允许访问的地址,地址可以是多个,如Allow from 192.168.0.114 192.168.0.115。再如
Allow from 192.168.0.0/24
Deny from 192.168.0.100
表示只允许192.168.0.0/24网段中的主机访问网站,192.168.0.100除外。
设置完成后,保存退出httpd.conf。
重启httpd服务生效:
# service httpd restart
此时只有IP为192.168.0.114的主机(也就是本机)能访问这个网站。
5、实现https安全访问
实现https访问,首先需要为web站点申请证书,由于还没有搭建CA服务器,这里就使用本机自认证的证书。
apache默认并不支持安全访问功能,所以需要为apache安装ssl模块:
# yum install mod_ssl
另外,https不支持虚拟主机技术,在一台服务器上只允许有一个启用该功能的网站。所以这里还要把之前配置的虚拟主机的相关行前面加“#”,将之全部注释掉。
做完上面的设置后,在客户机就可以使用https方式访问网站了。
 
6、构建LAMP平台
LAMP即Linux、Apache、MySQL、PHP,使用它们可以构建出目前最为成熟的一种企业网站应用模式,可提供动态Web站点应用及开发环境。
首先在系统中安装mysql和php:
# yum install httpd mysql mysql-server php php-mysql
在网站主目录中生成一个php的测试网页:
# vim /var/www/html/a.php
phpinfo();
?>
保存退出。
然后在浏览器中输入server14.example.com/a.php就可以打开PHP的信息页面。
例题5:利用LAMP搭建一个bbs论坛。
这里用到的论坛程序是Discuz!,首先从服务器里下载Discuz!的压缩文件包Discuz_X2.5_SC_UTF8.zip,将之解压到网站主目录中:
# cd /var/www/html
# uzip Discuz_X2.5_SC_UTF8.zip
解压后会生成一个名为upload的目录,这是bbs的主目录,将之改名为bbs:
# mv upload bbs
重启数据库:
# service mysqld start
指定数据库的管理员及密码(注意,此root并不是Linux系统的根用户root)
# mysqladmin –u root password “123”
重启httpd服务:
# service httpd restart
在浏览器中输入“server14.example.com/bbs”,打开论坛的设置界面:
RHCE认证培训+考试七天实录(一)_第3张图片
 
检查安装环境,要保证所有项目都是绿勾:
 

RHCE认证培训+考试七天实录(一)_第4张图片

安装数据库,并设置管理员账户admin及密码:

 

RHCE认证培训+考试七天实录(一)_第5张图片

安装完成后,关闭浏览器,再次打开浏览器,在地址栏中输入“server14.example.com/bbs”,就可以正常打开论坛的首页,输入用户名admin及密码登录:

 

RHCE认证培训+考试七天实录(一)_第6张图片

进入“管理中心”,在“论坛”选项卡中可以对论坛中的版块进行设置:

 

RHCE认证培训+考试七天实录(一)_第7张图片

返回首页,就可以看到我们搭建好的论坛了:

 

RHCE认证培训+考试七天实录(一)_第8张图片