mysql执行原理与虚拟主机配置

 

mysql执行原理

mysql执行原理与虚拟主机配置_第1张图片

mysql客户端有多种:

  1. cmd命令行
  2. php网页文件
  3. navicat文件

虚拟主机配置

端口监听

端口:一个数字,让一台电脑(对外只有一个IP)能够对外提供多项服务(多种功能)。

  1. web服务:80
  2. ftp服务:21
  3. 邮件收取服务:110
  4. 邮件发送服务:25
  5. mysql数据库服务:3306

一台电脑有6万多个端口,但通常一台服务器只提供几个或10几个服务

原有配置:

mysql执行原理与虚拟主机配置_第2张图片

表明提供web服务,换一个端口发现无法提供web服务,如下:

mysql执行原理与虚拟主机配置_第3张图片

主机配置关键项

主机(虚拟主机,也叫web站点):指一个可以通过浏览器并使用某个域名进行访问的“web应用”

主机(站点)核心:

  • 主机名:ServerName "主机名"
  • 主机的实际文件夹位置:Document "站点的实际完整路径"

apache的作用:“转换角色”:将当前电脑中的某个文件夹,对外以某个域名(站点)的方式展现出来。换而言之:站点的本质就是一个文件夹。

当一个请求通过域名解析(在hosts文件中能匹配)并进入到当前apache并端口匹配成功后,apache就会开始提供“服务”

  1. 在站点设置中找ServerName项,看是否匹配请求中的主机名
  2. 如果找到,在对应的目录中(documentRoot配置项)中找相应的文件(可能是index.php或其他文件)
  3. 如果找到,则返回该文件(或调用php语言模块执行后返回)
  4. 如果第二步没有找到对应的主机名,那么将第一个主机当做提供服务的主机

可知:只要ip解析和端口能够进入到当前服务器并匹配apache的端口设定,则apache一定会提供服务--即使主机名不匹配

根据上述修改配置:

mysql执行原理与虚拟主机配置_第4张图片

进行访问被禁止:

mysql执行原理与虚拟主机配置_第5张图片

原因是:文件夹的访问权限问题,初始的站点对应的文件夹,安装的时候就已经设置好了权限,而我们设定的文件夹没有权限。

下面添加文件夹访问权限:

mysql执行原理与虚拟主机配置_第6张图片

结果显示为:

mysql执行原理与虚拟主机配置_第7张图片

 mysql执行原理与虚拟主机配置_第8张图片

访问一个站定时,可以指定要访问的网页:

http://www.newphp.com/copyhtdocs/phpinfo.php

http://www.newphp.com/copyhtdocs/base.php

也可以不指定:

http://www.newphp.com/copyhtdocs/

http://www.newphp.com/

对于后一种情况,apache设置“默认网页”以提供给用户,形式为

修改为:

由于www.newphp.com/copyhtdocs没有明确网页但含有默认网页base.php,则运行该默认网页(如果也没有默认网页,则options中的indexes就发挥作用:显示文件列表):

mysql执行原理与虚拟主机配置_第9张图片

当然,也可以将DirectoryIndex设置项单独放在一个单独的站点或单独的文件夹中,则只对该单独的站点和文件夹起作用

mysql执行原理与虚拟主机配置_第10张图片

主机别名设置

应用中经常可以使用不同的形式来访问一个站点:

http://www.abc.com

http://abc.com

通常越来越流行后者。此时,就相当于“2个站点(主机名)”,但访问的是同一个内容,此时就需要主机别名来实现:

ServerAlias 别名1 别名2 别名3 ......

文件夹访问控制的文件控制方式

通常在config配置文件中使用Directory配置项,目的是控制文件夹的访问权限,但我们也可以使用一个独立的文件来控制某文件夹的访问权限,一般这个独立的文件用来控制该路径下文件夹的默认主页

文件名必须是:.htaccess

注意:

  1. 该文件只有后缀和点号(无文件名部分)
  2. 该文件必须要放在被控制访问权限的文件夹中(不同的文件夹放不同的文件)
  3. 其“上级文件夹”(通常是Directory设定的文件夹)必须使用如下代码允许.htaccess发挥作用:AllowOverride All
  4. .htaccess文件中出现代码,几乎可以跟Directory设定出现的代码一样
  5. 如果.htaccess文件有效,则其设置会覆盖其上级设置
  6. .htaccess文件修改后可以立即发挥作用,无需重启apache

mysql执行原理与虚拟主机配置_第11张图片

并设置:

mysql执行原理与虚拟主机配置_第12张图片

目录别名设置

目录别名:虚拟目录,即本身不存在的目录

一个站点就是一个文件夹(目录),该文件夹自然存在其下级文件夹(目录),实际存在的下级目录,可以按正常的文件夹访问层次关系进行访问,比如

  • http://www.newphp.com/
  • http://www.newphp.com/copyhtdocs/
  • http://www.newphp.com/copyhtdocs/abc/

当一个站点中如果不存在某个文件夹(目录),可以通过配置项做到“对外”看起来存在一样

比如:

http://http://www.newphp.com/soft/ 假设不存在该目录,可以让该地址“可访问”,这就是目录别名

mysql执行原理与虚拟主机配置_第13张图片

开始设置:

重启运行后可知:

mysql执行原理与虚拟主机配置_第14张图片

设置该文件夹的访问权限:

mysql执行原理与虚拟主机配置_第15张图片

再次访问:

mysql执行原理与虚拟主机配置_第16张图片

可见,可将一个站点之外的“网页、数据、内容”也呈现在当前站点中。

多站点配置

首先,在httpd.conf中打开多站点配置文件:

改为:

打开该文件(httpd-vhosts.conf),设置要进行多站点配置的ip和端口,形式如下:

NameVirtualHost IP:端口

*表示当前服务器的所有ip地址(通常也就一个)

3.往后一个一个站点设置就行:

(注意一旦进行多站点设置,原来httpd.conf中的默认站点配置失效)

mysql执行原理与虚拟主机配置_第17张图片

 

 

 

 

你可能感兴趣的:(学web)