目前几乎所有的linux所有的发行版都捆绑了Apache,配置Apache服务,需要用到httpd包.可以使用下面命令,查看是否安装此包...
[root@station195 ~]# rpm -q httpd
package httpd is not installed
本地配置有yum源,直接使用此命令安装...
[root@station195 ~]# yum install httpd
主配置文件:/etc/httpd/conf/httpd.conf
网页目录:/var/www/html
服务脚本:/etc/rc.d/init.d/httpd
执行程序:/usr/sbin/htpd
访问日志:/var/log/httpd/access_log
错误日志:/var/log/httpd/error_log
http.conf配置文件主要由全局环境,主服务器配置和虚拟主机3个部分组成,配置语句可以放在文件中的任何地方,但为了增强文件的可读性,最好将配置语句放在相应的位置.所有选项指令均不区分大小写..Apache默认会在本机所有可用IP地址上的TCP 80端口监听客户端的请求.可以使用多个Listen语句,以便在多个地址和端口上监听请求.在做基于端口的虚拟主机的时候会用到...
serverRoot "/etc/httpd" apache服务的根...
Errorlog 路径 -->定义错误日志文件..
customlog 路径 -->定义访问日志文件..
serverAdmin EMAIL -->定义管理员的邮箱..
servername IP -->定义主机名称,如果服务器有域名,则填写其域名,如果没有则写其IP...
Timeout 连接超时..
keepalive 一次连接,多次请求,此选项默认是off可以置为on.
maxkeepaliveRequests 100 当下载资源超过100个时断开重新连一次.
keepalivetimeout 两次请求之间间隔不能超过15秒.
DocumentRoot -->定义网页存放的位置.
Allowoverride None 基于身份的验证...
options Indexes Multiviews -->
Indexes 索引..允许目录浏览,当访问不到页面时,会看到目录中的文件和子目录列表.
MultiViews 允许内容协商的多重视图..
All 包含了除MultiViews之外的所有特性,如果没有options语句,默认为All
ExecCGI 允许在该目录下执行CGI脚本..
FollowSymLinks 可以在该目录中使用符号链接.
Includes 允许服务器端包含的功能.
IncludesNoExec 允许服务器端包含功能,但禁止使用CGI脚本.
DirectoryIndex 这儿定义默认主页..
loglevel 日志级别.
细心的用户可能会发现虽然在主目录设置了Indexes权限,且主目录中并不存在默认文档,但访问时并不会出现目录列表,而只出现Apache的测试面.解决这个问题的方法是将位于/etc/httpd/conf.d目录下的welcome.conf文件删除重启Apache即可.
AddDefaultCharset 编码 -->定义服务器返回给客户机的默认字符集..默认是西欧(UTF-8),让其支持中文使用GB2312
最关键的一点Order allow,deny,没有写的规则默认是deny,如果allow中定义的和deny中定义的规则冲突,以默认deny为佳...
试验一: 我们去做个试验...建一个用户sandy,密码为redhat.允许发布个人站点.且试验过程中开启selinux.
[root@station195 conf]# vim httpd.conf
# UserDir disable
UserDir public_html
allowoverride none
options Indexes
order allow,deny
allow from all
[root@station195 ~]# cd /home/sandy;mkdir public_html;cd public_html
[root@station195 ~]# vim index.html
welcome sandy...
[root@station195 home]# chmod o+x sandy/
[root@station195 sandy]# ls -Zld public_html/ -->查看public_html的标签.
drwxr-xr-x root root root:object_r:user_home_t public_html/
[root@station195 sandy]# chcon -R -t httpd_sys_content_t public_html/ -->修改此目录标签.
[root@station195 ~]# service httpd restart
[root@station195 ~]# chkconfig httpd on
下面我们进行测试,在浏览器中输入就可以访问到网页了.....
每次访问时都要加个"~"符号,很烦人,我们可以去做个别名...
[root@station195 conf]# vim httpd.conf
Alias /sandy/ "/home/sandy/public_html/"
[root@station195 ~]# service httpd restart -->每次修改过配置文件都要重新启动服务器...
下面我们再次测试...在浏览器中输入就可以访问到站点了...
试验二: 基于密码验证....
[root@station195 conf]# vim httpd.conf
allowoverride Authconfig
options Indexes
order allow,deny
allow from all
[root@station195 ~]#cd /home/sandy/public_html;vim .htaccess
AuthName "my secret garden"
AuthType basic
AuthUserFile /etc/httpd/conf/.htpasswd
Require user natasha -->允许natasha用户访问.
[root@station195 ~]# htpasswd -cm /etc/httpd/conf/.htpasswd natasha -->创建natasha用户给其密码为redhat.记住在第一次创建用户的时候使用-cm选项,第二次创建用户时使用-m就可以了,因为第一次创建时已经把.htpasswd文件创建好了...
[root@station195 ~]# service httpd restart -->重新启动服务,这一步一定不要忘了.
下面去进行测试.在浏览器中输入 会出现一个输入用户名和密码的方框,我们输入natasha,密码redhat,然后就可以访问到sandy的个人站点了....so easy !
试验三: 虚拟主机.
虚拟主机目前有三种:一种是基于端口的,一种基于IP的,还有一种基于主机头的...
最常用的就是基于主机头的..基于IP的,会耗费大量资金,基于端口的访问起了非常的不方便...下面我们去建一个站点
[root@station195 ~]# cd /etc/httpd/conf;vim httpd.conf
#DocumentRoot "/var/www/html" -->这一步很重要,首先注释掉主机头...
NameVirtualHost *:80 -->打开监听的80端口.
serveradmin
DocumentRoot /var/www/www
Errorlog /var/log/httpd/www/err.log
customlog /var/log/httpd/www/custom.log combined
[root@station195 httpd]# cd /var/log/httpd;mkdir www
[root@station195 www]# cd /var/www/;mkdir www;cd www
[root@station195 www]# vim index.html
this is main web!
[root@station195 ~]# vim /etc/resolv.conf
192.168.0.195
由于我本地妹做DNS服务器.为达到试验效果.测试机器上在hosts文件中也得写入这么一句才行...
[root@station195 ~]# service httpd restart
下面进行测试....在客户机浏览器 测试结果是成功的...大家可以模仿着做试试...