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