1.了解Apache
1.1什么是Apache
Apache全称Apache HTTP Server ,中文名阿帕奇,是一款**Web服务器软件,有多种产品,可以支持SSL技术**,支持多个虚拟主机。它快速、可靠并且可通过简单的API扩充,将**Perl/Python等解释器编译到服务器中。本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美**。
1.2lamp与lnmp
LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写:
Linux,操作系统
Apache,网页服务器
MariaDB或MySQL,数据库管理系统(或者数据库服务器)
PHP、Perl或Python,脚本语言
LNMP或LEMP(以Nginx替代Apache)
2.安装Apahce解读其配置文件
2.1安装Apache
2.2 解读配置文件
我们首先查看主配置文件
2.3 配置主机
当我们安装好apache后需要防火墙通过
这样我们的http就搭建成功了,我们可以继续实验。
3.http手册
我们安装http手册时为了在我们使用http的拓展应用时可以,快速了解使用方法,下面我们安装手册:
4.修改默认端口
http服务的默认端口为80,而https的默认服务端口是443,这个实验我们以http为例,修改80零端口为8080:
必须服从tcp协议才能够进行网络传输
5.修改默认文件访问顺序
我们的配置文件中写着,默认先读index.html,我们希望他能读我们要求的文件我们就在配置文件中进行修改,最后测试查看:
6.修改默认发布目录路径
在主配置文件中清楚的记录着默认发布目录是/var/www/html,此目录下的文件在我们访问服务器ip时会自动显示,这时我们修改默认访问目录,并查看效果:
首先我们进入到配置文件中:
注意:当我们新建了默认发布目录后,我们的安全上下文时不一致的,这会直接导致我们的配置文件在时别目录时出现无法使用此目录及其下文件,所以我们应该修改新建目录的安全上下文与默认目录相同
7.用户访问权限
我们登陆了一个网站之后我们发现,有的用户可以登陆进一个会员专享页面,而非会员用户无法登陆,这时如何做到的呢,接下来我们进行演示:
首先我们进入主配置文件进行修改:
注意:/var/www/html永远都是他的默认发布目录,你要访问其下子目录时必须在ip后加上文件名。
8.特定用户密码登陆
虽然上一个实验我们已经能够使特定的人登陆,如果一旦有人更改自己的ip为允许登陆相同的ip,就不能挡住他,所以我们这时就出现了,申请帐号,下次输入密码才能登陆,我们通过以下实验实现:
9.虚拟页面配置
我们再作一个属于自己的网站时我们肯定不会只有一个页面,我们必须建立很多同级的网站,例如百度的贴吧(tieba.baidu.com),百度网盘(pan.baidu.com)等,如何解决这个问题呢?
我们当然可以多装几个apache服务,但是一旦我们装的apache越多我们的电脑的负担就会加重,所以我们这时就需要虚拟的apache发布目录,具体操作如下:
10.如何共享动态网页
我们知道我们此时安装的apache是只支持html静态网页的,而如果我们想分享动态网页就需要完成以下操作:
10.1共享php动态网页
PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。
当我们要分享一个php页面时,apache默认不支持这种格式的文件,所以我们做如下操作:
10.2 cgi
CGI(Common Gateway Interface)公共网关接口,是外部扩展应用程序与 Web 服务器交互的一个标准接口。服务器端与客户端进行交互的常见方式多,CGI 技术就是其中之一。根据CGI标准,编写外部扩展应用程序,可以对客户端浏览器输入的数据进行处理,完成客户端与服务器的交互操作。CGI规范定义了Web服务器如何向扩展应用程序发送消息,在收到扩展应用程序的信息后又如何进行处理等内容。对于许多静态的HTML网页无法实现的功能,通过 CGI可以实现,比如表单的处理、对数据库的访问、搜索引擎、基于Web的数据库访问等等。
http安装后同样不支持cgi服务,所以我们做如下操作:
10.3 wsgi
WSGI是Web Server Gateway Interface的缩写。以层的角度来看,WSGI所在层的位置低于CGI。但与CGI不同的是WSGI具有很强的伸缩性且能运行于多线程或多进程的环境下,这是因为WSGI只是一份标准并没有定义如何去实现。实际上WSGI并非CGI,因为其位于web应用程序与web服务器之间,而web服务器可以是CGI,mod_python(注:现通常使用mod_wsgi代替),FastCGI或者是一个定义了WSGI标准的web服务器就像python标准库提供的独立WSGI服务器称为wsgiref。
实现操作如下: