这边建议点击右上角“···”找到调整字体为最小的那个,可舒服观看
一、Web的基础概念?
讲Apache之前我们先了解一下Web的基础概念:HTML语言:超文本标记语言,使用html语言编写的文本叫超文本,“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。
HTTP协议:超文本传输协议,HTTP是使用统一资源标识符(URL)来建立连接和传输数据。是一个基于TCP/IP通信协议来传递数据的协议,属于应用层协议。URL:统一资源定位符,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。URL格式:
http://www.gaodashuai.com:80/index.html
知识拓展:URI:统一资源标志符,URI与URL都是定位资源位置的,就是表示这个资源的位置信息,就像经纬度一样可以表示你在世界的哪个角落。URI是一种宽泛的含义更广的定义,而URL则是URI的一个子集,就是说URL是URI的一部分。
二、Apache是什么?
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python/php等解释器编译到服务器中。
Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。数据解释一切,如下图(Statistics发布了由Netcraft提供的Web服务器市场的最新份额数据,并且细分出了“有多少网站在运行对应平台”、以及“实际Web服务器的数量”两个板块。)
三、Apache服务器的搭建
1.相关文件保存位置
服务目录:
/etc/httpd
配置文件位置:
/etc/httpd/conf/httpd.conf网页数据位置:
/var/www/html/日志文件位置:
/var/log/httpd/
访问日志:/var/log/httpd/access_log
错误日志:/var/log/httpd/error_log
2.配置文件详解
/etc/httpd/conf/httpd.conf,一定要自己去看文件加深印象
如下是文件中针对主机环境的基本配置参数
如下是文件中关于文档根目录及权限
3.基本搭建
(1)做本地yum源,先要在虚拟机中上指定挂载光盘并连接
(2)cd /etc/yum.repo.d
vim dvd.repo如下
创建一个挂载目录mkdir /iso
mount /dev/cdrom /iso后挂载成功
进行清源yum clean all
进行构建元数据yum makecache
进行软件的安装yum -y install httpd
(3)将firewalld服务与SElinux通通关掉
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭SELinux
setenforce 0
getenforce
(4) 我们进入/var/www/html写一个简单的个人信息的index.html的文件
配置保存后重启服务systemctl restart httpd
将虚拟机的IP地址写进浏览器中,会根据你的主配置默认的找到这个页面
四、常规设置Apache服务器实列
1.设置文档根目录和首页文件的实例
默认情况下,网站的文档根目录保存在/var/www/html中,如果想把保存网站的文档根目录放在另一个篮子里并且将首页文件修改为myweb.html,那该如何操作呢?
首先呢,文档的根目录是一个较为重要的设置,一般来说,网站上的内容都保存在文档根目录中。在默认情况下,处理记号和别名将改指它处以外,所有的请求都从这里开始。而打开网站时显示的页面机该网站的首页(主页)。首页的文件名默认DirectoryIndex字段来定义的,在默认情况下,Apache的默认首页名称为index.html。当然也可以根据实际情况进行更改。
(1)创建一个目录来作为接下来修改配置文件的指定文档根目录,并创建一个首页文件myweb.html
(2)去修改httpd主配置文件,将第119行用于定义网站数据的保存路径的参数DocumentRoot修改为/Gyq/www,同时将第124行用于定义目录权限的参数Directory后面的路径也修改为/Gyq/www,将164行修改为DirectoryIndex myweb.html index.html 在vim文本编辑器中显示行号,按“:”进入底行模式,输入set number(也可以使用在底行模式下,使用"/"进行字符串的查找)
vim /etc/httpd/conf/httpd.conf
修改前:
修改后:
(3)重启httpd服务,关闭防火墙,修改SElinux为Permissive。
(4)重启成功后,可以使用windows主机的浏览器去访问地址,区别于3中的访问。
2.用户的个人主页实例
如果我们想实现一个用户的个人主页,就拿腾讯的qq空间个人页面来说,拥有个人页面的好处,是为了更容易去管理属于用户自己的空间。Apache可以实现用户的个人主页。Client访问个人主页的URL地址的格式为:http://域名/~username
其中,"~uersname"在利用Linux系统中Apache服务器来实现时,是需要该用户存在于Linux系统(一样的,你要是没有一个QQ账户,哪能去用一个QQ空间嘛)
(1)首先去创建一个用户,为其设置密码并使其他用用户具有r和x的权限。
(2)创建存放用户个人空间的目录,并创建个人主页的默认首页文件
(3)进行配置文件(/etc/http/conf.d/userdir.conf)的修改
17行的UserDir disabled参数使用"#"去注释掉,表示让httpd服务开启个人主页功能。同时,把24行的UserDir public_html前的"#"去掉(这里的public_html对应我们创建的用户的默认首页目录,如果你的默认首页目录名写的别的,那你就修改这里的public_html为你的默认首页目录名)
vim /etc/httpd/conf.d/userdir.conf
修改前:
修改后:
(4)重启httpd服务,关闭防火墙,修改SElinux为Permissive。
(5)还是用windows主机的浏览器去做测试
3.虚拟目录的实列
已知我们把web应用放在Apache默认的hdocs目录下,Apache会自动的管理它。若我们想把web应用放在其他目录下, Apache仍然能够访问它,则需要用到Apache的虚拟目录功能。
虚拟目录是一个位于Apache服务器主目录之外的的目录,不包含在Apache服务器主目录中,但在访问Web的用户看来,它在位于主目录中的子目录是一样的,每一个虚拟目录都有一个别名,Clinet可以通过此别名来访问虚拟目录。
由于每个虚拟目录都可以分别设置不同的访问权限。所以非常适合不同用户对不同目录拥有不同权限的情况。
在Apache服务器的主配置问http.conf中,通过Alias指令去设置虚拟目录。
(1)创建一个物理的目录并在其之下创建虚拟的目录中的默认首页文件
而后去修改其他用户具有r和x权限
(2)修改/etc/httpd/conf/httpd.conf文件,插入以下语句
(3)重启httpd服务,关闭防火墙,修改SElinux为Permissive。
(4)继续使用windows主机的浏览器去做测试
五、虚拟主机的添加(重点)
虚拟主机在一台Web服务器上,可以为多个独立的IP地址、域名或端口号提供不同的Wcb站点。对于访问量不大的站点来说,这样做可以降低单个站点的运营成本。为了易于理解,我们使用图形化界面那
1.基于IP地址的虚拟主机
基于IP地址的虚拟主机的配置需要在服务器上绑定多个IP地址,然后配置Apache,把多个网站绑定在不同的IP地址上,访问服务器上不同的IP地址,就可以看到不同的网站。
(1)单击“应用程序" -→“系统工具"→“设置" → “网络" ,单击“+”。这样可以在一块网卡上配置多个IP地址,当然也可以直接在多块网卡上配置多个IP地址。
(2)分别创建/var/www/ip1和/var/www/ip2两个主目录和默认文件。
(3)添加配置文件/etc/httpd/conf.d/vhost.conf文件,向其中写入如下内容。
(4)重启httpd服务,关闭防火墙,修改SElinux为Permissive
(5)继续使用windows主机的浏览器进行测试。
(6)若是访问httpd服务程序显示的时默认首页面。尝试访问http://192.168.30.200/index.html页面时,页面中显示“Forbidden,You don't havepermission to access /index.html on this server."
那么便是因为主配置文件里没有设置目录权限所致,解决方法便是在/etc/httpd/conf/httpd.conf中添加有关两个网站目录权限的内容。
2.基于域名的虚拟主机
基于域名的虚拟主机的配置只需服务器有一个 IP地址即可,所有的虚拟主机共享同个IP,各虚拟主机之间通过域名进行区分。
要建立基于域名的虚拟主机,DNS服务器中应建立多个主机资源记录,使它们解析到同一个IP地址。
(1)分别创建/var/www/smile和/var/www/long两个主目录和默认文件
(2)修改httpd.conf文件,添加目录权限内容
(3)修改/etc/httpd/conf.d/vhost.conf文件。
(4)重启httpd服务,关闭防火墙,修改SElinux为Permissive
(5)安装DNS服务,为DNS配置正向区域配置文件,可参考之前我写的DNS篇。
(6)继续使用windows主机的浏览器测试
首先要将主机的DNS配置为DNS服务器的IP
在进行URL的输入进行测试
3.基于端口的虚拟主机
基于端口号的虚拟主机的配置只需服务器有一个IP地址即可,所有的虚拟主机共享同、个IP,各虚拟主机之间通过不同的端口号进行区分。在设置基于端口号的虚拟主机的配置时需要利用Listen语句设置所监听的端口。
(1)分别创建/var/www/8088和/var/www/8089两个主目录和默认文件
(2)修改主配置文件/etc/httpd/conf.d/httpd.conf
(3)修改/etc/httpd/conf.d/vhost.conf文件,在这里我们可以沿用域名,但是为了方便区分端口号只配置是一个域名就好了
(4)重启httpd服务,关闭防火墙,修改SElinux为Permissive
(5)继续使用windows主机的浏览器测试
(6)这里我们是直接关闭的firewall,但在生产环境中,firewall的策略还是很重要,有兴趣可以自己去深究一哈
六、小高有话说
关于Apache服务器配置还有很多,还有httpd服务的各类参数设置(网页超时设置,客户端连接数限制,设置管理员邮箱和网络编码设置等等),学海无涯啊,同志仍需努力。
这里附上配置与管理Web服务器的学习视频:http://www.proedu.com.cn/web/shareVideo/index.action?id=1049774&ajax=1