学习安装了好几天,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下载地址:
apr-util下载地址:
2. 此外还需要安装pcre
去下载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
Ubuntu Server 14.04 安装Web服务器(Linux+Apache+MySQL+PHP)
Ubuntu 14.04中Apache 2.2升级到2.4后的几个要点
Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置
CentOS 5.9下编译安装LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12)
RedHat 5.4下Web服务器架构之源码构建LAMP环境及应用PHPWind
LAMP源码环境搭建WEB服务器Linux+Apache+MySQL+PHP
Apache 的详细介绍:请点这里
Apache 的下载地址:请点这里