Centos7手动编译安装apache

Stella981
• 阅读 759

Centos7手动编译安装apache

现在很多人搭建web环境选择了一键脚本或可视化管理面板,因此我认为在使用一键脚本之前,一定要自己搭建一次, 生产环境的话,炸了都不知道怎么快速解决可就太难受了,另外就是安全性问题,这个不多谈,总之能不用就不用吧

最近手边有台小内存VPS,手动搭个apache做下载站吧

编译安装需要gcc套件

yum install -y gcc gcc-c++

Centos7手动编译安装apache 安装完成就会提示这个! Centos7手动编译安装apache

编译安装Apr

官网最新版下载页面:http://apache.communilink.net/apr/ 找到开头是apr,tar.gz后缀的文件,复制链接,然后wget它 Centos7手动编译安装apache

cd /root
wget http://apache.communilink.net/apr/apr-1.6.5.tar.gz
tar zxf apr-*
cd apr-*
./configure --prefix=/usr/local/apr && make && make install

安装成功是这样的: Centos7手动编译安装apache

编译安装 Apr-util

还是刚才那个网站 找到开头是 apr-util, tar.gz后缀的文件,复制链接,然后wget它 Centos7手动编译安装apache

cd /root
wget http://apache.communilink.net/apr/apr-util-1.6.1.tar.gz
tar zxf apr-util*
cd apr-util*
./configure --prefix=/usr/local/apr && make && make install

如果报错configure: error: APR could not be located. Please use the –with-apr option. ,则使用这条命令编译

./configure --with-apr=/usr/local/apr && make && make install
```.
如果报错`xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory`,则是缺少 expat-devel

yum install -y expat-devel

然后重新编译即可
![编译成功是这样的](https://img2018.cnblogs.com/blog/1267816/201903/1267816-20190302171726390-930354162.png)

### 安装openssl (版本不够高的话装apache会报错)

官网下载地址:[https://www.openssl.org/source/]( https://www.openssl.org/source/ )
![](https://img2018.cnblogs.com/blog/1267816/201903/1267816-20190302171907467-974297634.png)
我是随便找了个版本号最高的,然后wget它

cd /root wget https://www.openssl.org/source/openssl-1.1.1b.tar.gz tar zxf openssl* cd openssl* ./config -fpic --prefix=/usr/local/openssl && make && make install

![](https://img2018.cnblogs.com/blog/1267816/201903/1267816-20190302172023232-1285008526.png)
![](https://img2018.cnblogs.com/blog/1267816/201903/1267816-20190302172724181-1306386868.png)
到这一步提示需要安装Perl 5
### 安装Perl 5
首先下载最新的perl源码包:[http://www.perl.org/get.html](http://www.perl.org/get.html)
![](https://img2018.cnblogs.com/blog/1267816/201903/1267816-20190302174520725-1839536547.png)
![](https://img2018.cnblogs.com/blog/1267816/201903/1267816-20190302174533433-805252402.png)
复制链接地址,然后执行:

cd .. wget https://www.cpan.org/src/5.0/perl-5.28.1.tar.gz tar -xzf perl-5.28.1.tar.gz cd perl-5.28.1 ./Configure -des -Dprefix=/usr/local/perl && make && make install

完成后执行`perl -v`若出现下图所示则说明安装成功
![](https://img2018.cnblogs.com/blog/1267816/201903/1267816-20190302175307122-1217515029.png)

按照上述步骤重新安装openssl即可。

### 安装 pcre

官方下载页面[https://ftp.pcre.org/pub/pcre/](https://ftp.pcre.org/pub/pcre/)

找个最新版本直接wget,和上面一样,后缀要是tar.gz
![](https://img2018.cnblogs.com/blog/1267816/201903/1267816-20190302172305687-1646455688.png)

cd /root wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz tar zxf pcre-* cd pcre-* ./configure --prefix=/usr/local/pcre && make && make install

![](https://img2018.cnblogs.com/blog/1267816/201903/1267816-20190302172346682-656155962.png)


### 开始安装Apache
上面的这些操作都是为Apache准备的,接下来开始安装Apache
Apache的包名是httpd而不是apache

官方下载页面[http://apache.communilink.net/httpd/](http://apache.communilink.net/httpd/)
找到开头是httpd, tar.gz后缀的文件,复制链接,然后wget它
![](https://img2018.cnblogs.com/blog/1267816/201903/1267816-20190302175541468-1657731577.png)

cd /root wget http://apache.communilink.net/httpd/httpd-2.4.38.tar.gz tar zxf httpd-* cd httpd-* ./configure --prefix=/usr/local/httpd && make && make install

某些情况下发生报错: 
`configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/ `,可以选择再yum安装一次pcre

yum -y install pcre-devel

然后继续编译

/usr/local/httpd/conf/httpd.conf 是apache的配置文件

启动apache命令:

/usr/local/httpd/bin/apachectl start

启动之后,直接访问自己的IP,应该会显示一行“It works!”,恭喜你,搭建成功

将apache加入开机运行

echo "/usr/local/httpd/bin/apachectl start" >> /etc/rc.local

默认网页文件位置

/usr/local/httpd/htdocs/index.html

注意:
如果做到这里httpd已经启动但是无法访问可能造成原因有以下几种:
1.清除浏览器缓存后再次访问。
2.没有关闭selinux会出现访问不到的情况
3.没有关闭防火墙,则需要添加80端口,或者可以选择关闭防火墙
点赞
收藏
评论区
推荐文章
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
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
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年前
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
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这