<b>Linux(CentOS)下的apache服务器配置与管理</b>[Linux安全]
本文“<b>Linux(CentOS)下的apache服务器配置与管理</b>[Linux安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1、WEB服务器与Apache
1、web服务器与网址
2、Apache的历史
3、增补
http://www.netcraft.com/可以查看apache服务器的市场占据率
同时必须注意的是ngnix,正处于强势增长的上升期间,大有和apache一争天下的感受,真是后生可畏~~~
2、Apache服务器的管理号令
1、号令启动:service httpd start/stop/restart/reload/condrestart/status/configtest/graceful/help
2、脚本启动:/etc/init.d/httpd start/stop/.....
3、设为开机自动启动:ntsysv+空格键
3、Apache服务器的目录和文件
1、WEB站点目录
/var/www Apache站点文件的目录
/var/www/html 存放WEB站点的WEB文件
/var/www/cgi-bin CGI程序文件
/var/www/html/manual Apache WEB服务器手册
2、配置文件
.htaccess 基于目录的配置文件,.htaccess文件包含对它所在目录中文件的拜候掌握指令
/etc/httpd/conf/httpd.conf Apache WEB服务器配置文件目录
3、启动脚本
/etc/rc.d/init.d/httpd WEB服务器保护进程的启动脚本
/etc/rc.d/rc3.d/S85httpd 将运行级目录(/etc/rc3.d)衔接到目录/etc/rc.d/init.d中的启动脚本
4、利用文件
/usr/sbin 存放Apache WEB服务器程序文件和利用程序的位置
/usr/doc/ 安排Apache WEB服务器文档
/var/log/http 安排Apache 日记文件的位置
4、更多号令
1、查看Apache安装信息:apachectl -C
2、对Apache的配置文件举行语法查抄:apachectl -t
3、查看Apache编译配置参数:apachectl -V
4、查看Apache的编译模块:apachectl -l
5、httpd.conf配置文件
(一)基本配置
httpd.conf文件包含为下面三个部份:
1. 全局环境设置:掌握整个Apache服务器行为的部份(即全局环境变量)
2. 主服务器配置:定义主要大概默许服务参数的指令,也为全部虚拟主机供应默许的设置参数
3. 虚拟主机设置:虚拟主机的设置参数
此中,一行写不下利用“\”表示换行,除了选项的参数值外,全部选项指令不辨别大小写,“#”表示注释.
目前,我们来学习httpd.conf中的具体设置项:
1.设置相对根目录的途径
相对根目录普通是Apache存放配置文件和日记文件的地方,普通情形下相对根目录是"/etc/httpd",它普通包含conf和logs子目录,此时可以采取"ServerRoot"/etc/httpd""格局举行设置.
2.设置Apache监听的IP地址和端口号
Apache默许会在本机全部可用IP地址上的TCP 80端口监听客户端的恳求,可以利用Listen语句以便在某个指定地址和端口上监听恳求.比方设置服务器只监听192.168.0.94的80端口,则可以在httpd.conf中举行呼应的设置:Listen 192.168.0.94:80.假如需求更改端口号为8080,也可以采取"Listen 192.168.0.94:8080"之类的设置,但是此时通过网页浏览器拜候网站的时刻也必须在域名地址背面增添呼应的端口号,比方输入"http://192.168.0.94:8080"才可以举行拜候.注:我的虚拟机Linux的IP是192.168.0.94,windows的IP是192.168.0.225
3.设置网络管理员的电子邮件地址
当客户端计算机拜候服务器发生错误的时刻,服务器普通城市向客户端计算机返回错误提醒页面,为了便利办理错误,在这个网页中普通包含有管理员的电子邮件地址,此时可以采取ServerAdmin语句来设置管理员的电子邮件地址,比方"ServerAdmin xinyuan365@sohu.com".
4.设置服务器主机名称
为了便利Apache辨认服务器自身的信息,可以利用ServerName语句来设置服务器的主机名称.在ServerName语句中,假如服务器有域名则填写服务器的域名;假如没有域名,则填入服务器的IP地址.比方"ServerName 192.168.0.94:80".
5.设置主目录的途径
Apache服务器主目录默许途径为"/var/www/html",可以将需求公布的网页安排在这个目录中,同时也可以把主目录的途径改正成别的目录便于用户管理和利用.比方需求将Apache服务器主目录途径设置为"/home/lk/www",则可以在httpd.conf文件中举行呼应改正:DocumentRoot "/home/www".
6.设置默许文档
默许文档是指在网页浏览器中输入Web站点的IP地址大概域名显示出来的Web页面,也就是普通所说的主页.在缺省情形下,Apache的默许文档名为index.html,默许文档由DirectoryIndex语句举行定义,比方在httpd.conf中通过"DirectoryIndex index.html index.html.var"举行设置,此时可以将DirectoryIndex语句的默许文档名改正成其他文件.
假若有多个文件名,每个文件名之间必须用空格举行脱离,Apache会按照文件名的先后次序查找在DirectoryIndex语句中指定的文件名.假如能找到第1个则调用第1个,不然再探求并调用第2个,顺次类推.比方增添index.htm和index.php文件作为默许文档,则可以呼应改正httpd.conf文件为"DirectoryIndex index.html index.htm index.php index.html.var".
7.设置日记文件
日记文件关于用户查找系统弊端大概解析Web服务器运行情况非常重要,此时有两项重要设置内容.
(1)错误日记.错误日记记录了Apache在启动和运行时发生的错误,所以当Apache出错的时刻,应当首先查抄这个日记文件.普通错误日记的文件名为error_log,错误日记文件存放的位置和文件名可以通过ErrorLog参数举行设置.比方"ErrorLog logs/erroe_log".假如日记文件存放途径不是以"/"开首,则表示该途径是相关于ServerRoot目录的相对途径.
(2)拜候日记.拜候日记记录了客户端计算机全部的拜候信息,通过解析拜候日记可以知道客户机什么时刻拜候了网站的哪些文件等信息.普通拜候日记的文件名为access_log,拜候日记文件的存放位置和文件名可以通过CustomLog参数举行设置,比方"CustomLog logs/access_log combined".
在这个拜候日记设置中,combined指明日记利用的格局,在这个位置可以利用common大概combined.此中common是指利用 Web服务器广泛采取的普通尺度格局,这种格局可以被很多日记解析程序所辨认;combined是指利用组合记录格局,和common相比,combined的格局基本相同,只是多了引用页和浏览器辨认信息罢了.
8.设置默许字符集
AddDefaultCharset选项设置了服务器返回给客户端计算机的默许字符集,由于Apache服务器默许字符集为西欧(UTF-8),因此当客户端拜候服务器的中文网页时会呈现乱码现象.办理的办法是将语句"AddDefaultCharset UTF-8"改成"AddDefaultCharset GB2312",然后重新启动Apache服务器,中文网页便可以正常显示了.
(二)配置目录权限
1、定义目录特点
Apache拜候的每个目录可设置相关的服务和特点是答应或(和)不答应.(一样影响其子目录)
首先,设置"default"地址只有最基本的权限:
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
注意从目前开始必须拟定开启特别的权限,这样就不会产生意想不到的后果.请细心确认.
比方:
<Directory "D:/www_root">
#
# 此值但是: "None", "All", 或下列的组合: "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", 或 "MultiViews".
# 注意"MultiViews"必须明确指定--- "Options All"不包含此特点.
#
Options Indexes FollowSymLinks MultiViews
#
# 此项掌握目录中哪些.htaccess文件可覆盖.
# 答应值: "All"大概以下项的组合:"Options", "FileInfo",
# "AuthConfig", "Limit"
#
AllowOverride None
#
# 掌握哪些用户可此后服务器得到资料.
#
Order allow,deny
Allow from all
</Directory>
阐明:
allow和deny可以用于apache的conf文件大概.htaccess文件中(配合Directory, Location, Files等),用来掌握目录和文件的拜候受权.
所以,最常用的是:
Order Deny,Allow Allow from All注意“Deny,Allow”中间只有一个逗号,也只能有一个逗号,有空格城市出错;单词的大小写不限.上面设定的含义是先设定“先查抄禁止设定,没有禁止的全部答应”,而第二句没有Deny,也就是没有禁止拜候的设定,直接就是答应全部拜候了.这个主如果用来确保大概覆盖上级目录的设置,开放全部内容的拜候权.
按照上面的注释,下面的设定是无条件禁止拜候:
Order Allow,Deny Deny from All假如要禁止部份内容的拜候,其他的全部开放:
Order Deny,Allow Deny from ip1 ip2大概
Order Allow,Deny Allow from all Deny from ip1 ip2apache会按照order决意最后利用哪一条法则,比方上面的第二种方法,固然第二句allow答应了拜候,但由于在order中allow不是最后法则,因此还需求看有没有deny法则,于是到了第三句,符合ip1和ip2的拜候就被禁止了.注意,order决意的“最后”法则非常重要,下面是两个错误的例子和改正方法:
Order Deny,Allow Allow from all Deny from domain.org错误:想禁止来自domain.org的拜候,但是deny不是最后法则,apache在处理到第二句allow的时刻就已经匹配成功,根本就不会去看第三句.办理办法:Order Allow,Deny,背面两句不动,便可.
Order Allow,Deny Allow from ip1 Deny from all错误:想只答应来自ip1的拜候,但是,固然第二句中设定了allow法则,由于order中deny在后,所以会以第三句deny为准,而第三句的范围中又明显包含了ip1(all include ip1),所以全部的拜候都被禁止了.办理办法一:直接去掉第三句.办理办法二:
Order Deny,Allow Deny from all Allow from ip1小结:规律就是order deny,allow表示deny优先级低而allow优先级高,order allow,deny表示allow优先级低而deny优先级高.(三)成立虚拟目录 假如我们的网站建在了别的目录,比方/opt/www/lk下,是不是不在主目录/var/www/html下就不能拜候了呢?当然不是. 可以利用虚拟目录,让用户拜候到别的目录下的文件.虚拟目录是位于Apache主目录外的其他目录,普通我们通过为虚拟目录成立别名的方法来让web拜候.这样做一是安全;二是拜候简单,不用输入那么长的真是目录地址,而只用输入一个简单的别名就行;三是便于站点目录的移动,只要虚拟目录名不变,改变实际存放位置,不会影响web拜候的. 我们用Alias选项成立虚拟目录,如Alias /bbs/ "/opt/www/lk/"<Directory "/opt/www/lk/"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all</Directory>(四)举行用户认证 用户认证是网络安全中极其重要的一个部份,让想拜候指定网站的用户输入用户名和密码才能举行登录,起到了自然的安全屏障作用.Apache的安全认证在实际利用中也是很常见的.目前就通过一个例子演示假如在Apache服务器中实现用户认证的功效. 我们对上述的虚拟目录举行操作: Alias /bbs/ "/opt/www/lk/"<Directory "/opt/www/lk/"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all AuthType:Basic AuthName "welcome go home:" AuthUserFile /etc/httpd/authpwd Require user laoda laoer</Directory> 阐明: AuthType:定义了对用户认证的范例,常用的是mod_auth供应的Basic; AuthName:Web浏览器显示在输入用户名和密码框时的提醒文字; AuthUserFile:定义口令文件htpasswd的途径; Require user:定义了答应拜候的用户名单,名字间用空格脱离. 之后,成立authpwd文件用来保存密码,touch /etc/httpd/authpwd 接着,把用户名和密码写入文件(注意:第一次成立用户时利用-c参数,第二个用户被成立就没必要写了,不然会覆盖方才的用户): [root@localhost http]#htpasswd -c /etc/httpd/authpwd laoda New password: Re-type new password: Add password for user laoda[root@localhost http]#htpasswd /etc/httpd/authpwd laoer New password: Re-type new password: Add password for user laoer 目前service httpd restart,再用浏览器拜候这台linux的IP地址便可.(五)配置虚拟主机为了节俭费用和提高服务器的操纵效率,我们可以在一台机械上成立出多台“主机”.每个主机都能对外供应WEB服务,在外界看来是些差别的网站,但对服务器而言,其实看似差别的网站,其实它们都是运行于同一台主机之上的差别的虚拟主机罢了.若何配置虚拟主机呢?Apache的虚拟主机功效是非常强盛的,并且配置很简单.主要分为基于IP和基于域名的虚拟主机.我们先配置基于IP的虚拟主机吧.这此中也有两种挑选,你目前有多少个可用IP?假如你购置了不少IP,那么你可以给每个虚拟主机分配差别的IP,让他们利用相同的端口,这是其一.假如在这个IP欠缺的时代,你没哟那么多IP,只买了一个,那么你便可以利用一个IP地址加差别端口的方法,让差别的端口拜候差别的虚拟主机.1、IP地址相同,但端口号差别:目前我的CentOS上,只有一个IP:192.168.0.94,我想辨别利用8080和8081两个端口配置两个网站,编辑httpd.conf:Listen 8080Listen 8081<VirtualHost 192.168.0.94:8080>DocumentRoot /var/www/web1DirectoryIndex index.html index.htmHostNameLookups off</VirtualHost><VirtualHost 192.168.0.94:8081>DocumentRoot /var/www/web2DirectoryIndex index.html index.htmHostNameLookups off</VirtualHost>重启服务,便可.2、端口号相同,但IP地址差别,假定一个是94,一个是95:
<VirtualHost 192.168.0.94>
ServerName 192.168.0.94:80
DocumentRoot /var/www/web1
DirectoryIndex index.html index.htm
</VirtualHost>
<VirtualHost 192.168.0.95>
ServerName 192.168.0.95:80
DocumentRoot /var/www/web2
DirectoryIndex index.html index.htm
</VirtualHost>
假如本机只有一个网卡,那么就得在这一块网卡上绑定多IP:
ifconfig eth0:1 192.168.0.95
3、基于域名的虚拟主机
NameVirtualHost 192.168.0.94:
<VirtualHost www.web1.com>
ServerName www.web1.com:80
DocumentRoot /var/www/web1
DirectoryIndex index.html index.htm
</VirtualHost>
<VirtualHost www.web2.com>
ServerName www.web2.com:80
DocumentRoot /var/www/web2
DirectoryIndex index.html index.htm
</VirtualHost>
然后大家在,linux下的/etc/hosts文件大概windows下C:\WINNT\system32\drivers\etc\hosts文件中,加入
192.168.0.94 www.web1.com
192.168.0.94 www.web2.com
请大家注意,虚拟机配置发生改变后,一定要restart.
(六)加入PHP支持
这时,我们的APACHE只能支持静态的以HTML大概HTM末尾的文件,想要支持PHP还得举行以下操作:
#rpm -qa | grep php,查询本机能否已经安装了PHP程序,假如没有安装,则进入光盘中的CENTOS目录,在目录的空白处翻开终端:
#rpm -ivh php-common-5.1.6-20.el5.i386.rpm
#rpm -ivh php-cli-5.1.6-20.el5.i386.rpm
#rpm -ivh php-5.1.6-20.el5.i386.rpm
这时,在/var/www/html目录下新建一个ok.php脚本,写入以下内容:
在浏览器中输入“http://web服务器IP/ok.php”查看能否成功.
处于历史缘由,有些程序是以.php3或.php4为末尾的.我们需求在php的配置文件中举行改正,翻开/etc/httpd/conf.d/php.conf
改正“#AddType application/x-httpd-php-source .php”为“AddType application/x-httpd-php-source .php .php3 .php4”,要去掉#,在.php3/4前是有空格的
操练1:
自己在CentOS上利用服务器成立Web服务器,设置“/opt/自己名字的拼音”为新成立的虚拟目录,此虚拟目录别名是“exam”,在此虚拟目录下自己新建一个html文档名为“index.htm”,<body>中内容是“写入你自己的名字”.成立apache用户认证,增添两个用户user1(密码123456)和user2(密码654321),最后用浏览器拜候“ip/exam/:8080”便可以看到显示你名字的网页,便可.
操练2:
配置虚拟主机.考虑,若何配置一台虚拟主机,其上跑着四个网站,辨别是192.168.0.101跑web1,192.168.0.102跑web2,192.168.0.100上跑www.cba.com和www.nba.com两个网站.
以上是“<b>Linux(CentOS)下的apache服务器配置与管理</b>[Linux安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |