apche编译安装
常见的网页类型: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编译安装的更多相关文章
- CentOS 6.3编译安装LAMP环境笔记
转载地址:http://www.jb51.net/article/54969.htm 最近抽空在虚拟机上测试成功了LAMP各个最新版本的整合编译安装,算是把之前的博文整合精简,以下内容均在CENTOS ...
- apache源码编译安装
源码安装apche 下载apache的源码包文件 访问http://mirror.bit.edu.cn/apache/httpd/,复制如下gz文件的链接地址,并使用wget下载到本地 wget -P ...
- 第四次作业;创建raid5,源码编译安装;磁盘配额
创建raid5 格式化 ext4 创建物理卷: 创建卷组: 创建逻辑卷: 格式化 ext4 挂载 开机自启动 创建raid配置文件 源码编译安装: 创建本地yum仓库 umount /dev/sr0 ...
- centos7源码编译安装lamp/lnmp
centos7源码编译安装lamp/lnmp 进程:是包工头(相当于是个门,只管开门关门,不管门内的事儿) 线程:是各种工种(cpu调度的是线程) 进程 是一件事情, 线程 是 同一个时间范围内 同时 ...
- Centos6.5下编译安装mysql 5.6
一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e ...
- CENTOS 6.5 平台离线编译安装 PHP5.6.6
一.下载php源码包 http://cn2.php.net/get/php-5.6.6.tar.gz/from/this/mirror 二.编译 编译之前可能会缺少一些必要的依赖包,加载一个本地yum ...
- Linux下编译安装Vim8.0
什么是Vim? Vim 是经典的 UNIX 编辑器 Vi 的深度改良版本.它增加了许多功能,包括:多级撤销.格式高亮.命令行历史.在线帮助.拼写检查.文件名补完.块操作.脚本支持,等等.除了字符界面版 ...
- OpenSUSE下编译安装OpenFoam
在不是Ubuntu系统下安装OpenFoam,需要采用编译安装的方式.以下以OpenSuSE为例进行编译安装. 1 软件包准备 需要下载两个程序包: OpenFOAM-4.x-version-4.1. ...
- 不要着急改代码,先想想--centos 6.8下编译安装tmux
诸位读者新年好,2017开年第一篇博客,请允许我先问候一下看到这篇博客的诸位.写博客是我2017年定下的目标之一,希望我会坚持下去. 最近打算尝试一下tmux这个神器,于是有了这一篇关于思维方式的Bl ...
随机推荐
- Oracle 根据单元格内容不同来判断不同条件
select xxx,xxx from xxx where decode(AAA,0,BBB,1,CCC)='12345' 如果AAA字段等于0则AAA=''12345' 否则如果BBB字段等于1则B ...
- 实现直方图均衡化(java+opencv)
什么是直方图均衡化? 直方图均衡化是一种简单有效的图像增强技术,通过改变图像的直方图来改变图像中各像素的灰度,主要用于增强动态范围偏小的图像的对比度.原始图像由于其灰度分布可能集中在较窄的区间,造成图 ...
- Eclipse中构建maven项目的两种方式
Eclipse中构建maven项目的两种方式 方式一: 1.构建maven项目 1.1 新建meven项目,可在Other中找到maven文件夹 1.2 进入maven项目后,点击next 1.3 在 ...
- Flink的应用场景和架构
Flink的应用场景 Flink项目的理念就是:Flink是为分布式,高性能,随时可用以及准确的流处理应用程序打造的开源流处理框架.自2019年开源以来,迅速成为大数据实时计算领域炙手可热的技术框架. ...
- js 常用业务工具方法 (es5,es6)持续更新
数组去重 数组去重最原始的方法就是使用双层循环. es5: // 使用indexOf function unique(array) { var res = []; for (var i = 0, le ...
- Linux用户和组密令大全
本文总结了Linux添加或者删除用户和用户组时常用的一些命令和参数. 1.建用户: adduser phpq passwd phpq ...
- 区块链入门到实战(29)之Solidity – 环境搭建
在线开发环境Remix(推荐) 学习Solidity推荐使用在线开发环境Remix,本教程的例子将使用Remix开发运行. 安装本地编译器 安装 nodejs / npm node官方网站下载node ...
- 使用C#对华为IPC摄像头二次开发(一)
开发环境: 操作系统:Win10 x64专业版2004 开发工具:VS2019 16.7.2 目标平台:x86 首先去下载IPC SDK(点击下载,需要华为授权账户.) 新建一个WPF的项目,Fram ...
- 从零开始的SpringBoot项目 ( 二 ) 使用IDEA创建一个SpringBoot项目
工欲善其事 , 必先利其器 . IntelliJ IDEA 2019.3.3 x64的安装与破解 下面详细说明下如何使用idea创建我们的第一个springboot项目: 首先打开idea主界面选择 ...
- Min Cost Climbing Stairs [746]
Min Cost Climbing Stairs [746] 题目描述 简单来说就是:要跳过当前楼梯需要花费当前楼梯所代表的价值cost[i], 花费cost[i]之后,可以选择跳一阶或者两阶楼梯,以 ...