Apache httpd-2.4.10编译安装

系统: CentOS6.5_64

软件: httpd-2.4.10.tar.bz2

依赖: openssl-1.0.1j.tar.gz、apr-1.5.1.tar.bz2、apr-util-1.5.4.tar.bz2、pcre-devel

下载地址: http://www.openssl.org/source/            openssl

下载地址: http://httpd.apache.org/download.cgi      httpd

下载地下: http://apr.apache.org/download.cgi        apr,apr-util   是Apache的项目

pcre-devel 我们的系统安装光盘上就有。

首先我们先说明一些情况, 我们已经安装了基础开发包。

我们的系统上已经安装了apr和openssl,但是版本太低了,而它们还会被其它的软件所依赖,所以在不影响其它软件的情况下,就只能编译安装新的版本了。 而原来的httpd也会被其它的软件所依赖,不可以卸载。

1. 先把pcre-devel装上,直接yum安装。

yum install pcre-devel -y                  #-y 是直接安装的意思,敬我以前连-y都不知道。

2. 安装apr-1.5.1, 这个版本是我昨天下载的,现在是最新的版本。 低版本会安装不上event模块。

./configure --prefix=/usr/local/apr1.5      #只来个安装位置就可以
make && make install                        #稍等片片刻。

3. 安装apr-util-1.5.4.

./configure --prefix=/usr/local/apr1.5 --with-apr=/usr/local/apr1.5
#这个是apr的工具集,它依赖于上面的那个apr, 所以加上--with来指定我们安装apr的目录。
#跟apr安装在一个目录,现在看来没有什么问题。
make && make install

4. 安装openssl-1.0.1j

./config --prefix=/usr/local/openssl1j enable-shared    
# enable-shared没有这一项, httpd编译会报错。  有点奇怪的是,在虚拟机上会报错,提示要加上
#-fPIC 什么的, 笔记在家里的电脑上,也记不清了。 
make $$ make install

导出库文件,新建/etc/ld.so.conf.d/openssl1j.conf文件。    https会用到新版本的库文件。

vim /etc/ld.so.conf.d/openssl1j.conf
ldconfig

文件内容就写你的openssl安装目录下的lib的路径。 如:

/usr/local/openssl1j/lib

5. 安装httpd2.4.10

./configure --prefix=/usr/local/httpd2.4 --sysconfdir=/etc/httpd2.4 --enable-so --enable-ssl --enable-rewrite --enable-cgi --with-zlib --with-pcre --with-apr=/usr/local/apr1.5/ --with-apr-util=/usr/local/apr1.5/ --with-ssl=/usr/local/openssl1j/ --enable-modules=most --enable-mpms-shared=all --with-mpm=event
make && make install

#--prefix 安装目录   --sysconfdir 配置文件目录   --enable-so 开启DSO动态装卸shared模块    --enable-ssl https的功能    --enable-rewrite 地址重写   --enable-cgi CGI脚本功能  --with-zlib 压缩功能的函数库   --with-pcre  perl库    刚才安装的软件的目录   --enable-modules=most 编译常用的模块  --enable-mpms-shared=all 所有的动态模块  后面这个默认挂载MPM模块event.

6. 杂项

(1)去httpd的安装目录看一下结果。  一切OK的话就可以下面的了。

(2) 把httpd的头文件符号链接到/usr/include      #不是必须的,怕以后有软件会用。

ln -s /usr/local/httpd2.4/include/ /usr/include/httpd2.4

(3) 新建/etc/profile.d/httpd2.4.sh文件,添加进PATH变量。

vim /etc/profile.d/httpd2.4.sh            #写入文件内容,执行一个source
source /etc/profile.d/httpd2.4.sh

文件内容:
export PATH=/usr/local/httpd2.4/bin:$PATH

注意路径要写在PATH的前头,这样bash先找到的就是新的httpd了。 不然自动打开的又会是以前的那个httpd了。

[[email protected] bin]# echo $PATH
/usr/local/httpd2.4/bin:/usr/local/httpd2.4/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

(4)停止你的老httpd, 来看看新的可不可以运行吧。

[[email protected] openssl1j]# httpd
AH00557: httpd: apr_sockaddr_info_get() failed for CentOS-Office
AH00558: httpd: Could not reliably determine the server‘s fully qualified domain name, using 127.0.0.1. Set the ‘ServerName‘ directive globally to suppress this message
[[email protected] openssl1j]# httpd -v        #查看版本
Server version: Apache/2.4.10 (Unix)
Server built:   Nov 10 2014 11:10:33
[[email protected] openssl1j]#

看来我这里暂时是可以运行了。 启动httpd的时候报的错,只要自已的主机名可以解析自已的IP,就没事了。 嗯,在我们这种只是做实验,做练习来说。 添加到/etc/hosts文件里是个不错的办法。

像我这里,加上一行:

172.16.2.0   CentOS-Office
就OK了。

(5) 来个服务脚本,可以用service来启动关闭。

为了避免麻烦,直接把原来的httpd的服务脚本复制一下,改吧改吧。

cp /etc/init.d/httpd /etc/init.d/httpd
vim /etc/init.d/httpd

先贴一下要改的部分, 占占版面。

 40 
 41 # Path to the apachectl script, server binary, and short-form for messages.
 42 apachectl=/usr/sbin/apachectl            #这一行要改,我就写下边了。
    apachectl=/usr/local/httpd2.4/bin/apachectl      #注意路径,看你安装在哪了。 
      
 43 httpd=${HTTPD-/usr/sbin/httpd}            #这一行也要改
    httpd=/usr/local/httpd2.4/bin/httpd       #因为httpd2.4可以动态加载MPM模块。
                                #所以就不用运行不同MPM模块的程序,指定这一个就好。
                                #
 44 prog=httpd
 45 pidfile=${PIDFILE-/var/run/httpd/httpd.pid}   #这一行改
    pidfile=/var/run/httpd2.4/httpd2.4.pid        #不是默认路径,还要改httpd配置文件,
                                #可以把路径改成你的安装目录下的logs目录,默认是在这里。
                                
 46 lockfile=${LOCKFILE-/var/lock/subsys/httpd}   #这一行改
    lockfile=/var/lock/subsys/httpd2.4            #
    
 47 RETVAL=0
 48 STOP_TIMEOUT=${STOP_TIMEOUT-10}
 49

OK 保存退出。

上边的PID文件的路径如果用默认路径,就不用下边这几行了。

[[email protected] run]# mkdir httpd2.4
[[email protected] run]# chmod 700 httpd2.4/        #这个文件是由第一个httpd进程创建的
                                                     #这个进程是root启动的。root的权限。
[[email protected] httpd2.4]# vim /etc/httpd2.4/httpd.conf 
文件里面加入这一行: 
pidFile "/var/run/httpd2.4/httpd2.4.pid"

好啦, 如果现在有httpd进程在运行,  killall httpd

然后就可以启动试试啦。

[[email protected] run]# service httpd start
正在启动 httpd:                                           [确定]

这样暂时就算是安装完成了.



注意: httpd2.4的脚本是httpd , 而原来httpd2.2成了httpd.bak.

我们的脚本名称还是httpd. 以前httpd2.2的时候添加过chkconfig的话,就不用设置了。

chkconfig设置:

[[email protected] run]# chkconfig --list httpd
httpd 服务支持 chkconfig,但它在任何级别中都没有被引用(运行“chkconfig --add httpd”)
[[email protected] run]# chkconfig --add httpd
[[email protected] run]# chkconfig httpd on
[[email protected] run]# chkconfig --list httpd
httpd              0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭
[[email protected] run]#


后记: 这样就可以了,初学中,哪位大侠路过发现问题,可一定要来一砖啊。

时间: 2024-11-05 15:59:30

Apache httpd-2.4.10编译安装的相关文章

Cent OS 6.5 LAMP(Apache+php+mysql+Xcache) 编译安装

详细编译安装LAMP环境 安装OS及软件版本 OS:Cent OS 6.5 apache:httpd-2.4.10.tar.gz php:php-5.4.31.tar.bz2 mysql:mysql-5.6.19.tar.gz Xcache:xcache-3.1.0.tar.gz 一.安装前准备 修改主机名    [[email protected] ~]#sed -i 's/HOSTNAME=localhost.localdomain/HOSTNAME=linux.lamp.com/g' /e

ubuntu 13.10 编译安装conkeror

conkeror几年前我用过,还是一个不错的浏览器,这次因为笔记本只支持Ubuntu 13.10, 而不支持更新版本,就尝试着在Ubuntu 13.10上安装最新conkeror,但是没想到居然没有安装源.于是就编译吧, 当然还是要首先clone到源代码: git clone git://repo.or.cz/conkeror.git 然后根据官方文档的提示: To build your own Conkeror package, install fakeroot, quilt, and deb

PostgreSQL 10编译安装(CentOS 7)

文档版本:v1.0 环境说明: PostgreSQL 10.9 CentOS 7.6 1 安装必要软件 # yum groupinstall -y "Development tools" # yum install -y bison flex readline-devel zlib-devel gcc 2 获取Postgres资源并编译安装 可通过访问https://www.postgresql.org/ftp/source/确定所需版本,以下使用10.9版本进行安装. # pwd /

ubuntu 14.10 编译安装 Python

从源代码直接编译安装Python2.7 $ wget -c https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz $ tar -xzvf Python-2.7.9.tgz $ cd Python-2.7.9/ $ LDFLAGS="-L/usr/lib/x86_64-linux-gnu" ./configure $ make $ sudo make install 其中, 上面的wget -c (url)是下载命令,参数-c表

ubuntu 14.10 编译安装 Ruby

源码编译安装ruby-2.2 1.获取源码包: wget http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.2.tar.gz 2.安装依赖包 sudo apt-get install -y build-essential openssl curl libcurl3-dev libreadline6 libreadline6-dev git zlib1g zlib1g-dev libssl-dev libyaml-dev libxml2-dev li

Apache 2.4. 源码编译安装详解

1).下载httpd软件包和解压 cd  /usr/local/src wget http://apache.opencas.org//httpd/httpd-2.4.18.tar.gz tar zxvf httpd-2.4.18.tar.gz 2).安装前的系统需求: (1)APR and APR-Util cd /usr/local/src wget http://apache.opencas.org//apr/apr-1.5.2.tar.gz wget http://apache.open

Apache应用和优化篇:编译安装以及重新认识PHP

1.进入php源码包,执行命令 ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/myapache/bin/apxs     #把php作为一个模块加载在apache中 sudo make && sudo make install 2.如果编译php提示缺少xml2,可以执行apt-get install libxml2 libxml2-dev 编译完成,查看apache配置文件,会增加一个 libphp7.so 3.a

Nginx1.10编译安装

企业实战千万PV的Nginx就得这么安装 更多文章请访问 乌龟运维 wuguiyunwei.com 已经上线六个个多月 现在非常稳定 这是现在的整理 Nginx 下载 wget http://nginx.org/download/nginx-1.10.3.tar.gz Openssl 下载 Wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz Pcre 下载 wget ftp://ftp.csx.cam.ac.uk/pub/softw

PHP 7.2.10 编译安装

准备环境 1.CentOS 系统 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) 2.防火墙 [[email protected] ~]# systemctl stop firewalld [[email protected] ~]# systemctl disable firewalld [[email protected] ~]# cat /etc/sysconfig/se