http://www.apache.org
1、概述
(1)WEB服务器也称为WWW(WORLD WIDE WEB,万维网)服务器,主要功能是提供
网上信息浏览服务。
(2)常用web服务器
PHP:httpd(Apache)、nginx
tomcat:jsp+html
win:IIS
客户端:IE、firefox、chrome、手机(浏览器)browser
(3)端口
[root@server1 Desktop]# vim /etc/services
80:http
443:https
2、安装
[root@server1 Desktop]# yum install -y httpd-y
或:
httpd-2.2.15-29.el6_4.x86_64.rpm #apache服务的主程序包
httpd-devel-2.2.15-29.el6_4.x86_64.rpm #apache开发程序包
httpd-manual-2.2.15-29.el6_4.noarch.rpm #Apache手册文档
[root@server1 Desktop]# yum install -yhttpd-devel
如果在Xshell中检测apache服务,则需要安装以下软件包:
[root@server1 Desktop]# yum install elinks –y #安装字符界面下浏览器的客户端
##测试
[root@server1 Desktop]# elinks192.168.18.129
[root@server1 Desktop]# service httpd start
[root@server1 Desktop]# netstat -antup |grep 80
tcp 0 0 :::80 :::* LISTEN 2624/httpd
3、实战演练
例1:搭建一台测试web服务器
要求:部门内部搭建一台web服务器,采用的IP地址和端口为192.168.18.129:80,首页采用index.html文件。管理员E-mail地址为test@zhang.cn,网页编码类型采用UTF-8,网站资源存放在/var/www/html目录下,并将apache的配置文件根目录设置为/etc/httpd目录。
(1)安装服务器
[root@server1 Desktop]# yum install -yhttpd -y
(2)编辑配置文件
修改配置文件相关参数:
57 ServerRoot "/etc/httpd" #apache配置文件的根目录
70Timeout 60 #超时时间
136Listen 80 #监听端口
262ServerAdmin root@localhost #设置管理员e-mail地址
276ServerName 192.168.18.129:80 #服务器主机名
292DocumentRoot "/var/www/html"#网站页面根目录
302<Directory />
303 Options FollowSymLinks #当一个目录没有默认首页时,允许显示此目录列表
304 AllowOverride None
305</Directory>
402DirectoryIndex index.html index.html.var #指定默认首页
[root@server1 ~]# service httpd restart
#测试
650) this.width=650;" title="1.png" alt="wKiom1moqd_iR8r0AADfN0V7Ur8909.png" src="https://s2.51cto.com/wyfs02/M02/05/A0/wKiom1moqd_iR8r0AADfN0V7Ur8909.png" />
#取消默认显示页面
[root@server1 ~]# vim/etc/httpd/conf.d/welcome.conf
将文件内容注释掉
[root@server1 ~]# service httpd restart
再次刷新网页,会出现以下界面:
650) this.width=650;" title="2.png" alt="wKiom1moqfiAvYUZAABasMMsSGQ454.png" src="https://s4.51cto.com/wyfs02/M00/05/A0/wKiom1moqfiAvYUZAABasMMsSGQ454.png" />
#创建首页
[root@server1 ~]# echo ‘welcome towww.zhang.cn!‘ > /var/www/html/index.html
[root@server1 ~]# service httpd restart
再次刷新页面,出现以下界面:
650) this.width=650;" title="3.png" alt="wKioL1moqiqi_iK0AAAz9Llm_7A769.png" src="https://s1.51cto.com/wyfs02/M01/A4/51/wKioL1moqiqi_iK0AAAz9Llm_7A769.png" />
例2:搭建LAMP环境
[root@server1 ~]# yum install -y httpdmysql-server php php-mysql
[root@server1 ~]# /etc/init.d/mysqld start
#测试mysql
[root@server1 ~]# mysql
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
mysql> exit
#测试php
[root@server1 ~]# cat/var/www/html/index.php
<?php
phpinfo();
?>
[root@server1 ~]# /etc/init.d/httpd restart
650) this.width=650;" title="4.png" alt="wKiom1moqnqzdcbWAAC-aQuKwMQ566.png" src="https://s2.51cto.com/wyfs02/M01/05/A0/wKiom1moqnqzdcbWAAC-aQuKwMQ566.png" />
例3:修改根目录及对应参数,设置访问权限
[root@server1 ~]# cd /var/www/html/
[root@server1 html]# mkdir bbs
[root@server1 html]# cp -r /boot/grub/ bbs/
[root@server1 html]# /etc/init.d/httpdrestart
#测试
[root@server1Desktop]# vim /etc/httpd/conf/httpd.conf
292 DocumentRoot"/var/www/html/bbs"
317 <Directory"/var/www/html/bbs"> #子目录会继承这个目录的属性
331 Options Indexes FollowSymLinks #目录浏览;可以用连接
338 AllowOverride None
343 Order allow,deny
344 Allow from 192.168.18.0/24 #从哪里来的允许
345 #Deny from 192.168.18.0/24 #从哪里来的拒绝
346
347 </Directory>
#allow,deny都会读取,如果有冲突和未说明的时候按照order选项逗号后面的那个为准,谁写在后面,谁的优先级高。
[root@server1 Desktop]# service httpd restart
650) this.width=650;" title="5.png" alt="wKioL1moqyHBdFs2AABVW_n6IUg074.png" src="https://s2.51cto.com/wyfs02/M02/A4/51/wKioL1moqyHBdFs2AABVW_n6IUg074.png" />
当第345行加上后,刷新后出现以下界面:
650) this.width=650;" title="6.png" alt="wKiom1moq1PA4PALAABHt_Y693Q033.png" src="https://s1.51cto.com/wyfs02/M00/05/A0/wKiom1moq1PA4PALAABHt_Y693Q033.png" />
例4:别名,虚拟目录
作用:引用网站根目录以外的网站
[root@server1 Desktop]# vim/etc/httpd/conf/httpd.conf
343 Order allow,deny
344# Allow from 192.168.18.0/24
345# Deny from 192.168.18.0/24
563<Directory "/usr/local/phpmyadmin">
564 Options -Indexes FollowSymLinks
565 AllowOverride None
566 Order deny,allow
567 Allow from 192.168.18.129
568 Deny from all
569</Directory>
[root@server1 Desktop]# mkdir/usr/local/phpmyadmin/
[root@server1 Desktop]# cp/var/www/html/index.html /usr/local/phpmyadmin/
[root@server1 Desktop]# /etc/init.d/httpdrestart
#测试
650) this.width=650;" title="7.png" alt="wKiom1moq2yxXuWfAAAqbqZ_BZg949.png" src="https://s2.51cto.com/wyfs02/M00/05/A0/wKiom1moq2yxXuWfAAAqbqZ_BZg949.png" />
例5:当一个目录下没有默认首页时,访问http://192.168.18.129/phpmyadmin/禁止显示默认目录列表
(1)不安全情况
[root@server1 Desktop]# cd/usr/local/phpmyadmin/
[root@server1 phpmyadmin]# ls
index.html
[root@server1 phpmyadmin]# rm -fr index.html
[root@server1 phpmyadmin]# touch 1.html
[root@server1 phpmyadmin]# cp -r/boot/grub/ /usr/local/phpmyadmin/
[root@server1 phpmyadmin]# ls
1.html grub
[root@server1 phpmyadmin]# vim/etc/httpd/conf/httpd.conf
563<Directory "/usr/local/phpmyadmin">
564 Options Indexes -FollowSymLinks
565 AllowOverride None
566 Order deny,allow
567 Allow from 192.168.18.129
568 Deny from all
569</Directory>
[root@server1 phpmyadmin]#/etc/init.d/httpd restart
#测试
650) this.width=650;" title="8.png" alt="wKioL1moq3GyICz_AABuNxBiDDg384.png" src="https://s3.51cto.com/wyfs02/M00/A4/51/wKioL1moq3GyICz_AABuNxBiDDg384.png" />
(2)安全情况
563<Directory "/usr/local/phpmyadmin/">
564 Options -Indexes FollowSymLinks
565 AllowOverride None
566 Order deny,allow
567 Allow from 192.168.18.129
568 Deny from all
569</Directory>
[root@server1 ~]# /etc/init.d/httpd restart
#测试
650) this.width=650;" title="9.png" alt="wKiom1moq6DSkL8MAABHQrEes90001.png" src="https://s3.51cto.com/wyfs02/M01/05/A0/wKiom1moq6DSkL8MAABHQrEes90001.png" />
650) this.width=650;" title="10.png" alt="wKioL1moq66w_DatAABmO2HQfHI960.png" src="https://s3.51cto.com/wyfs02/M02/A4/51/wKioL1moq66w_DatAABmO2HQfHI960.png" />
可以发现:-Indexes,表示目录下没有默认首页时,禁止显示目录
例6:打开软连接功能,通过软连接直接引用网站根目录以外的内容
[root@server1 ~]# mkdir /web2
[root@server1 ~]# echo test1 >/web2/a.html
[root@server1 ~]# ln -s /web2/ /var/www/html/web2
[root@server1 ~]# vim/etc/httpd/conf/httpd.conf
打开FollowSymLininks参数
#测试
http://192.168.18.129/
会发现出现web2目录
例7:通过用户认证的方式,对网站下/usr/local/phpmyadmin/目录进行保护。/usr/local/phpmyadmin/目录,只能通过用户名和密码的方式进行访问。
恢复为以下配置:
[root@server1 ~]# vim /etc/httpd/conf/httpd.conf
563<Directory "/usr/local/phpmyadmin/">
564 Options Indexes FollowSymLinks
565 AllowOverride None
566 Order deny,allow
567 Allow from all
568</Directory>
[root@server1 ~]# /etc/init.d/httpd restart
#测试
650) this.width=650;" title="11.png" alt="wKiom1moq-2jWppfAABsGogtCeU820.png" src="https://s3.51cto.com/wyfs02/M00/05/A0/wKiom1moq-2jWppfAABsGogtCeU820.png" />
方法一:
[root@server1 ~]# vim /etc/httpd/conf/httpd.conf
650) this.width=650;" title="12.png" alt="wKioL1moq-XziVvNAABHz6t_3KY887.png" src="https://s3.51cto.com/wyfs02/M00/A4/51/wKioL1moq-XziVvNAABHz6t_3KY887.png" />
[root@server1 ~]# htpasswd -cm/etc/httpd/conf/passwd.secret tom
New password:
Re-type new password:
Adding password for user tom
[root@server1 ~]# htpasswd -m /etc/httpd/conf/passwd.secretbob
New password:
Re-type new password:
Adding password for user bob
[root@server1 ~]# cat/etc/httpd/conf/passwd.secret
tom:$apr1$BAHUtWCb$Ctm2kg5DdXFZV2qPAPPR51
bob:$apr1$7VX2sDiT$lq6kyWoiu/68aAH7P4Lb0/
[root@server1 ~]# /etc/init.d/httpd restart
#测试
650) this.width=650;" title="13.png" alt="wKiom1morfHg3aBmAABsvFGKo2g808.png" src="https://s1.51cto.com/wyfs02/M00/05/A0/wKiom1morfHg3aBmAABsvFGKo2g808.png" />
650) this.width=650;" title="14.png" alt="wKioL1morf7y1MB5AABtscnATRo252.png" src="https://s3.51cto.com/wyfs02/M02/A4/51/wKioL1morf7y1MB5AABtscnATRo252.png" />
方法二:
[root@server1 ~]# vim/etc/httpd/conf/httpd.conf
[root@server1 ~]# vim/usr/local/phpmyadmin/.htaccess
[root@server1 ~]# cat/usr/local/phpmyadmin/.htaccess
authtype basic
authname "hello world..."
authuserfile /etc/httpd/conf/passwd.secret
require valid-user
[root@server1 ~]# htpasswd -cm/etc/httpd/passwd.secret tom
New password:
Re-type new password:
Adding password for user tom
[root@server1 ~]# htpasswd -m/etc/httpd/passwd.secret pop
New password:
Re-type new password:
Adding password for user pop
[root@server1 ~]# cat/etc/httpd/passwd.secret
tom:$apr1$fQNh06Oc$53CTIqQ3PCnHY05VaBpuO.
pop:$apr1$uRIwnTht$FRh1i3wIhgihustGMRyOI1
[root@server1 ~]# service httpd restart
#测试
650) this.width=650;" title="15.png" alt="wKiom1morzfzyig_AABxA3dWv8M027.png" src="https://s5.51cto.com/wyfs02/M01/05/A0/wKiom1morzfzyig_AABxA3dWv8M027.png" />
例8:配置apache虚拟主机,实现在一台服务器上运行多个网站
Apache虚拟主机实现有三种方法:
(1)通过不同的IP地址;
(2)通过不同的域名;
(3)通过不同的端口号;
三种方法都需要打开虚拟主机功能
1000 NameVirtualHost *:80
方法1:通过不同的IP地址,解析不同域名
[root@server1 ~]# ifconfig eth0:1192.168.18.220 netmask 255.255.255.0
[root@server1 ~]# ls /var/www/html/bbs/
grub
[root@server1 ~]# echo ‘bbs.zhang.cn‘ >/var/www/html/bbs/index.html
[root@server1 ~]# ls /var/www/html/
bbs index.html index.php rhel6.5 web2
[root@server1 ~]# vim/etc/httpd/conf/httpd.conf
1020 <VirtualHost 192.168.18.129:80>
1021 ServerAdmin webmaster@dummy-host.example.com
1022 DocumentRoot /var/www/html/
1023 ServerName dummy-host.example.com
1024 ErrorLog logs/dummy-host.example.com-error_log
1025 CustomLog logs/dummy-host.example.com-access_log common
1026 </VirtualHost>
1027 <VirtualHost 192.168.18.220:80>
1028 ServerAdmin webmaster@dummy-host.example.com
1029 DocumentRoot /var/www/html/bbs/
1030 ServerName dummy-host.example.com
1031 ErrorLog logs/dummy-host.example.com-error_log
1032 CustomLog logs/dummy-host.example.com-access_log common
1033 </VirtualHost>
[root@server1 ~]# /etc/init.d/httpd restart
#测试
650) this.width=650;" title="16.png" alt="wKioL1morzeytRWdAABwuTUBfeg145.png" src="https://s4.51cto.com/wyfs02/M01/A4/51/wKioL1morzeytRWdAABwuTUBfeg145.png" />
再访问192.168.18.220,会出现测试页面
方法2:通过不同的域名解析同一个IP地址
[root@server1 ~]# vim/etc/httpd/conf/httpd.conf
1034 <VirtualHost *:80>
1035 ServerAdmin webmaster@dummy-host.example.com
1036 DocumentRoot /var/www/html/
1037 ServerName www.example.com
1038 ErrorLog logs/www.example.com-error_log
1039 CustomLog logs/www.example.com-access_log common
1040 </VirtualHost>
1041 <VirtualHost *:80>
1042 ServerAdmin webmaster@dummy-host.example.com
1043 DocumentRoot /var/www/html/bbs/
1044 ServerName bbs.example.com
1045 ErrorLog logs/bbs.example.com-error_log
1046 CustomLog logs/bbs.example.com-access_log common
1047 </VirtualHost>
[root@server1 ~]# vim /etc/hosts
192.168.18.129 server1.example.com
192.168.18.129www.example.com
192.168.18.129bbs.example.com
[root@server1 ~]# /etc/init.d/httpd restart
#测试
[root@server1 ~]# elinks 192.168.18.129
[root@server1 ~]# elinks www.example.com
[root@server1 ~]# elinks bbs.example.com
方法3:基于端口配置虚拟主机
[root@server1 ~]# vim/etc/httpd/conf/httpd.conf
136 Listen 80
137 Listen 81
1034 <VirtualHost *:80>
1035 ServerAdmin webmaster@dummy-host.example.com
1036 DocumentRoot /var/www/html/
1037 ServerName www.example.com
1038 ErrorLog logs/www.example.com-error_log
1039 CustomLog logs/www.example.com-access_log common
1040 </VirtualHost>
1041 <VirtualHost *:81>
1042 ServerAdmin webmaster@dummy-host.example.com
1043 DocumentRoot /var/www/html/bbs/
1044 ServerName bbs.example.com
1045 ErrorLog logs/bbs.example.com-error_log
1046 CustomLog logs/bbs.example.com-access_log common
1047 </VirtualHost>
[root@server1 ~]# /etc/init.d/httpd restart
#测试
http://192.168.18.129/
http://192.168.18.129:81/
本文出自 “12025595” 博客,转载请与作者联系!
8.Apache服务器
原文地址:http://12035595.blog.51cto.com/12025595/1961592