一、  安装Apache服务器

安装命令:

yum install httpd -y

查询Apache软件包安装后的目录和文件位置可用命令:

rpm -ql httpd

启动服务:

systemctl start httpd

操作成功以后,可以查看到默认的首页

查看的命令为:

curl http://172.16.171.135        //注意要写成你自己的电脑IP

或者

curl http://127.0.0.1

如果你想建立一个自己的测试网页,可以写一个index.html文件,比如内容为文字: Hello!!

把这个文件放到目录  /var/www/html/中去,这里可以简单地使用vim 命令

vim /var/www/html/index.html

写入内容,存盘退出。

可以简单地直接用重定向命令写入文件,不必用vim编辑

echo    'Hello!!'    >  /var/www/html/index.html

再查看网页,就是你改写后的页面内容。

在字符模式下测试网页 ,你可以安装工具elinks  

yum install elinks -y

使用方法:

elinks http://www.baidu.com
elinks ftp://172.16.170.50
elinks 127.0.0.1

也可以:

elinks 回车

注意:http://可以省略,ftp://不可以

关闭按 ctrl-c

http://172.16.171.135                //访问

二、  建立个人主页

案例描述

在IP地址为172.16.0.135的Apache服务器中,为系统用

户useadmin设置个人主。该用户的家目录为/home/useadmin ,个人项

所在目录为html。


这里的IP 要改为你电脑的实际IP

1、首先我们要在linux操作系统上创建用户lily并且给它设置登录密码
useradd useadmin
passwd useadmin

下面我们查看一下home目录

ls /home

可以看到建立用户的同时,自动建立了用户的家目录 /home/useadmin

2、我们在lily家目录下创建一个子目录public_html用来存放个人主页
mkdir /home/useadmin/public_html
3、写主页文件index.html内容并修改处理文件权限

进入目录中去操作

cd  /home/useadmin/public_html

在当前目录下新建个人主页文件 index.html,文件的内容是文字:Lily's homepage.

这里当然可以用vim编辑工具来写,教科书提供了另外一种方法:

先介绍一下命令:

echo "useadmin's homepage."

echo可看成打印命令,这条命令是在屏幕上显示文字: "useadmin's homepage."

linux中的符号>是输出重定向符号,它把本来应该在屏幕上显示的内容输出到文件中去

比如  echo 显示内容 > 文件名

这也就是另一种向文件中写入内容的方法

echo "useadmin's homepage." > index.html

把文字 "useadmin's homepage."写入到 主页文件index.html中

写完后可以用命令 cat index.html 查看文件内容,可以用命令ls -l查看当前目录文件列表

Web服务器配置操作指南_IP

这里重点说一下文件权限:

文件权限是按rwx固定排列的,分别表示读、写、执行权限

没有权限的位置用-占位,比如r-x表示可读、不可写、可执行

   文件权限用十个符号标示:    -rw-r--r--

第一位标注文件是目录还是文件(文件是-,目录是d

后面的9位等分成3组-rw-r--r--

分别表示:

  拥有者 所属组 其他人 权限

上面的-rw-r--r--意思就是:

第一个 “-” 表示这是一个文件

 拥有者 权限为:rw-   可读、可写、不可执行

所属组  权限为:r--   可读、不可写、不可执行

 其他人 权限为:r--   可读、不可写、不可执行

我们可以使用命令查看目录 /home中的文件的属性

ls -l /home

本机上有两个普通用户,nczy和useadmin,在创建用户时会自动创建家目录,还创建一个用户组,组名字与用户名相同。用户对自己的家目录拥有读、写、执行权

我们现在是用root用户在操作,index.html这个文件是root用户建立的,所以文件拥有者是root,文件所属组也是root组,得把这些移交给用户useadmin,执行命令:

chown  useadmin:useadmin  index.html

接下来还要更改读写执行权限,执行命令:

chmod 755 index.html

命令解释:

更改读写执行权限,使用的八进制格式  

八进制           二进制         rwx权限 角色

  7            111 rwx 拥有者

  5       101 r-x 所属组

  5  101 r-x 其他人

上面的规律是1有权限、0无权限用-占位,经过修改后的权限为:

-rwxr-xr-x

给文件配置这种权限是比较适当的,文件所有者lily应该拥有全部读、写、执行权限,而与它同组的用户和其他用户不可写文件,也就是不能修改。它们可以访问网页(读和执行)。Linux对用户的身份和权限区分非常的严格,当网络上某一个无名的用户来访问useadmin的主页,用户的身份就属于其他人,你不给权限他就无法访问。

同样我们需要把用户lily整个家目录及其子目录的权限移交给lily,并开放给别人访问。

chown useadmin:useadmin -R /home/useadmin

解释:

之所以要做这一步是因为我们现在是用root用户在操作,我们建立的文件及目录都属于root用户,比如我们先前建立的public_html,虽然在lily的家目录之下,但它却没有访问权。所以要移交权限,这里用 -R 选项,表示包含的所有子目录的权限都要修改。

下面还要给其它用户一些访问权限。同样也要将包含的所有子目录的权限都修改

chmod 755 -R /home/useadmin
4、修改文件userdir.conf启用个人主页功能 
vim /etc/httpd/conf.d/userdir.conf

需要修改的地方有两处,修改后如图所示:

Web服务器配置操作指南_html_02

配置修改好以后,可以用命令检查错误

httpd -t

出现 Syntax OK表示语法正确,但不等于配置正确,只是没有语法错误。有问题会显示在哪里。

5、重启httpd服务
systemctl restart httpd
6、测试网页
elinks 172.16.171.135/~useadmin             (IP请改成你自己本机的IP)

提示:

如果在测试网页时出现错误,或者希望从其它电脑上访问网页,请处理防火墙和SELinux

关闭防火墙:

systemctl stop firewalld.service

处理SELinux:

setenforce 0
setsebool -P httpd_enable_homedirs=on

注意:上面的设置都是为了实验临时做的设置,如果重启系统就失效。

三、  创建虚拟目录              

使用虚拟目录可以隐藏真实目录结构,提高系统安全性。另外,虚拟目录也可以方便磁盘空间的分配,提高磁盘空间管理的灵活性。此外,还可以缩短访问路径长度,便于目录访问。

案例描述

在IP地址为172.16.171.135的Apache服务器中创建名为

/vfolder的虚拟目录,它对应的物理路径是/var/tfolder.

案例分析

在httpd.conf配置文件中, 模

块中Alias语句用来将网络路径映射到真实路径,从而实现虚拟

目录功能。

这里的IP 要改为你电脑的实际IP

1、建立目录/var/tfolder。
mkdir /var/tfolder
2、在目录/var/tfolder下建立网页文件index.html并写入内容
echo "Virtual directory sample." >> /var/tfolder/index.html
3、编辑修改配置文件 /etc/httpd/conf/httpd.conf
vim /etc/httpd/conf/httpd.conf

需要修改的地方如下:

  将下面的文本插入文件中:

Alias /vfolder /var/tfolder
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all


Web服务器配置操作指南_vim_03


4、重启httpd服务
systemctl restart httpd
5、测试网页  
elinks 172.16.171.135/vfolder/                (IP请改成你自己本机的IP)

四、  配置虚拟主机

                                                                                                                                                                                                                                                                                                                                                                                                                   前面的操作配置了个人主页,这种方式适合为一台linux机上的多个用户单独建立个人主页,而配置虚拟目录则适合为一个网站下的多个部门建立子网页。

现在我们希望在一台主机上建立多个不同的独立网站,实现一机多用,这就需要配置虚拟主机。要实现这一目的,可以有三种方式。

1、  基于多个不同的IP来建立多个网站

  一台电脑上可以有多个IP,在一块网卡上是允许设置多个IP的,不过我的电脑上本来就有两块网卡,一块的IP是192.168.2.1,另一块连接互联网的IP为172.16.171.xx,现在就尝试在这两块网卡上分别建立独立的网站。

(1)  准备好两个网站的页面
网站	    存放位置	主页名字		主页文字内容		域名         
web1       /var/web1	index.html	    nczy1		www.web1.com
web2       /var/web2	index.html	    nczy2		www.web2.com

用如下命令创建:

mkdir /var/web1
mkdir /var/web2
echo "nczy1" > /var/web1/index.html
echo "nczy2" > /var/web2/index.html
(2)  新建错误记录error.log文件

用如下命令创建:

mkdir -p /var/log/httpd/www.web1.com/
mkdir -p /var/log/httpd/www.web2.com/
touch /var/log/httpd/www.web1.com/error.log
touch /var/log/httpd/www.web2.com/error.log
(3)   编辑文件 /etc/httpd/conf.d/httpd-vhosts.conf 
vim /etc/httpd/conf.d/httpd-vhosts.conf
DocumentRoot /var/web1

DocumentRoot /var/web2

文件中输入的内容如上

(4)  重启httpd服务
systemctl restart httpd
(5)  测试网页
elinks 172.16.171.135
elinks 192.168.2.1

我们会发现不能访问192.168.2.1这个网址,因为这个IP不存在

Web服务器配置操作指南_vim_04

我们现在来添加一个IP (同一块网卡可以设置绑定多个IP

上面的两个IP做成的网页,从电脑只能访问http://172.16.171.135

另一个网页的IP为192.168.2.1,与电脑不在同一个网段,不能访问,你需要设置路由或者通过iptables设置NAT来实现访问。

2、  基于多个不同域名来建立多个网站

前面使用多个IP在一台服务器上建立多个网站,但IP资源有限,我们一般会用一个IP对应多个不同的域名来建立多个网站。

网站	    存放位置	主页名字		主页文字内容	域名         
web1       /var/web1	index.html	    nczy1	www.web1.com
web2       /var/web2	index.html	    nczy2	www.web2.com
(1)解析域名

用域名服务器来配合工作,就是解析出下面这样的结果:

网站	域名				IP地址		
www.web1.com       	172.16.171.135	
www.web2.com       	172.16.171.135

也就是多个域名,对应同一个IP,这样就能把多个网站建在一个服务器上,输入不同的域名登录不同的网站,但它们都在同一个IP上。

你可以在前面的DNS服务器上去添加记录进行解析,那个是正规的方法,这里我们用简化的方法来实验。

vim /etc/hosts

Web服务器配置操作指南_vim_05

注意:这里的IP改成你自己的电脑IP

在 /etc/hosts文件中写入两行解析(这种仅限自己用,别人是访问不了的)

下面用命令测试解析

ping www.web1.com
ping www.web2.com


看看能不能够解析成功。

 (2)编辑文件 /etc/httpd/conf.d/httpd-vhosts.conf
vim /etc/httpd/conf.d/httpd-vhosts.conf

添加下面的内容:

DocumentRoot /var/web1
ServerName www.web1.com
DocumentRoot /var/web2
ServerName www.web2.com

这里面同样标明了虚拟主机的IP和网站根目录位置,增加了域名,IP相同。

(3)重启httpd服务
systemctl restart httpd
(4)测试网页
elinks www.web1.com
elinks www.web2.com

3、  基于多个不同端口来建立多个网站

案例描述

假设Apache服务器IP地址为172.16.171.135 ,现需要创建基

于8085和8086端口的两个虚拟主机。


案例分析

为了使用端口区分两个虚拟主机,首先需要在httpd.conf

文件中使用Listen指令开启8085和8086端口的监听,然后分

别设置两个通过virtualhost标签分别设置两个虚拟主机。

IP还是用自己电脑的实际IP,网站用前面已经建立的那两个,在IP不变的情况下,配上不同的端口去访问网站,用8085端口访问web1网站,8086端口访问web2网站

(1)  修改主配置文件httpd.conf
vim /etc/httpd/conf/httpd.conf

Web服务器配置操作指南_html_06

Listen 8085 和 Listen 8086两条指令开启监听8085和8086端口,原来是只监听80默认端口

(2)  编辑文件 /etc/httpd/conf.d/httpd-vhosts.conf
vim /etc/httpd/conf.d/httpd-vhosts.conf

添加下面的内容

DocumentRoot /var/web1
DocumentRoot /var/web2

这里面同样标明了虚拟主机的IP和网站根目录位置,IP相同,增加了端口号。

(3)  重启httpd服务
systemctl restart httpd
(4)  测试网页
elinks 172.16.171.135:8085
elinks 172.16.171.135:8086

这里可以看出,这种方法访问网站要在IP后面带上端口号,不太方便,以上三种方法中,比较好的方法还是域名访问。

最后再来总结介绍一下配置文件的结构,主配置文件是/etc/httpd/conf/httpd.conf在它最后有一行:  IncludeOptional conf.d/*.conf   

其中的Include 就是包含,Optional 是选项,conf.d/*.conf 的意思是/etc/httpd/conf.d/目录下的*.conf文件(注意它用的是相对路径,我们加上了主目录,表示成了绝对路径),那么整个意思就是:/etc/httpd/conf.d/目录下的所有.conf文件都会包含到主文件中来。也就是说,你的文件名只要是.conf结尾,随便取个名字,放到/etc/httpd/conf.d/目录,就会被读入到主配置文件中。这样你就不必把所有内容都往主配置文件中写,而是拆分成多个文件,取不同的名字,方便识别和分类管理。我们前面的文件 /etc/httpd/conf.d/httpd-vhosts.conf就是自己编的一个名字,当然你也可以给三种虚拟主机各编一个文件名分别写,而不必全部写在一个文件中,它们通通都会被加入。

另外配置文件中也可以把 某些相同部分适当合并


ServerAdmin admin@web2.com
  DocumentRoot /var/web2
  ServerName www.web2.com
  ErrorLog /var/log/httpd/www.web2.com/error.log