学习linux服务之apache

Linux搭建web站点的重要性大家应该都知道,看看那些知名的网站,哪个不是用Linux搭建的。为什么?安全、访问速度快是最主要的原因了。而大多数用到的软件就是apache了,因为apache在功能、性能和安全性方面的表现都是比较突出的,可以较好的满足Web服务器用户的应用需求。apache有两个版本:1.x和2.x,关于各版本的优缺点可以去百度一下,在此就不再啰嗦了,本文将以2.x版本为例进行讲解。
 
 
一:安装和启动httpd
 
·安装httpd服务
 
方法还是以前那样,首先查看系统中是否已经安装了httpd服务,如果没有放入第一张光盘,并安装以httpd开头的软件,如图所示:
 
 
·启动httpd服务
使用service httpd start命令启动httpd服务。不过在以后每次重启计算机后都得输入service httpd start命令启动httpd服务。输入ntsysv命令勾选httpd,这样重启计算机后自动启动httpd服务,类似与windwos下的服务管理器。
 
以前遇到过这样的问题,服务无法启动,查看错误日志时提示
(EAI 7)No address associated with hostname: mod_unique_id: unable to find IPv4 address of "51cto.com"           (51cto.com是我的服务器名称)
解决方法一:编辑/etc/hosts文件,修改127.0.0.1后的域名为51cto.com就可以启动apache服务了
解决方法二:编辑/etc/httpd/conf/http.conf文件,注释掉LoadModule unique_id_module libexec/apache2/mod_unique_id.so后可以启动apache服务。
 
·关闭系统防火墙
 
 
二:httpd配置文件
 
和windwos下的IIS相同,在安装完成后,需要设置相关选项。不过linux环境下是通过修改配置文件完成的。httpd的主配置文件是/etc/httpd/conf/httpd.conf,我们就是通过修改它来完善httpd服务的功能。
 
·基本全局参数
 
1>ServerRoot   用于设置服务器的根目录,默认位于“/etc/httpd”,一般不需要修改。服务器根目录用于存放apache的配置文件和日志文件等。位于文件的第56行(相对于redhat9系统来说)
小技巧:如果觉得一行行的往下翻麻烦,可在该文件的命令模式下输入56 ,再键入大写G,即可切换到该文件的56行处。
 
2>Listen       用于告诉服务器接收来自指定端口或指定地址的某端口的请求,如果Listen仅指定了端口,则服务器监听本机的所有地址;如果指定了地址和端口,服务器只监听来自该地址下该端口的请求。默认监听本机所有地址的80端口。位于文件的第156、157行
 
3>DocumentRoot  用于设置Web服务器的站点根目录,默认路径为“/var/www/html”,我们需将网页文件放在此目录下。(我在实验时在该目录下新建一default.html文件表示首页文件)位于文件的第289行
 
4>Directoryindex     用于设置站点主页文件的搜索顺序,各文件用空格分隔。是不是和windwos下有几分相像?呵呵。由于我的主页文件名为default.html,而默认情况下没有该记录,所以该行后手工输入default.html记录。位于文件的第408行
 
5>ServerName   设置服务器辨识自己的主机名和端口号,该设置仅用于虚拟主机的识别,关于虚拟主机会在后文中介绍。设置时输入自己的域名以及端口号。位于文件的第273行
 
6>ServerAdmin    设置管理员的E-mail地址。当服务器产生错误时,服务器返回给客户机的错误信息中包含该邮件地址,以告诉用户该向谁报告错误。位于文件的第259行
 
7>ErrorDocument     用于设置当遇到错误时,服务器将给客户端什么样的回应,通常是显示预设值的一个错误画面。位于文件的第176-210行。
 
 
8>User和Group     User用于设置服务器以那个用户身份响应客户端请求。Group设置由哪一组来响应用户需求,默认情况下为apache,我们可以更改为nobody,因为nobody权限最小。位于文件的第251、252行
 
 
·日志与性能全局参数
 
1>ErrorLog   设置服务器存放错误日志记录的位置和文件名。默认设置为logs/error_log,由于我们在全局参数中设置了服务器的根目录是/etc/httpd,所以以后我们查看apache的错误日志时找/etc/httpd/logs/error_log文件。位于文件第469行
 
2>CustomLog          设置服务器存放请求日志记录的位置和文件名。默认设置为/logs/access_log.查看方法与错误日志一致,位于文件第495行
 
3>MaxClients           设置服务器允许连接的最大客户机数,默认为150个,可以根据需求增加或减少。位于文件第112行
 
 
·容器与访问控制
 
1>容器指令简介
容器指令通常用于封装一组指令;使其在容器条件成立时有效。容器指令通常成对出现,例如:
<If Module mod_ssl.c>
Include conf/ssl.conf
</IfModule>
 
<IfModule>容器用于判断指定的模块是否存在,若存在则包含与其中的指令将有效。具体到此例:若mod_ssl模块存在,则用Include指令将conf/ssl.conf配置文件包含进当前的配置文件中。
除<IfModule>容器外,Apache还提供<Directory>、<Files>、<Location>、<VirtualHost>等容器指令。其中<virtualHost>用于定义虚拟主机;<Directory>、<Files>、<Location>等容器指令主要用来封装一组指令,使指令的作用域限制在容器指定的目录、文件或某个以URL开始的地址。
 
2>访问控制指令
主要有Allow、Deny和Order。其中Allow用于指定允许访问的主机,Deny用于知道拒绝访问的主机,Drder用于指定哪一个被先执行。若设置为Order allow,deny 表示主机没有被特别指出允许访问,则该主机将被拒绝访问该资源;设置为Order deny,allow表示主机没有被特别指出拒绝访问,则该主机将被允许访问该资源。
如<Directory "/var/www/html">
      Order allow ,deny
     allow  from   192.168.0.
   </Directory>
意思为只有192.168.0网段的客户机才有权访问/var/www/html目录,即默认站点。位于文件第340行
 
3>重启服务后,可以在客户机进行访问了。
 
 
 
 
三:建立系统个人用户主页
    
·用VI编辑器打开/etc/httpd/conf/httpd.conf文件,在文件372行找到UserDir disable,这条指令是拒绝用户访问宿主目录,我们在其前面加上“#”注释掉;在文件379行找到public_html,并去掉前面的“#”;然后将387----398行容器之间的“#”去掉,容器的意义大家都明白,中间的各参数的意义和全局参数相同,在这就不再说明了。
 
·编辑好配置文件后,我们需要新建一个人用户了。使用useradd命令新建用户,建好后需修改用户宿主目录的权限为711,否则权限太高对系统安全性造成威胁。最后在用户宿主目录下新建public_html目录(由于用户个人主页根目录为home/*/public_html),把用户的主页文件放入此目录。
 
·完成后重启服务,我们便可以在客户端访问了。访问时需在浏览器输入 [url]www.51cto.com/~test[/url]
 
 
四:建立虚拟主机
 
大家应该还记得windwos下的虚拟主机吧。没错,linux下虚拟主机跟windwos相同,也是通过3中方式:不同的IP、不同的主机头、不同的端口。下面我们依依介绍
 
·通过不同的IP建立两个站点
 
1>因为是基于不同的IP地址访问不同的站点,所以首先主机应该有两个IP地址。为主机添加一块网卡更好,如果没有两个网卡,可为单网卡绑定两个IP地址。 具体方法请点击此处。
2>接着就是配置虚拟主机了,在/etc/httpd/conf/httpd.conf文件末尾便是虚拟主机的配置。刚刚我们也介绍了容器<VirtualHost>就是用于定义虚拟主机,现在需要增加虚拟主机,所以应把容器<VirtualHost>以及中间参数前的“#”去掉,并将<VirtualHost>中的“*”改为192.168.0.178(另一个IP)。具体的参数代表的含义可参考全局参数配置的介绍,例如将DocumentRoot设置为/www,表示虚拟站点根目录设置为/www。
3>最后我们只要新建/www目录,并把主页文件放在/www目录下,重启httpd服务后客户端便可访问虚拟目录了。
 
 
·通过不同的主机头建立两个站点
 
1>由于第一个站点的域名为 [url]www.51cto.com[/url] ,所以此时我们需要设置第二个站点的域名为new.51cto.com,修改<VirtualHost>容器中的ServerName为new.51cto.com,并在全局设置中设置第一个站点ServerName为 [url]www.51cto.com[/url] (位于文件的273行)。
2>设置NameVirtualHost指令,该指令为一个基于域名的虚拟主机指定使用哪个IP地址和端口接收请求,只对域名虚拟主机有效。(位于文件的第1026行)
3>新建DNS记录,设置 [url]www.51cto.com[/url] 和new.51cto.com的IP地址都为192.168.0.10
4>建立/www目录,并把主页文件放在/www目录下,重启httpd服务后客户端便可访问虚拟目录了。
 
 
 
·通过不同的端口建立两个站点
 
1>由于第一个站点使用80端口,所以我们需修改<VirtualHost >中的IP地址以及端口号为192.168.0.10:8080.
2>同时我们还要更改服务器的监听方式,在前面我们设置服务器的监听方式为此计算机的所有地址的80端口,此时我们需增加服务器监听端口8080。
3>建立/www目录,并把主页文件放在/www目录下,重启httpd服务后客户端便可访问虚拟目录了。
 
 
 
 
 
 
 
 

本文出自 “.\Best” 博客,请务必保留此出处http://best0.blog.51cto.com/444987/106139

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值