准备

下载源码包

到网上下载好aprapr-utilpcreapache的源码包到/usr/local/src目录下,以待备用。

他们的下载地址分别如下:

安装

一、安装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.1http://localhost出现如下页面:

clipboard.png

安装全部完成

总结

Apache的安装和大多源码编译安装一样,只是参数比较多而已,参照手册,一般不会出错。

注意在编译安装Apache之前,一定要先安装aprapr-utilpcre这几个Apache依赖的库,否则Apache不能成功安装。

如果在configure报错,注意检查系统是否已经安装gcc、gcc++等软件或者库文件。


青叶
1.5k 声望112 粉丝

一个phper