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 ...
随机推荐
- 【有向图】强连通分量-Tarjan算法
好久没写博客了(都怪作业太多,绝对不是我玩的太嗨了) 所以今天要写的是一个高大上的东西:强连通 首先,是一些强连通相关的定义 //来自度娘 1.强连通图(Strongly Connected Grap ...
- js使用html2canvas 生成图片然后下载
1:html2canvas官网 首先去官网把这个JS下载下来 <!DOCTYPE html> <html lang="en"> <head> & ...
- Mybatis 中判断参数长度
<if test="params.length()!=2">
- Linux文件权限-笔记
文件权限共10个字符,第一个字符表示该文件是[文件夹]或[文件]——如果是字符“d"则表示该文件是文件夹:如果是字符“-”则表示是文件. 后九个字符,三个一组,共三组,分别表示[所有者权限] ...
- js 常用业务工具方法 (es5,es6)持续更新
数组去重 数组去重最原始的方法就是使用双层循环. es5: // 使用indexOf function unique(array) { var res = []; for (var i = 0, le ...
- Solon详解(六)- 定制业务级别的验证注解
在业务的实现过程中,尤其是对外接口开发,我们需要对请求进行大量的验证并返回错误状态码和描述.lombok 框架有很多很赞的注解,但是人家是throw一个异常,这与有些需求不一定能匹配. 该文将基于So ...
- Communication-Efficient Learning of Deep Networks from Decentralized Data
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Proceedings of the 20th International Conference on Artificial Intell ...
- Windows & Linux 安装使用 Vim 编辑器 3分钟入门 - 精简归纳
Windows & Linux 安装使用 Vim 编辑器 3分钟入门 - 精简归纳 JERRY_Z. ~ 2020 / 8 / 25 转载请注明出处! 目录 Windows & Lin ...
- ASP.NET Core3.1使用IdentityServer4中间件系列随笔(四):创建使用[ResourceOwnerPassword-资源所有者密码凭证]授权模式的客户端
配套源码:https://gitee.com/jardeng/IdentitySolution 本篇将创建使用[ResourceOwnerPassword-资源所有者密码凭证]授权模式的客户端,来对受 ...
- Android开发java开发之常用英文词汇汇总。程序员必备英语单词
ANR (Application Not Response ) bundle 捆, entire 整个的,完整的 lifetime 生命周期 entire lifetime 完整生命周期 visi ...