Apache服务器与动态网页技术的整合与研究

2018-03-07 06:15徐红梅
无线互联科技 2018年21期

徐红梅

摘 要:Apache服务器默认情况下只能支持传统的动态网页技术CGI。但Apache可以通过和其他动态网页技术进行整合,实现更多的特性与功能。文章主要研究在Linux网络操作系统中安装Apache,PHP和MySQL软件的动态网页技术整合的安装及所遇到问题的解决方法。

关键词:动态网页;Apache;LAMP

目前,在各大操作系统平台上能运行且较为流行的Web服务器非Apache服务器莫属,再加上Apache服务器属于开源软件,在不断的功能新特性的开发及完善后,已经成为当前主要的Web服务器端主流软件之一。

1 Apache服务器介绍

1.1 Apache的结构

Apache由内核、标准模块和第三方提供的模块3个层次组成(见表1)。

表1 Apache结构

1Apache内核

2标准默认安装模块集合 3标准默认不安装模块集合

4第三方提供的模块

由表1可以看出,Apache服务器将默认安装安装图中的内核部分和标准模块的默认安装模块两部分。在安装过程中,如果用户需要,可以根据自行需求,对安装部分的模块集合进行修改和删除等。同时,也可选择对第三方提供的模块的安装。因此,Apache服务器在模块安装过程中的可扩展性很强,可以满足不同用户的开发动态网页的需求[1]。

1.2 Apache的运行机制

Apache2.xApache运行方式有3种,主要采用多处理模块(Multi-Processing Module,MPM)方式,这种方式可以在服务器上同时处理多个请求操作,从而控制Apache的运行方式。

(1)预派生(Profork)MPM。这种模式首先启动父进程,父进程监控子进程的终止或创建,父进程创建并启动一定可配置数量的子进程,在运行中,由一定数量的空闲子进程响应客户请求,避免启动多余的进程造成额外的资源消耗。

(2)工作者(Worker)MPM。此模式与预派生多模块相同,不同在于它是由子进程创建的线程监听客户请求,由父进程始终监控。

(3)独立子进程(Perchild)MPM。进程和线程的混合模式,与工作MPM想比较,每个子进程创线程数量不一样。当遇到服务器上的负载过重,此模式只在当前的子进程一致上创建新的线程为客户提供服务而不会重新创建一个字进程。因此这种方式的可扩展性高,但可靠率低[2]。

2 Apache服务器与动态网页技术整合

2.1 网页技术的工作原理

网页技术中的动态网页的信息的处理是根据客户的需求不断变化的。而动态网页就是指由客户进行信息访问输入,服务器作出响应后处理不同的信息,然后把处理的结果反馈给客户。如若用户在信息请求时都是用的一个包含动态语言代码的网页,服务器端将根据由用户发出的请求页面的页面名称后缀识别使用的是哪种动态网页技术,并把此页面提交给解释引擎,由解释引擎定位动态网页脚本代码,并把最终的处理结果反馈给Web服务器。相较于静态网页而言,动态页面是经过服务端处理后,根据用户的不同的输入而返回了并生成一个结果显示在页面上。目前常见的实现动态页面的技术分别有通用网关接口(Common Gateway Interface,CGI),PHP,JSP.NET.ASP.NET等[3]。

2.2 网页技术整合的原因

由于Apache在处理静态网页方面具有明显优势,在初始安装Apache软件时,它只支持CGI这种老式动态网页技术,但Apache可以和很多动态网页技术兼容,并可以安装第三方软件获取更多的功能,例如LAMP(Linux-Apache-MySQL-PHP)平台的搭建,就是在Apache中通过安装配置第三方的软件和模块及和其他软件综合应用,实现对各种流行动态网页的技术的支持,Apache+PHP+MySQL被认为是在Linux平台上最佳组合之一。

3 动态网页技术的整合—LAMP平台的搭建问题

LAMP架构是目前开发动态网页的一个Web服务的框架,在很多商业应用中属于主流框架应用。它和Java/J2EE架构、微软的.net等架构的网页开发相比,LAMP优势比较明显,这也是很多企业搭建网站的首選平台,它的跨平台性、通用性及性价比等是其他架构平台不能比拟的[4]。LAMP架构平台由Linux+Apache+Mysql+PHP组成,在此对该系统平台的安装搭建及问题的解决方式进行了解和研究。

3.1 LAMP平台的组成与工作原理

LMAP的各个组件主要由Linux操作系统、Apache、PHP开源脚本语言和开源数据MySQL组成。LAMP平台工作原理如图1所示。当一个用户访问PHP页面时,先访问Apache服务器,当Apache服务器无法识别PHP页面,可通过Apache里面的phpmod传给php体系,php根据用户出过来的参数访问mysql数据库,mysql数据库再把根据参数查询出来的表返回给PHP,由PHP直接生成HTML网页传回给Apache服务器,供用户访问。

3.2 LAMP平台搭建配置的常见问题

安装一个LAMP的应用软件,首先必须在Linux操作系统下安装好Apache,PHP和MySQL。相对于静态Web服务器,在平台搭建的配置安装过程中,会出现很多安装问题,由于配置的复杂性,不能一一列举解决方式,从中选出几个常见的问题,提出解决方案。

3.2.1 在安装Apache完毕启动时,出现提示性错误,Apache无法正常启动

Apache无法正常启动,系统会在显示器上显示错误提示信息,第一种是httpd.conf文件配置出错,对于这种情况,Apache启动会给出相应的相关提示信息,用户可以根据提示信息更改httpd.conf中的配置以修复错误。第二种是可以查看日志信息,通过日志信息解决错误信息。例如防火墙及SELinux是否允许Apache服务器运行。第三种,监听端口被占用,Apache默认的监听端口是80.提示有进程占用此端口,Apache启动时也会出现错误。用户可以通过netstat–an命令获取系统当前的端口使用情况,关闭占用端口进程或用kill命令结束占用端口的进程号[5]。

3.2.2 无法载入PHP模块

由于centos启动受SELinux保护,在完成PHP模块配置后,重启Apache,将出现PHP模式无法载入的错误。这是由Linux的selinux保护模式引起的,可以通过以下方法解决。但这种解决方法是临时的,当计算机重启后配置将会失效,如果希望永久生效,可以编辑/etc/selinux/config文件,找到配置选项,SELINUX=enforcing更改为以下内容:SELINUX=disabled。最后重启Apache服务器。

操作命令

#vi /etc/selinux/config

设置内容

SELINUX=disabled

3.2.3 忘记root用户口令解决方法

MySQL的系统管理员账号为root。拥有数据库中最高级别的权限,如果忘记root用户口令,可以通过结束MySQL进程,一—skip-grant-tables选项启动MySQL。然后进入MySQL并更改root用户口令。

操作命令

#killall mysqld

#/usr/local/mysql/bin/mysqld_safe –skip-grant-tables &

#./mysql

Mysql>use mysql

mysql> update user SET password=password(‘userpasswd) WHERE

user=root;

[参考文献]

[1]余柏山.Linux系统管理与网络管理[M].北京:清华大学出版社,2011.

[2]鸟哥.鸟哥的私房菜—服务器架设篇[M].3版.北京:机械工业出版社,2013.

[3]梁如军.Linux应用基础教程-RedhatenterpriseLinux[M].北京:机械工业出版社,2013.

[4]张建华.LAMP从入门到精通[M].杭州:浙江大学出版社,2006.

[5]巴雷德.PHP应用程序安全编程[M].北京:机械工业出版社,2010.