LAMP编译安装(一)——安装Apache2.4

背景介绍

LAMP是LNMP结构提出之前风靡了很久的结构,本系列就从无到有一点点介绍LAMP的编译安装。首先,介绍下本系列的拓扑结构图

此时服务器响应客户端访问可以分为几种应答方式:

1.客户端向服务器端发起请求

2.服务器端查看请求类型,当为静态页面请求,直接返回结果

1.客户端向服务器端发起请求

2.服务器端查看请求类型,当为动态页面请求,通过配置文件中设置的反向代理,通过fcgi协议交给后端PHP服务器

3.PHP服务器上启用php-fpm服务,监听在一个套接字上想用请求,并将结果反馈给httpd服务器

4.httpd服务器在通过其rewirte技术,将结果以伪静态页面的形式反馈给客户端

1.客户端向服务器端发起请求

2.服务器端查看请求类型,当为动态页面请求,交给后端PHP服务器

3.如果客户的请求中需要访问数据库,PHP服务器会将请求转交给Mysql服务器,这里需要注意的是:PHP服务器本身不会请求Mysql,只是替用户转交请求,所以PHP在编译安装时需要启用 --with-mysql=mysqlnd  --with-pdo-mysql=mysqlnd

--with-mysqli=mysqlnd这3个选项,此时的mysqlnd类似于一个驱动,可以使PHP连接到Mysaql服务器,如果PHP与Mysql服务器为同一台主机,以--with-mysql选项为例,此时需要指明Mysql的安装路径 --with-mysql=/path/to/mysql

4.Mysql服务器将数据处理结果反馈给PHP服务器

5.PHP服务器在将结果反馈给httpd服务器

6.httpd服务器在通过其rewirte技术,将结果以伪静态页面的形式反馈给客户端

Apche2.4介绍

CentOS6系列默认使用的Apache2.2版本,之后发布的Apache2.4版本在功能上比之前有了进一步的增强,主要表现为:

1.MPM支持在运行时装载

2.支持event

3.异步读写

4.在每模块及每目录上指定日志级别

5.每请求配置:<If> <Elseif>

6.增强版的表达式分析器

7.毫秒级的keepalive timeout

8.支持主机名的虚拟主机不在需要NameVirtualHost指令

9.支持使用自定义变量

10.新增一些模块:mod_proxy_fcgi,mod_ratelimit,mod_request,mod_remoteip

11.对于基于IP的访问做了修改,不在使用order,allow,deny这些机制;而是统一使用require进行,如require granted和require denied

实验说明

操作系统:CentOS6.8

源码包:httpd-2.4.23.tar.bz2,apr-1.5.2.tar.bz2,apr-util-1.5.4.tar.bz2

准备工作:安装pcre-devel包,Apache2.4编译时需要用到

实验目的

1.编译安装Apache2.4

2.测试MPM模块动态切换

3.测试虚拟主机实现

4.将编译后的服务加入Service控制

实验步骤

一、编译安装

1.安装先决条件并解压源码包

yum -y install pcre-devel #安装pcre-devel包

for i in apr-1.5.2.tar.bz2 apr-util-1.5.4.tar.bz2 httpd-2.4.23.tar.bz2;do tar -xf $i -C /usr/local/src/;done

#将apr-1.5.2.tar.bz2 apr-util-1.5.4.tar.bz2 httpd-2.4.23.tar.bz2压缩包解压到/usr/local/src目录下

2.安装apr-1.5.2

cd /usr/local/src/apr-1.5.2 #进入apr-1.5.2目录

./configure --prefix=/usr/local/apr-1.5.2 #检查编译环境

make && make install #编译安装

3.安装apr-util-1.5.4

cd /usr/local/src/apr-util-1.5.4 #进入apr-1.5.2目录

./configure --prefix=/usr/local/apr-util-1.5.4 --with-apr=/usr/local/apr-1.5.2 #检查编译环境

make && make install #编译安装

4.安装Apache2.4

cd /usr/local/src/httpd-2.4.23 #进入httpd-2.4.23目录

./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable--ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr-1.5.2 --with-apr-util=/usr/local/apr-util-1.5.4 --enable-modeles=most --enable-mpms-shared=all --with-mpm=event #检查编译环境

make && make install #编译安装

5.路径输出

echo "export PATH=/usr/local/apache/bin:$PATH" > /etc/profile.d/apache.sh

source /etc/profile.d/apache.sh

6.头文件输出

ln -sv /usr/local/apache/include/ /usr/include/apache

7.库文件输出

apche2.4编译安装后在/usr/local/apache/目录下没有lib目录,此步骤跳过,有则使用echo "/usr/local/apache/lib > /etc/ld.so.conf.d/apche.conf"进行库文件输出,再使用ldconfig -v查看

8.MAN文档输出

vim /etc/man.config

9.启动并检查Apche

/usr/local/apache/bin/apachectl start #启动服务

netstat -ntl #查看80端口是否正常侦听

二、动态切换MPM模块

Apache2.4的mpm采用模块方式实现,支持DSO动态装卸载,编译时设置的是event模型,从主配置文件/etc/httpd/httpd.conf中可以看到当前启用的mpm模块,切换mpm模型就是启用相应模型的模块,更改前间隙先停止服务

注意:/etc/httpd/extra/httpd-mpm.conf配置文件是修改mpm模型参数的,如果只修改这个文件会发现不会生效,原因就是在主配置文件下该配置文件默认是注销掉的,激活后才会生效

三、测试虚拟主机

1.Apche2.4不再有虚拟主机开关选项,主配置文件中注销中心主机

2.类似mpm模块一样,需要在主配置文件中启用虚拟主机配置文件。如果虚拟主机配置文件存放在httpd.conf的主配置文件中,则不需要启用虚拟主机配置文件。建议将虚拟主机的配置文件和主配置文件分开。经测试,如果中心主机与虚拟主机都存放于httpd.conf主配置文件中并同时启用,虚拟主机生效。

3.vim /etc/httpd/extra/httpd-vhosts.conf 编辑虚拟主机配置文件

4.为www.vhost.com创建主页面

mkdir -p /var/www/vhost

echo "www.vhost.com" > /var/www/vhost/index.html

此时会发现访问被拒绝,原因是Apche2.4开始每个网站都需要配置目录权限,添加后就可以正常访问了

Apche2.4不再使用以前的Oeder Allow Deny机制,访基于IP访问控制由Require来进行:

允许所有主机访问:Require all granted

拒绝所有主机访问:Require all denied

控制某主机的访问,可以是单个IP地址,也可以是网段:

Require ip IPADDR

Require not ip IPADDR

使用主机名控制,可以是FQDN,也可以是整个域:

Require host $HOSTNAME

Require not host $HOSTNAME

四、添加启动脚本

服务脚本可以参考CentOS6.8自带的httpd2.2的脚本,将其复制到/etc/rc.d/init.d目录下,保证有执行权限,并做如下修改,主要是路径修改

之后再到主配置文件中增加一行pidfile的位置指向

然后使用chkconfig --add httpd,chkconfig httpd on后,就可以使用service控制了,至此操作完成

试验中发现一个不理解的现象:按照理解,httpd服务运行时应该先读主配置文件httpd,然后再读脚本文件,但主配置文件中指定LockFile文件位置后,通过httpd -t检查语法会报错,不添加启动后会遵循脚本中的设置使用/var/lock/subsys/httpd;如果主配置文件中不添加PidFile文件,使用Service可以正常启动httpd服务,但是不会读取脚本文件,即不会生成/var/run/httpd.pid文件,启动后无法使用service httpd stop关闭,提示没有pid文件

时间: 2024-08-09 02:18:01

LAMP编译安装(一)——安装Apache2.4的相关文章

Linux之LAMP编译安装

一.编译安装httpd2.4版本 1.httpd程序依赖于apr和arp-util 注:arp是apache的可移植运行环境(相当于是http的虚拟机,在Linux和windows都可用) 在编译安装前我们需要安装一下开发包组 yum -y groupinstall "Development Tools" yum -y groupinstall "Server Platform Development" HTTP2.4版本依赖于apr1.4以上的版本,因此我们安装a

Centos7最小化安装下安装,编译lamp环境

centos7默认的php是5.5,mysql已经变为mariadb,如果想要自定义的配置,需要自己手动来编译配置.以下步骤在公司服务器上已经正常操作过. 1.安装centos7选择基本安装,配置完网络后首先要先关闭firewall: 停止firewall # systemctl stop firewalld.service 禁止firewall开机启动 # systemctl disable firewalld.service 2.安装iptables防火墙 yum方式安装iptables #

马哥学习笔记七——LAMP编译安装之MYSQL

1.准备数据存放的文件系统 新建一个逻辑卷,并将其挂载至特定目录即可.这里不再给出过程. 这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录. 2.新建用户以安全方式运行进程: # groupadd -r mysql # useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql # chown -R mysql:mysql /mydata/data 3.安装并初始化my

CentOS 6系统的 lamp (编译安装,模块或php-fpm)详解

   LAMP 是指一组通常一起使用来运行动态网站或者服务器的 自由软件 名称首字母缩写: 1.Linux:操作系统: 2.Apache:网页服务器: 3. MariaDB或MySQL,数据库管理系统(或者数据库服务器): 4.PHP.Perl或Python,脚本语言:  实验要求: (1) 三者分离于两台或三台主机: (2) 一个虚拟主机用于提供phpMyAdmin:另一个虚拟主机用于提供wordpress: (3) xcache (4) 尝试mpm为非prefork机制:    IP   系

马哥学习笔记八——LAMP编译安装之PHP及xcache

1.解决依赖关系: 请配置好yum源(可以是本地系统光盘)后执行如下命令: # yum -y groupinstall "X Software Development" 如果想让编译的php支持mcrypt扩展,此处还需要下载如下两个rpm包并安装之: libmcrypt-2.5.7-5.el5.i386.rpm libmcrypt-devel-2.5.7-5.el5.i386.rpm 2.编译安装php-5.4.13 首先下载源码包至本地目录. # tar xf php-5.4.13

LAMP 编译安装

案例(一)LAMP apache.php(为apahce的模块).mysql在同一台主机上编译安装 编译版本:       httpd-2.4.9        mariadb-5.5.36        PHP-5.4.26    一.httpd编译安装和虚拟主机的配置    httpd-2.4编译步骤:        1.安装编译适用于httpd-2.4的apr            # rpm -qa |grep apr-------检查当前主机的apr版本信息            #y

LAMP编译安装之Apache+php+mysql

环境模型: (1)PHP作为apache的模块编译安装. (2)mysql数据库在另一台服务器上安装.版本为MariaDB5.5.33    IP:192.168.1.124 (3)PHP版本5.4.36,http的版本2.4 (4)安装Apache和php的主机IP为192.168.1.123. 一.编译安装apache    1.解决依赖关系     httpd-2.4.9需要较新版本的apr和apr-util,因此需要事先对其进行升级.升级方式有两种,一种是通过源代码编译安装,一种是直接升

LAMP编译安装之———httpd

LAMP(Linux- Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据 库,Perl.PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和 Java/J2EE架构相比,LAMP具有Web资源丰富.轻量.快速开发等特点,微软的.NET架构相比,LAMP具有通用.跨平台.高性能.低价格的 优势,因此LAMP无论是性能.质量还是价格都是企业搭

Lamp 编译安装 (未完待续)

顺序安装:linux apache mysql php Linux 这个就不多说明了... CentOS 6.5 镜像 虚拟机安装 一次性安装开发工具: # yum groupinstall "Development tools" or: # yum -y groupinstall "Development tools" 查看已安装的: # yum grouplist | more # yum grouplist | grep Develpment # yum gr