准备
下载源码包
到网上下载好apr
、apr-util
、pcre
和apache
的源码包到/usr/local/src
目录下,以待备用。
他们的下载地址分别如下:
apr和apr-util : http://apr.apache.org/downloa...
apache : http://httpd.apache.org/downl...
安装
一、安装apr
解压后,编译安装至/usr/local/apr
目录
qingye@qingye-pc:/usr/local/src$ sudo tar -zxvf apr-1.5.2.tar.gz
qingye@qingye-pc:/usr/local/src$ cd apr-1.5.2
qingye@qingye-pc:/usr/local/src/apr-1.5.2$ sudo ./configure --prefix=/usr/local/apr
qingye@qingye-pc:/usr/local/src/apr-1.5.2$ sudo make
qingye@qingye-pc:/usr/local/src/apr-1.5.2$ sudo make install
二、安装apr-util
解压后,编译安装至/usr/local/apr-util
目录
qingye@qingye-pc:/usr/local/src$ sudo tar -zxvf apr-util-1.5.4.tar.gz
qingye@qingye-pc:/usr/local/src$ cd apr-util-1.5.4
qingye@qingye-pc:/usr/local/src/apr-util-1.5.4$ sudo ./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config
qingye@qingye-pc:/usr/local/src/apr-util-1.5.4$ sudo make
qingye@qingye-pc:/usr/local/src/apr-util-1.5.4$ sudo make install
三、安装pcre
解压后,编译安装至/usr/local/pcre
目录
qingye@qingye-pc:/usr/local/src$ sudo tar -zxvf pcre-8.39.tar.gz
qingye@qingye-pc:/usr/local/src$ cd pcre-8.39
qingye@qingye-pc:/usr/local/src/pcre-8.39$ sudo ./configure --prefix=/usr/local/pcre
qingye@qingye-pc:/usr/local/src/pcre-8.39$ sudo make
qingye@qingye-pc:/usr/local/src/pcre-8.39$ sudo make install
四、安装Apache
解压后,编译安装至/usr/local/apache
目录
qingye@qingye-pc:/usr/local/src$ sudo tar -zxvf httpd-2.4.23.tar.gz
qingye@qingye-pc:/usr/local/src$ cd httpd-2.4.23
qingye@qingye-pc:/usr/local/src/httpd-2.4.23$ sudo ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre --enable-module=so --enable-mods-shared=all --enable-module=rewirte --enable-cache --enable-file-cache --enable-mem-cache --enable-disk-cache --disable-cgid --disable-cgi
qingye@qingye-pc:/usr/local/src/httpd-2.4.23$ sudo make
qingye@qingye-pc:/usr/local/src/httpd-2.4.23$ sudo make install
configure 参数解释说明如下:
--prefix=/usr/local/apache2 //体系无关文件的顶级安装目录PREFIX ,也就Apache的安装目录。
--enable-module=so //打开 so 模块,so 模块是用来提 DSO 支持的 apache 核心模块
--enable-mods-shared=all //编译全部的模板,对于不需要我们可以在httpd.conf去掉。
--enable-cache //支持缓存
--enable-file-cache //支持文件缓存
--enable-mem-cache //支持记忆缓存
--enable-disk-cache //支持磁盘缓存
--enable-static-support //支持静态连接(默认为动态连接)
--enable-static-htpasswd //使用静态连接编译 htpasswd - 管理用于基本认证的用户文件
--enable-static-htdigest //使用静态连接编译 htdigest - 管理用于摘要认证的用户文件
--enable-static-rotatelogs //使用静态连接编译 rotatelogs - 滚动 Apache 日志的管道日志程序
--enable-static-logresolve //使用静态连接编译 logresolve - 解析 Apache 日志中的IP地址为主机名
--enable-static-htdbm //使用静态连接编译 htdbm - 操作 DBM 密码数据库
--enable-static-ab //使用静态连接编译 ab - Apache HTTP 服务器性能测试工具
--enable-static-checkgid //使用静态连接编译 checkgid
--disable-cgid //禁止用一个外部 CGI 守护进程执行CGI脚本
--disable-cgi //禁止编译 CGI 版本的 PHP
--enable-ssl // 编译 ssl模块。
五、测试
此时如果直接运行的话,可能会报错:
qingye@qingye-pc:/usr/local/apache/bin$ ./apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
(13)Permission denied: AH00072: make_sock: could not bind to address [::]:80
(13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
那么报错原因是什么呢?因为80是系统保留端口,而非root
用户只能启动1024以上端口,故这里需要使用sudo
执行,或者切换至root
执行即可启动:
qingye@qingye-pc:/usr/local/apache/bin$ sudo ./apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
虽然成功启动了,但是页面上有个警告,这里注意,在安装好,启动之前,需要到/usr/local/apache/conf/
下编辑httpd.conf文件,搜索#ServerName
,添加ServerName localhost:80
即可:
#ServerName www.example.com:80
ServerName localhost:80
现在重启:
qingye@qingye-pc:~$ sudo /usr/local/apache/bin/apachectl start
httpd (pid 13826) already running
OK,启动成功,无任何报错和警告
查看浏览器效果,地址栏输入http://127.0.0.1
或http://localhost
出现如下页面:
安装全部完成
总结
Apache
的安装和大多源码编译安装一样,只是参数比较多而已,参照手册,一般不会出错。
注意在编译安装Apache之前,一定要先安装apr
、apr-util
和pcre
这几个Apache
依赖的库,否则Apache
不能成功安装。
如果在configure报错,注意检查系统是否已经安装gcc、gcc++等软件或者库文件。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。