小弟整了几天,Apache服务器的源码安装方式的整个过程大致清晰了,这里记录一下,欢迎大家一起讨论,谢谢!
这里主要讲述了以下3点:
- 安装Apache服务器的整个过程
- 安装过程报Cannot use an external APR with the bundled APR-util的错误
- 安装过程报端口被占用的错误
使用当前最新版本:2.2.27,前往官网下载httpd,下面进行安装演示。
1.进入下载好的httpd-2.2.27.tar.gz文件所在目录,执行解压操作:
输入命令:tar -zxvf httpd-2.2.27.tar.gz
解压后会有一个文件夹如图:
2.进入解压出的文件夹根目录:
输入命令:cd httpd-2.2.27
文件夹内文件大致如图所示:
3.进行编译参数配置:
输入命令: ./configure --prefix=/usr/local/apache2 --enable-mods-shared=all
编译参数配置这里可能会遇到报Cannot use an external APR with the bundled APR-util的错误,我之前也遇到了,但是当时没有记录,所以就引用了别人的放在文章末尾处做为提示。
4.编译安装:
输入命令:make && make install
安装完成后在/usr/local/文件夹下有一个apache2文件,就是第3步配置所致。如图:
文件夹内文件如图:
5.安装完成后还需要配置conf/httpd.conf文件,修改当中的Servername,这里演示配置为localhost:80,以后可以按需更改
(这里我先前没有配置,后面的错误信息和这里没有配置也有部分关系,需要注意)
这里httpd.conf文件的配置还有部分参数,大家可以参考这里的一篇文章进行配置
地址:http://tonyguo.blog.51cto.com/379574/168534
6.启动Apache服务
输入命令:
/usr/local/apache2/bin/apachectl start
我这里出现了端口被占用的错误信息,
------------------------------------------------------错误信息-------------------------------------------------------------------------------------------
正在启动 httpd:httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName(98)Address already in use: make_sock: could not bind to address [::]:80(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
----------------------------------------------------------------------------------------------------------------------------------------------------------
部分人可能也会遇到我这个问题,我这里记录一下,如下:
这里进行故障诊断,查看80端口的使用情况以及进行处理
输入命令:
netstat –lnp | grep 80
ps xxx(对应端口号)
kill –9 xxx(对应端口号)
发现是由于先前配置遗留所致,进行修改
输入命令:
vi /etc/rc.d/rc.local
修改后再次查询,结果如下:
这里是修改/etc/rc.d/rc.local文件,将先前遗留下来的东西去掉
修改后查看端口使用情况
输入命令:netstat –lnp | grep 80
这里还是开启了这个端口,为什么呢?
使用其他处理命令处理:
输入命令:
ps –aux | grep http
ps –aux | grep apache
kill –9 xxx(xxx表示上述查找结果对应端口号)
接下来看看端口使用情况
输入命令:netstat –lnp | grep 80
启动服务: /usr/local/apache2/bin/apachectl start
打开浏览器,输入localhost:80查看是否启动成功,结果如下,启动成功
这里安装有时也会有这个问题,我之前也遇到过,但是没有记录了,这里引用别人的文章里面的一段记录一下:
---------------------------------------------------------------------------------------------------------------------------------------
3.2 关于在安装apache过程中报Cannot use an external APR with the bundled APR-util错误的解决办法
参考至:http://blog.csdn.net/bluishglc/article/details/6867358
有时候,在安装apache,执行./configure操作时会报这个错误,解决方法是安装apache2.2.x自身携带的apr,方法为:
1.自源码安装目录httpd-2.2.21进入apache2.2.x自带apr的安装目录
cd srclib/apr
2.安装apr(此处将之安装在/usr/local/apr下,如果系统中已经安装apr,可找到安装目录进行覆盖)
./configure --prefix=/usr/local/apr
makemake install
3.安装apr-util
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install
4.使用新安装的apr重新进行apache编译配置
放回安装根目录httpd-2.2.21,执行:
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/bin
补充:
如果你安装是apache-2.4以上版本,有以下几点不同:
1、需要单独下载apr和apr-util
apr下载地址: http://mirror.bjtu.edu.cn/apache//apr/apr-1.4.6.tar.bz2
apr-util下载地址:http://mirror.bjtu.edu.cn/apache//apr/apr-util-1.4.1.tar.bz2
2. 此外还需要安装pcre
去http://pcre.org/下载pcre,解压进入源码目录执行
./configure --prefix=/usr/local/pcre
3. 最后安装apache时configure需要这样配置
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/bin --with-pcre=/usr/local/pcre
转载请注明出处:http://blog.csdn.net/yannanying/article/details/42966749