常见的网页类型:htm,html,shtml,stm.php,asp,aspx,shtm,jsp等等Apache本事只处理静态页面,处理动态页面需要使用libphp5.so这个模块去工作,编译php也其实是将一个至关重要的模块打入到apache内部,然后apache收到php请求,将请求交给这个模块来处理!

Apache工作原理:

Apache本身只处理html静态语言页面,当客户端需要访问php页面的时候,Apache会调用libphp5.so这个模块去工作,这个模块会把php页面转换成html静态页面,让Apache处理,Apache处理过,会返回给客户端

LAMP相关网站:

Apache=http://httpd.apache.org/                                                      httpd主程序包

MySQL=http://dev.mysql.com/downloads/mysql/                          mysql主程序包

PHP=http://php.net/downloads.php                                                 php主程序包

apr=http://apr.apache.org/                                               apr是httpd的依赖包

apr-util=http://apr.apache.org/                               apr-util是httpd的第二个依赖包

apr和apr-util这个两个软件是对后端服务软件进行优化的,

apr-util只是在apr的基础上提供了更多的数据结构和操作系统封装接口而已。

pcre 是httpd的第三个依赖包 http://pcre.org/

PCRE(Perl Compatible Regular Expressions中文含义:perl语言兼容正则表达式)是一个用C语言编写的正则表达式函数库,PCRE被广泛使用在许多开源软件之中,最著名的莫过于Apache HTTP服务器和PHP脚本语言、R脚本语言,此外,正如从其名字所能看到的,PCRE也是perl语言的缺省正则库。

对应我们源码编译的版本

编译安装LAMP所需要及其所使用的源码版本:

httpd version:httpd-2.4.20

apr version:apr-1.5.2

pcre version:pcre-8.37

apr-util version:apr-util-1.5.4

mysql version:mysql-5.6.26

php version:php-5.6.13

1、安装apr

(1)、上传apr-1.5.2.tar.gz 、apr-util-1.5.4.tar.gz 、httpd-2.4.20.tar.gz压缩包并解压

[root@node3 yum.repos.d]# cat /etc/redhat-release 
CentOS Linux release 7.3.1611 (Core)
[root@node3 ~]# ls
anaconda-ks.cfg apr-1.5.2.tar.gz apr-util-1.5.4.tar.gz httpd-2.4.20.tar.gz
[root@node3 ~]#
[root@node3 ~]# tar zxf apr-1.5.2.tar.gz
[root@node3 ~]# tar zxf apr-util-1.5.4.tar.gz
[root@node3 ~]# tar zxf httpd-2.4.20.tar.gz
[root@node3 ~]#
[root@node3 ~]# ls
apr-1.5.2         apr-util-1.5.4          httpd-2.4.20       anaconda-ks.cfg 
apr-1.5.2.tar.gz  apr-util-1.5.4.tar.gz   httpd-2.4.20.tar.gz

(2)、编译安装apr

[root@node3 ~]# cd apr-1.5./
[root@node3 ~]#
[root@node3 apr-1.5.]# ls
apr-config.in build configure.in libapr.dep memory random threadproc
apr.dep buildconf docs libapr.dsp misc README time
apr.dsp build.conf dso libapr.mak mmap README.cmake tools
apr.dsw build-outputs.mk emacs-mode libapr.rc network_io shmem user
apr.mak CHANGES encoding LICENSE NOTICE strings
apr.pc.in CMakeLists.txt file_io locks NWGNUmakefile support
apr.spec config.layout helpers Makefile.in passwd tables
atomic configure include Makefile.win poll test
[root@node3 apr-1.5.]#
[root@node3 apr-1.5.]# ./configure --prefix=/usr/local/apr && make && make install
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
Configuring APR library
Platform: x86_64-unknown-linux-gnu
checking for working mkdir -p... yes
APR Version: 1.5.2
checking for chosen layout... apr
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/root/apr-1.5.2':
configure: error: no acceptable C compiler found in $PATH compiler是gcc编译器,所有需要安装gcc编译器
See `config.log' for more details
[root@node3 apr-1.5.]#
[root@node3 apr-1.5.]# yum install gcc -y ##安装gcc编译器
[root@node3 apr-1.5.]# ./configure --prefix=/usr/local/apr-util && make && make install
[root@node3 apr-1.5.]# ### 参数 ”--prefix=“ :指定安装路径;
### 参数 ”&&“ :执行完成上条命令后再执行后面的命令,省略了在输入后面的命令

(3)安装完成如下图:

2、安装apr-utils

(1)、返回到apr-util目录,进行编译安装

[root@node3 apr-1.5.]#
[root@node3 apr-1.5.]# cd ../apr-util-1.5./
[root@node3 apr-util-1.5.]#
[root@node3 apr-util-1.5.]# ls
aprutil.dep build configure.in include Makefile.win strmatch
aprutil.dsp buildconf crypto ldap memcache test
aprutil.dsw build.conf dbd libaprutil.dep misc uri
aprutil.mak build-outputs.mk dbm libaprutil.dsp NOTICE xlate
apr-util.pc.in CHANGES docs libaprutil.mak NWGNUmakefile xml
apr-util.spec CMakeLists.txt encoding libaprutil.rc README
apu-config.in config.layout export_vars.sh.in LICENSE README.cmake
buckets configure hooks Makefile.in renames_pending
[root@node3 apr-util-1.5.]#
[root@node3 apr-util-1.5.]# ./configure --with-apr=/usr/local/apr \
--prefix=/usr/local/apr && make && make install
[root@node3 apr-util-1.5.4]# ### 参数 ”--with-apr=“ :制定apr安装路径,因为apr-util依赖apr

(2)安装成功如下图:

3、编译安装httpd

(1)、进入httpd-2.4.目录,进行编译安装

[root@node3 apr-util-1.5.]#
[root@node3 apr-util-1.5.]# cd ../httpd-2.4./
[root@node3 httpd-2.4.]#
[root@node3 httpd-2.4.]# ls
ABOUT_APACHE BuildBin.dsp emacs-style LAYOUT NOTICE srclib
acinclude.m4 buildconf httpd.dep libhttpd.dep NWGNUmakefile support
Apache-apr2.dsw CHANGES httpd.dsp libhttpd.dsp os test
Apache.dsw CMakeLists.txt httpd.mak libhttpd.mak README VERSIONING
apache_probes.d config.layout httpd.spec LICENSE README.cmake
ap.d configure include Makefile.in README.platforms
build configure.in INSTALL Makefile.win ROADMAP
BuildAll.dsp docs InstallBin.dsp modules server
[root@node3 httpd-2.4.]#
[root@node3 httpd-2.4.]# ./configure --prefix=/usr/local/http2.4.20 \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--enable-deflate \
--enable-proxy \
--enable-ssl \
--enable-static-ab \
--enable-cgi \
--enable-userdir \
--enable-rewrite ### 会出现如下报错,因为缺少 pcre-devel 开发包:
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/ [root@node3 httpd-2.4.20]#
[root@node3 httpd-2.4.20]# yum install pcre-devel -y 
[root@node3 httpd-2.4.20]#
[root@node3 httpd-2.4.20]# ./configure --prefix=/usr/local/http2.4.20 \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--enable-deflate \
--enable-proxy \
--enable-ssl \
--enable-static-ab \
--enable-cgi \
--enable-userdir \
--enable-rewrite ### 会出现如下报错,因为mod_deflate需要安装openssl-devel开发包:
checking whether to enable mod_deflate... configure: error: mod_deflate has been requested but can not be built due to prerequisite failures [root@node3 httpd-2.4.20]#
[root@node3 httpd-2.4.20]# yum install openssl-devel -y
[root@node3 httpd-2.4.20]# ./configure --prefix=/usr/local/http2.4.20 \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--enable-deflate \
--enable-proxy \
--enable-ssl \
--enable-static-ab \
--enable-cgi \
--enable-userdir \
--enable-rewrite
[root@node3 httpd-2.4.20]#
[root@node3 httpd-2.4.20]# make && make install
[root@node3 httpd-2.4.20]#  

4、配置apache启动脚本

[root@node3 bin]#
[root@node3 bin]# cp /usr/local/http2.4.20/bin/apachectl /etc/init.d/apache2.
[root@node3 bin]# vim /etc/init.d/apache2.4    (文件开头加入两行参数)
# !/bin/sh
# chkconfig:
# description: Apache2.4.20 start script

### 这个是启动级别的服务,2345是指那些级别启动,64是开启顺序,应该在network服务的后面,36是关闭顺序,应该在network的前面,这里并不是注释,默认network的是:2345 10 90

### description: Apache2.4.16 start script            #描述字段,有了这两个字段,就可以用chkconfig命令控制

5、启动apache

[root@node3 http2.4.20]#
[root@node3 http2.4.20]# cd /usr/local/http2.4.20/
[root@node3 http2.4.20]# ls
bin build cgi-bin conf error htdocs icons include logs man manual modules
[root@node3 http2.4.20]# cd bin/
[root@node3 bin]# ls
ab apxs dbmmanage envvars-std htcacheclean htdigest httpd logresolve
apachectl checkgid envvars fcgistarter htdbm htpasswd httxt2dbm rotatelogs
[root@node3 bin]# ./apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.210.132. Set the 'ServerName' directive globally to suppress this message
[root@node3 bin]# ss -tnl | grep
LISTEN ::: :::*
[root@node3 ~]#
[root@node3 ~]# ps aux | grep httpd
root      80052  0.1  0.1 224056  5000 ?        Ss   16:20   0:00 /usr/sbin/httpd -DFOREGROUND
apache    80053  0.0  0.0 226140  3096 ?        S    16:20   0:00 /usr/sbin/httpd -DFOREGROUND
apache    80054  0.0  0.0 226140  3096 ?        S    16:20   0:00 /usr/sbin/httpd -DFOREGROUND
apache    80055  0.0  0.0 226140  3096 ?        S    16:20   0:00 /usr/sbin/httpd -DFOREGROUND
apache    80056  0.0  0.0 226140  3096 ?        S    16:20   0:00 /usr/sbin/httpd -DFOREGROUND
apache    80057  0.0  0.0 226140  3096 ?        S    16:20   0:00 /usr/sbin/httpd -DFOREGROUND
root      80118  0.0  0.0 112728   980 pts/0    R+   16:20   0:00 grep --color=auto httpd
[root@node3 ~]#

创建虚机主机:1、基于端口创建虚拟主机

(1)编辑主配置文件在最下方添加:

vim /etc/httpd/conf/httpd.conf
#IncludeOptional conf.d/*.conf
Listen 81
Listen 82
<VirtualHost *:>
DocumentRoot /var/www/html/test1
DirectoryIndex index.html
</VirtualHost>
<VirtualHost *:>
DocumentRoot /var/www/html/test2
DirectoryIndex index.html
</VirtualHost>

(2)设置网页

[root@node3 html]# mkdir {test1,test2}
[root@node3 html]# ls
test1 test2
[root@node3 html]#
[root@node3 html]# echo "81 port" > test1/index.html
[root@node3 html]#
[root@node3 html]# echo "82 port" > test2/index.html

(3)重新启动httpd服务,并测试网页

[root@node3 html]# systemctl restart httpd
[root@node3 html]#
[root@node3 html]# curl 192.168.210.132

2、基于域名创建虚拟主机

(1)编辑主配置文件在最下方添加:

vim /etc/httpd/conf/httpd.conf
#IncludeOptional conf.d/*.conf
Listen
Listen
<VirtualHost *:>
DocumentRoot /var/www/html/test1
servername www..com
DirectoryIndex index.html
</VirtualHost>
<VirtualHost *:>
DocumentRoot /var/www/html/test2
servername www..com
DirectoryIndex index.html
</VirtualHost>

(2)重新启动httpd服务,并测试网页

[root@node3 html]# systemctl restart httpd
[root@node3 html]#
[root@node3 html]# curl 192.168.210.132

vim /var/www/html/index.html

<h1>保时捷</h1>
<img src=/tupian.png>

统计网站被哪些ip访问了多少次:cat /var/log/httpd/access_log | cut -d " " -f  1 | sort | uniq -c

apche编译安装的更多相关文章

  1. CentOS 6.3编译安装LAMP环境笔记

    转载地址:http://www.jb51.net/article/54969.htm 最近抽空在虚拟机上测试成功了LAMP各个最新版本的整合编译安装,算是把之前的博文整合精简,以下内容均在CENTOS ...

  2. apache源码编译安装

    源码安装apche 下载apache的源码包文件 访问http://mirror.bit.edu.cn/apache/httpd/,复制如下gz文件的链接地址,并使用wget下载到本地 wget -P ...

  3. 第四次作业;创建raid5,源码编译安装;磁盘配额

    创建raid5 格式化 ext4 创建物理卷: 创建卷组: 创建逻辑卷: 格式化  ext4 挂载 开机自启动 创建raid配置文件 源码编译安装: 创建本地yum仓库 umount /dev/sr0 ...

  4. centos7源码编译安装lamp/lnmp

    centos7源码编译安装lamp/lnmp 进程:是包工头(相当于是个门,只管开门关门,不管门内的事儿) 线程:是各种工种(cpu调度的是线程) 进程 是一件事情, 线程 是 同一个时间范围内 同时 ...

  5. Centos6.5下编译安装mysql 5.6

    一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e ...

  6. CENTOS 6.5 平台离线编译安装 PHP5.6.6

    一.下载php源码包 http://cn2.php.net/get/php-5.6.6.tar.gz/from/this/mirror 二.编译 编译之前可能会缺少一些必要的依赖包,加载一个本地yum ...

  7. Linux下编译安装Vim8.0

    什么是Vim? Vim 是经典的 UNIX 编辑器 Vi 的深度改良版本.它增加了许多功能,包括:多级撤销.格式高亮.命令行历史.在线帮助.拼写检查.文件名补完.块操作.脚本支持,等等.除了字符界面版 ...

  8. OpenSUSE下编译安装OpenFoam

    在不是Ubuntu系统下安装OpenFoam,需要采用编译安装的方式.以下以OpenSuSE为例进行编译安装. 1 软件包准备 需要下载两个程序包: OpenFOAM-4.x-version-4.1. ...

  9. 不要着急改代码,先想想--centos 6.8下编译安装tmux

    诸位读者新年好,2017开年第一篇博客,请允许我先问候一下看到这篇博客的诸位.写博客是我2017年定下的目标之一,希望我会坚持下去. 最近打算尝试一下tmux这个神器,于是有了这一篇关于思维方式的Bl ...

随机推荐

  1. openVswitch(OVS)源代码分析之工作流程(flow流表查询)

    原文链接: openVswitch(OVS)源代码分析之工作流程(flow流表查询)

  2. 浅谈Docker(一)

    注:由于别人写的太好了就转来基础介绍! 转自:http://www.infoq.com/cn/articles/docker-core-technology-preview Docker是PaaS供应 ...

  3. Java算法之根据二叉树不同遍历结果重建二叉树

    二叉树的遍历方式一般包括前序遍历.中序遍历以及后序遍历: 前序遍历:根结点 | 左子树 | 右子树 中序遍历:左子树 | 根结点 | 右子树 后序遍历:左子树 | 右子树 | 根结点 二叉树遍历的性质 ...

  4. AltiumDesigner20画图不求人10 | 提高AD20启动速度的方法六取消加入产品改善计划 | 视频教程 | 你问我答

    教程内容:AltiumDesigner20画图不求人系列,是电子芯原创的AltiumDesigner绘图技巧视频教程,每一个技巧只需要不到3分钟的时间就可以完成学习.前期经过AD19的画图不求人,帮助 ...

  5. 团队作业4:第一篇Scrum冲刺博客(歪瑞古德小队)

    目录 一.Alpha阶段任务认领 二.明日任务安排 三.项目预期任务量 四.敏捷开发前的感想 五.团队期望 Author:歪瑞古德小队 Project:海岛漂流 集合贴:团队作业4:项目冲刺集合贴(歪 ...

  6. google protocol buffer——protobuf的使用特性及编码原理

    这一系列文章主要是对protocol buffer这种编码格式的使用方式.特点.使用技巧进行说明,并在原生protobuf的基础上进行扩展和优化,使得它能更好地为我们服务. 在上一篇文章中,我们展示了 ...

  7. 10、Entity Framework Core 3.1入门教程-执行原生SQL

    本文章是根据 微软MVP solenovex(杨旭)老师的视频教程编写而来,再加上自己的一些理解. 视频教程地址:https://www.bilibili.com/video/BV1xa4y1v7rR ...

  8. RCON 服务器命令协议

    介绍 编辑 RCON是一种允许服务器管理员远程执行Minecraft命令的协议.在1.9pre4中引入,它基本上是Minecraft的Source RCON协议的实现. 格式 编辑 响应将使用您发送的 ...

  9. Java面试题(设计模式篇+Spring/Spring MVC篇)

    设计模式 88.说一下你熟悉的设计模式? 自行熟悉. 89.简单工厂和抽象工厂有什么区别? 简单理解简单工厂:对 一个对象的创建进行封装.抽象工厂:对 一组对象的创建进行封装. 比如生产 陶瓷马 和  ...

  10. 赫然:Windows Live Writer 批量博客更新软件使用教程

    http://www.wocaoseo.com/thread-144-1-1.html 推广人员需要使用多个博客,一个一个登陆更新是很麻烦的事情,网上的桌面批量更新博客软件也不少,今天在此推荐大家使用 ...