常见的网页类型: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. JavaScript学习系列博客_15_栈内存、堆内存

    栈内存 - JS中的变量都是保存到栈内存中的,- 基本数据类型的值直接在栈内存中存储,- 值与值之间是独立存在,修改一个变量不会影响其他的变量 堆内存 - 对象是保存到堆内存中的,每创建一个新的对象, ...

  2. Mybatis_day1

    mybatis框架的引入: JDBC里面 对功能实现的进一步封装,可以按照以下方式操作 Student s = new Student(id,name); util.save(s); ORM: obj ...

  3. 安全可靠国产系统背景下的应用开发应有.NET Core的一席之地

    在中美当前背景下的安全可靠国产系统(简称安可),安可产业要实现技术自主可控,需要在四个层面逐步实现:基础硬件设施,如芯片.服务器.存储.交换机.路由器:底层软件,包括操作系统.数据库.中间件等:应用软 ...

  4. python之常用正则表达式

    以下整理python中常用的正则符号,相信能够熟悉掌握这些正则符号,大部分字符串处理将会游刃有余. 符号 含义 示例 . 可以匹配任意字符,但不包含换行符'\n' Pyt.on ->Pytmon ...

  5. Leetcode 24. Swap Nodes in Pairs(详细图解一看就会)

    题目内容 Given a linked list, swap every two adjacent nodes and return its head. You may not modify the ...

  6. Spring Cloud Config整合Spring Cloud Kubernetes,在k8s上管理配置

    1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Kubernetes有专门的ConfigMap和Secret来管理配置,但它也有一些局限性,所以还是希望通过Spring C ...

  7. 基于ABP 底层代码生成器

    ABPBuilder.Tools 基于ABP 底层代码生成器 界面预览: 生成结果: 界面很简单,输入数据库连接字符串,选择要生成的表后,就能在桌面生成底层代码,然后复制到项目里即可. 做这个生成器的 ...

  8. 《HelloGitHub》第 53 期

    兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...

  9. 类的加载,链接和初始化——1运行时常量池(来自于java虚拟机规范英文版本+本人的翻译和理解)

    加载(loading):通过一个特定的名字,找到类或接口的二进制表示,并通过这个二进制表示创建一个类或接口的过程. 链接:是获取类或接口并把它结合到JVM的运行时状态中,以让类或接口可以被执行 初始化 ...

  10. soso官方:网页分类技术介绍

    http://www.wocaoseo.com/thread-190-1-1.html 1.    技术背景     分类问题是人类所面临的一个非常重要且具有普遍意义的问题.将事物正确的分类,有助于人 ...