学习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服务后客户端便可访问虚拟目录了。

 

 

 

 

 

 

 

 

转载于:https://blog.51cto.com/best0/106139

本文来源 互联网收集,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源,如您发现有涉嫌抄袭侵权的内容,请联系本站核实处理。

© 版权声明

相关文章