一、前言
安装的背景就是公司项目要用,自己在linux安装软件不多,过程比较曲折,需要记录一下(最近几篇博客好像都会有这种高大上的背景)~先说下笔者安装环境以及相关软件版本:
操作系统:RedHat Enterprise Linux Server release 5.8 (Tikanga)
apache:httpd-2.4.25.tar.gz
apr:apr-1.5.2.tar.gz
apr-util:apr-util-1.5.4.tar.gz
pcre:pcre-8.40.tar.gz
Server version: Apache/2.4.37 (Unix)
CentOS Linux release 7.4.1708 (Core)
Server built: Nov 9 2018 15:22:45
下载3个环境源码以及httpd压缩源码安装包,下载本地的路径随意。我是下载解压到/usr/local里
wget http://www.apache.org/dist/httpd/httpd-2.4.37.tar.gz
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz
wget http://mirrors.hust.edu.cn/apache//apr/apr-1.6.5.tar.gz
wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
注意:具体版本可以自己按需选择
2.分别解压4个文件后先编译安装3个环境库文件。
安装位置/usr/local/*
注意安装时的选项,必须指定3个环境文件位置!
./configure --prefix=/usr/local/apr //配置安装路径/安装在/usr/local/apr目录
make && make install //安装
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
make && make install //安装
./configure --prefix=/usr/local/pcre
make && make install //安装
./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd2 --with-apr=/usr/local/apr
--with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre
make && make install //安装
3.导入httpd相关运行环境变量
1)配置PATH环境变量
[root@RSYNCSERVER profile.d]# vim apache.sh
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/apache2/bin
2)导入lib运行库位置
[root@RSYNCSERVER ld.so.conf.d]# ls
apache.conf dyninst-x86_64.conf kernel-3.10.0-693.el7.x86_64.conf mariadb-x86_64.conf
/usr/local/apache2/lib #2.4.37版本已经没有lib目录。
3.导出头文件
ln -sv /usr/local/apache2/include/ apache2
4.导出帮助文件
vim /etc/man_db.conf
MANDATORY_MANPATH /usr/local/apache2/man
5.注意
使用netstat -lnutp|grep :80查看只有tcp6侦听80端口时,需要关闭ipv6,再重启apache服务和系统
vim /etc/default/grub,GRUB_CMDLINE_LINUX="ipv6.disable=1 crashkernel=auto rhgb quiet...
grub2-mkconfig -o /boot/grub2/grub.cfg
重启系统后重启apache:reboot&apachectl restart
最后测试apache服务是否正常:输入http://127.0.0.1
It works!
安装提示
Linux下,源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。
过程中用到“configure --prefix=安装目录 --with-name=依赖库源码解压目录”;其中--prefix指的是安装目录,--with指的是安装本文件所依赖的库文件。
安装httpd时,进行指定安装,用到./configure --prefix
具体解释:“.”表示当前目录;“/”是目录分隔符;合起来就是当前目录下。
1)如不指定prefix,则可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share。如果你要卸载这个程序,要么在原来的make目录下用一次make uninstall(前提是make文件指定过uninstall),要么去上述目录里面把相关的文件一个个手工删掉。
2)如指定prefix,直接删掉一个文件夹就够了。
注:
./configure的作用是检测系统配置,生成makefile文件,以便你可以用make和make install来编译和安装程序。
./configure是源代码安装的第一步,主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系,但并不是所有的tar包都是源代码的包。
你可以先命令ls,看有没有configure或者makefile文件。
1)如果有configure,就./configure,有很多参数。如果系统环境合适,就会生成makefile,否则会报错。
2)如果有makefile,就直接make,然后make install。
你还可以用rpm或者deb包来安装。而且现在的发行版都有自己的包管理器,比如apt或yum,一个命令就可以从源下载软件,还可以自动解决依赖问题。
二、正文
下载Apache安装包(本文下载httpd-2.4.25.tar.gz),下载地址:http://httpd.apache.org/
在安装Apache时,原作者分别针对不同版本进行了安装,在编译时是不同的,configure后跟的参数不同,本文是针对httpd-2.4.25.tar.gz进行安装
httpd-2.4.25版本编译命令:
./configure --prefix=/usr/local/apache2 (安装目录参数后面可以不加任何参数,直接安装即可)
make
make install
httpd-2.4.25版本编译命令:
./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre (除了指定Apache的安装目录外,还要安装apr、apr-util、pcre,并指定参数)
make
make install
在编译Apache(在安装httpd-2.4.25时遇到的问题)时分别出现了error:apr not found、error:APR-util not found、error:pcre-config for libpcre not found的问题。
下面就httpd-2.4.25的这些问题解决来实际操作一把:
http://apr.apache.org/download.cgi 下载apr-1.5.2.tar.gz、apr-util-1.5.4.tar.gz
https://sourceforge.net/projects/pcre/files/ 下载pcre-8.40.tar.gz(不要下载pcre2开头的,不然安装的时候会报找不到pcre-config脚本的错误)
1.解决apr not found问题
[root@localhost bin]# tar -zxf apr-1.5.2.tar.gz
[root@localhost apr-1.5.2]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.5.2]# make
[root@localhost apr-1.5.2]# make install
2.解决APR-util not found问题
[root@localhost bin]# tar -zxf apr-util-1.5.4.tar.gz
[root@localhost apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config
[root@localhost apr-util-1.5.4]# make
[root@localhost apr-util-1.5.4]# make install
3、解决pcre-config for libpcre not found问题
[root@localhost ~]# tar -zxf pcre-8.40.tar.gz
[root@localhost ~]# cd pcre-8.40
[root@localhost pcre-8.40]# ./configure --prefix=/usr/local/pcre
[root@localhost pcre-8.40]# make
[root@localhost pcre-8.40]# make install
如果在安装pcre过程中报:
那么请先执行:
**yum install -y gcc gcc-c++**
apache默认占用80端口,所以如果有应用占用80这个端口,就要注意会存在端口冲突问题。
•**启动Apache**:/usr/local/apache2/bin/apachectl start
•**停止Apache**:/usr/local/apache2/bin/apachectl stop
•**重启Apache**:/usr/local/apache2/bin/apachectl restart
在IE中通过http://localhost:80,如果看到页面中显示“It works!”字样,则代表Apache验证通过。如果网站的index后缀是PHP格式的,则要修改httpd.conf配置文件(/usr/local/apache2/conf),在DirectoryIndex增加 index.php
********************************补充说明*******************************
笔者安装完APR、ARP-UTIL、PCRE之后,执行如下命令:
`./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre`
之后,会报如下错误:
![image](http://upload-images.jianshu.io/upload_images/14653704-dcb11df5380afff3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
查来查去,发现貌似是系统自带的SSL有问题,因为此次安装使用到的软件基本都是最新版的,是因为系统自带的这个openssl版本过低?抱着试一下的态度,重新下载一个openssl进行安装(反正装的云里雾里的),先试试再说,附上安装教程:
1) [https://www.openssl.org/source/](https://www.openssl.org/source/)下载openssl-1.0.2k.tar.gz
2) #tar -xzf openssl-1.0.2k.tar.gz
3) #cd openssl-1.0.2k
4) openssl-1.0.2k#./config --prefix=/usr/local/openssl
5) openssl-1.0.2k#make depend
6) openssl-1.0.2k#cd /usr/local
7) /usr/local# ln -s openssl ssl
8) 在/etc/ld.so.conf文件的最后面,添加如下内容:
/usr/local/openssl/lib
9) # ldconfig
10) 添加OPESSL的环境变量,在/etc/profile的最后一行,添加:
export OPENSSL=/usr/local/openssl/bin
export PATH=$OPENSSL:$PATH:$HOME/bin
11) 执行source /etc/profile
至此,openssl安装完毕,最后执行:
./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
apache安装完毕!
三、参考链接
1、http://blog.csdn.net/dazhi_100/article/details/17143213
2、http://www.cnblogs.com/zhuque/archive/2012/11/03/2763352.html