deepin 15.3 编译安装Apache 2.4.23

泛型星云
• 阅读 3543

准备

下载源码包

到网上下载好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出现如下页面:

deepin 15.3 编译安装Apache 2.4.23

安装全部完成

总结

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

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

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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
VSCode配置FiraCode和更纱黑体字体
!(https://oscimg.oschina.net/oscnet/c7bb62d935ceb01d3b7fe176322e84ae00d.png)Fira Code下载到FiraCode字体的GitHub(https://www.oschina.net/action/GoToLink?urlhttps%
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
泛型星云
泛型星云
Lv1
平凡且认真的生活总会变得可爱。
文章
4
粉丝
0
获赞
0