常见的网页类型: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. 手把手教你写VueRouter

    Vue-Router提供了俩个组件 `router-link` `router-view`, 提供了俩个原型上的属性`$route` `$router` ,我现在跟着源码来把它实现一下 开始 先看平时 ...

  2. Swing记事本项目

    具备记事本功能:文件保存.文件打开.复制.黏贴.撤销.全选.字体修改.字体颜色修改.背景颜色修改

  3. Jmeter 常用函数(13)- 详解 __machineIP

    如果你想查看更多 Jmeter 常用函数可以在这篇文章找找哦 https://www.cnblogs.com/poloyy/p/13291704.html 作用 返回机器(电脑)IP 语法格式 ${_ ...

  4. JavaScript学习系列博客_20_JavaScript 作用域

    作用域 - 作用域指一个变量的作用的范围 - 在JS中一共有两种作用域 1.全局作用域 - 直接编写在script标签中的JS代码,都在全局作用域- 全局作用域在页面打开时创建,在页面关闭时销毁 - ...

  5. 第4章 SparkSQL数据源

    第4章 SparkSQL数据源 4.1 通用加载/保存方法 4.1.1 手动指定选项 Spark SQL的DataFrame接口支持多种数据源的操作.一个DataFrame可以进行RDDs方式的操作, ...

  6. 常用sql语句整理

    1.开/关 外键约束 -- 关 SET FOREIGN_KEY_CHECKS = 0; -- 开 SET FOREIGN_KEY_CHECKS = 1; 2.查看表的容量大小 use informat ...

  7. JavaFX桌面应用-SpringBoot + JavaFX

    SpringBoot对于Java程序员来说可以是一个福音,它让程序员在开发的时候,大大简化了各种spring的xml配置. 那么在JavaFX项目使用SpringBoot会是怎么样的体验呢? 这次使用 ...

  8. MySQL遇见SELECT list is not in GROUP BY clause and contains nonaggre的问题

    目录 报错现象 原因 解决方法 报错现象 执行SQL报错如下: SELECT student.s_no,student.s_name,SUM(result.mark) FROM student,res ...

  9. springboot+themeleaf+bootstrap访问静态资源/无法访问静态资源/图片

    在网页HTML上访问静态资源的正确写法例: 1.<img src="../../static/bootstarp/img/2.jpg"     th:src="@{ ...

  10. 手摸手 Elastic Stack 使用教程 - 环境安装

    前言 在日常的开发中,会涉及到对一些中间件以及基础组件的使用,日志汇总分析.APM 监控.接口的健康检查.站内搜索,以及对于服务器.nginx.iis 等等的监控,最近的几个需求点,都和 Elasti ...