上一次讲到了网页浏览的背后流程,那么接下来我们就开始了解服务端的一些知识,为了理清思路,我会按照Apache--php脚本--mysql服务器--php与mysql服务连接的顺序来记录笔记。
关于Apache如何安装,网上有很多种教程,这里就不再一一赘述了,我用的是wamp sever。 wamp是一款一款windows系统下的Apache+PHP+Mysql集成环境整合包,这款工具拥有简单的图形和菜单安装和配置环境。安装起来也比较简单操作也比较简单。
安装好后开启为绿色小图标,右键单击这个图标就可以更改为中文。
一、Apache服务器
1.什么是Apache服务器?
其实这个概念很简单,Apache服务器就是指安装了Apache软件的电脑。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它自由开源,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。
Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
Apache是当前市场上最流行的服务器,它的市场占比大概在60%左右。
2.Apache的主配置文件
在安装好Apache后找到自己安装Apache的目录,点击进入。(在wamp中 apache,mysql,php都放在一起统一在文件名为bin的文件夹中)
在Apache内部找到文件名为conf的文件,Apache的主配置文件就在其中。
这个名为httpd.conf就是Apache的主配置文件。
找到这个主配置文件后,我们就可以安按照自己的要求来配置自己的服务器了。
当然了,光找到这个文件是不够的,我们还要简单的了解一下这个文件中需要配置哪些东西。
下面我们来讲在配置文件中我们可以修改哪些东西。
1. DocumentRoot 作用:设置网站根目录的指向,也就是你需要存放网站的目标文件夹。(在wamp中默认是www)
2.DirectoryIndex 作用:设置网站的默认首页,可以指定多个首页文件,多个首页之间用空格隔开。(当你在地址栏输入域名没有输入要访问的文件名,此时就会查找首页文件。如果找到首页,则执行并显示首页。如果没找到首页,则会显示目录列表。)如下图:
如果有网站根目录里有index.php文件则直接执行index.php,没有则直接执行index.php3,以此类推,如果图中四个都不存在,则显示目录列表。
3.<Directory/></Directory> 作用:设置网站根目录的外部访问权限,也就是说是否让别人访问你的服务器。
参数说明:
Options:指定服务器将启用哪些服务器特性。取值:none、All、Indexes
None:禁用启用服务器特性。
All:开启所有服务器特性。
Indexes:如果首页文件不存在,则显示目录列表。
Order:指定Allow(允许)和Deny(禁止)的执行顺序。
Deny:禁止哪些IP访问你的主机。
Allow:允许哪些IP访问你的主机。
如图:
设置后,如下图:
4.Listen 作用:监听本机上指定的ip地址和端口的访问。更该需要监听的ip地址和端口号即可。格式一般为(前面ip,后面端口):
。
如图:
二、配置本地虚拟主机
主机,就是类似电脑一样的设备,但是运行速度比个人电脑要快很多,当然一台真正的主机是非常昂贵的,为了资源的最大利用,主机运营商将一个真实的主机划分成很多个小的空间,把这些空间对外出租,每一个小的空间都具有完整的功能(如:www服务,ftp服务等),这些小的空间就叫做虚拟主机,另外每一个空间都可以绑定域名。
在这里 我们配置的是基于域名的虚拟主机,一个ip可以绑定多个域名。
虚拟主机的配置可以分为三步:
1.配置本地的DNS文件-----hosts(文件路径C:/windows/system64/drivers/hosts)
在hosts文件中配置ip地址和域名的对应关系,如图:
2.需要对Apache的主配置文件进行配置-----httpd.conf.
在文件中设置指定哪些ip和端口可以访问虚拟主机,其中ip地址必须是自己的网卡ip地址。
NameVirtualHost 命令是创建基于域名虚拟主机的一个重要命令,可以设置哪些ip地址可以访问定义的虚拟主机:
NameVirtualHost *:80;
在配置主机的时候,需要将外部的vhosts.conf中的配置内容,包涵到当前的主配置文件中来执行所以还要有一条命令:
include conf/vhosts.conf;
所以要在httpd.conf文件中添加或更改以下命令。
如图:
3. 配置vhosts.conf文件(跟httpd.conf文件在同一目录下,文件本身是没内容的)
vhost.conf文件的配置跟Apache主配文件的命令是一样的,也是给虚拟主机指定相应的网站跟目录,目录权限等等。
如图:
以上步骤做完,虚拟主机也就配置好了。
因为我也是刚开始学习php,有什么错误的地方请各位大牛能够指出,另附上自己做的思维导图: