服务器:(提供服务)指的就是一台安装了特定软件的公共计算机,专门用于提供特定的服务,按照服务类型的不同,又分为web服务器、数据库服务器、文件服务器等。
我们手头上的电脑都可以是一台服务器,因为服务器是一个相对的概念,只要能提供服务就可以是一个服务器。
客户端:(使用服务)指的是一次服务过程中使用这个服务的设备(网络端点),目前最常见的客户端就是浏览器。
web服务器软件
Nginx----------------反向代理
Apache-------------PHP
IIS--------------------ASP.NET
Tomcat-------------Java
安装Apache
- 进入到bin目录找到httpd.exe文件,以管理员身份打开命令行,执行安装此文件 image.png 此时会报一个错,根据提示找到相应的文件错误的地方,更改解压文件的路径 image.png 3.再次执行检查命令 image.png 还会有一个警告,此时回到对应文件,配置ServerName(这个地方忽略掉此警告也可以) image.png 再次运行检查命令 image.png 4.启动服务 image.png 5. 打开浏览器,此时服务已成功启动 image.png
配置Apache
监听端口
监听端口可以随意修改为任意一个未被其他程序监听的端口,可以通过设置配置文件httpd.conf中的Listen指令后面的数字修改。这里Apache默认占的是80这个门。不仅仅可以占一个端口,也可以同时设置多个端口,写多个Listen命令就可以了。 image.png设置完之后记得重新启动一下服务,最好在启动之前用httpd -t命令测试一下,看是否有错误。
网站根目录
网站根目录就是存放我们网站文件的最顶层目录,通常URL中域名后面的第一个斜线对应的就是网站根目录。
默认文档指的是我们在访问某一个目录时,默认访问的文件就叫做默认文档。
注:
动态网站情况比较特殊,需要单独考虑,不一定是这个规则。
默认文档
当客户端访问的是一个目录而不是某个具体的文件时,服务端会默认返回这个目录下的某个文档,一般是index.html文档(为啥呢?看下面),这个文档就称之为默认文档。当然这个文档也可以设置的,同样在httpd.conf文件中 image.png目录浏览
同样在配置文件中,把下图中的indexes去掉就可以取消目录的浏览 image.png虚拟主机
如果一台机器上只有一个网站的话,只要配置好网站的根目录、默认文档等就可以使用了,但是如果想要在一台机器上部署多个站点,就必须通过配置虚拟主机的方式解决。
配置方法:
1. 在httpd.conf配置文件中找到Include conf/extra/httpd-vhosts.conf这一行,并把注释解除掉;
2. 然后对应上面的路径找到Apache的虚拟主机配置文件E:\apache\Apache24\conf\extra\httpd-vhosts.conf,添加虚拟主机配置节点,并重启Apache
配置一个虚拟主机,*:80指的是绑定任意当前机器IP的80端口;
ServerAdmin 站长邮箱
DocumentRoot 网站根目录
ServerName 域名
ServerAlias 别名(多个域名可以访问同一个网站)
ErrorLog 错误日志
CustomLog 普通日志
image.png 3. 在配置第二个虚拟主机的时候,要配置一下Directory,确定路径能被访问,否则会出现Forbidden的情况,不建议在httpd.conf文件中新增Directory节点,可以在配置虚拟主机的地方新增Directory的节点配置。第一个可加可不加,但一般都写上。 image.png 4. 最后记得重启一下Apache,还要记得去hosts文件中配置一下域名啊!!!
(一旦配置了虚拟主机,那么默认绑定到机器上的IP和localhost就不起作用了,都会直接请求第一个虚拟主机)
静态网站与动态网站
通过上面的配置,客户端已经可以通过域名请求一个网站,Apache完成的事情就是找到请求对应的文件-à读取文件-à将文件内容相应给客户端浏览器(将文件原封不动的给客户端),无法满足让网页内容动起来的需求。服务端动态网页,实现这种概念的技术有:JSP,ASP.NET,PHP,Node等,这些技术的原理就是:不再将HTML固定写死,每次用户请求时,动态执行一段代码,临时生成一个用户想要的HTMl页面。
配置PHP
-
下载PHP安装包并解压
http://php.net/downloads.php -
在Apache的配置文件中配置php
打开此文件E:\apache\Apache24\conf\httpd.conf,配置PHP:
image.png image.png
Apache与PHP
Apache是根据文件的扩展名找到文件的类型,然后挨个问一下每一个模块能否处理这个类型的文件,如果这些模块都不能处理,那么Apache就自己处理(按照静态文件的方式处理)。
网友评论