Centos7源码安装httpd(Apache)

下载源码包及其依赖包

apache24:http://httpd.apache.org/download.cgi,最好是选择Source源码包在本机重新编译
APR和APR-util:http://apr.apache.org

  • APR全称是Apache portable run-time libraries,Apache可移植运行库。可以为httpd提供一个支持跨操作系统平台的底层接口库。我们可以将apr理解为一个安装包,httpd可以直接调用使用它。Apr有三个开发包:apr、apr-util、apr-iconv。按照apache官网的说明,只需安装apr和apr-util。

PCRE:http://www.pcre.org

  • PCRE全称是Perl Compatible Regular Expressions,用来处理正则表达式
安装

安装APR

[root@centos ~]# cd /usr/local/src 
[root@centos src]# wget http://archive.apache.org/dist/apr/apr-1.4.2.tar.gz
[root@centos src]# tar -xf apr-1.4.2.tar.gz
[root@centos apr-1.4.2]# cd apr-1.4.2
[root@centos apr-1.4.2]# ./configure --prefix=/usr/local/apr //指定安装位置
[root@centos apr-1.4.2]# make && make install

如果出错提示:rm: cannot remove 'libtoolT': No such file or directory
解决:

  1. 打开apr-1.4.2/configure
  2. 找到RM=‘ R M ′ 修 改 为 R M = ′ RM'修改为RM=' RMRM=RM -f’

安装APR-util

[root@centos ~]# cd /usr/local/src 
[root@centos src]# wget http://archive.apache.org/dist/apr/apr-util-1.3.10.tar.gz
[root@centos src]# tar -xf apr-util-1.3.10.tar.gz 
[root@centos src]# cd apr-util-1.3.10    
//安准apr-util依赖apr,需指定apr安装的位置
[root@centos apr-util-1.3.10]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr        
[root@centos apr-util-1.3.10]# make && make install

如果报错:xml/apr_xml.c:35:19: error: expat.h: No such file or directory
解决办法1:
yum install expat-devel
解决办法2:
去网上找找expat源码包,然后编译安装

重新执行:

[root@centos apr-util-1.3.10]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr        
[root@centos apr-util-1.3.10]# make && make install

安装PCRE

[root@centos src]# yum   gcc-c++  //安装编译环境,pcre来解决C语言中使用正则表达式的问题
[root@centos ~]# cd /usr/local/src 
[root@centos ~]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz
[root@centos src]# tar xf pcre-8.42.tar.gz 
[root@centos src]# cd pcre-8.42
[root@centos pcre-8.42]# ./configure --prefix=/usr/local/pcre
[root@centos pcre-8.42]# make && make install

安装HTTPD

[root@centos ~]# cd /usr/local/src
[root@centos src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.37.tar.gz
[root@centos src]# tar xf httpd-2.4.37.tar.gz
[root@centos src]# cd httpd-2.4.37
[root@centos httpd-2.4.37]# ./configure --prefix=/HttpApp/httpd-2.4.37 --enable-deflate --enable-headers --enable-modules=most --enable-so --enable-rewrite --with-mpm=worker  --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
[root@centos httpd-2.4.37]# echo $?
0
[root@centos httpd-2.4.37]# make && make install

配置参数说明
–prefix 指定安装位置,最好是放在一个新的文件夹下方便修改应用程序的属组和属主,增加程序的安全性。安装的具体目录最好带着版本号,用于以后方便修改软连接升级。
–enable-deflate 启用压缩功能,只有这个参数启用,配置文件中的压缩功能才能启用。启用后,服务器向客户端发送数据时先压缩后发送,节省带宽。客户端浏览器收到后先解压后浏览。
–enable-headers 启用头文相关件
–enable-modules=most 启用大多数模块,这些模块平时已经足够用了。
–enable-so 启用so模块,httpd和php连接时通过php5.so模块
–enable-rewrite 启用重写功能,就是因为这个功能我们之前才安装pcre
–with-mpm=worker 启用worker模式
–with-apr=/usr/local/apr 指定apr安装目录,apr为依赖环境
–with-apr-util=/usr/local/apr-util 指定apr-util安装目录,apr-util为依赖环境
–with-pcre=/usr/local/pcre 指定pcre安装目录

做软连接
Httpd有了新版本后需要升级,如果只是安装上新版本后,在将一些使用老版本httpd的路径文件修改为新版的路径时会很麻烦,比如配置的环境变量。使用软连接后,可以新建一个文件夹用于链接到当前使用的httpd文件夹,安装新版本后在链接到新安装目录,有效解决了上述问题。

[root@centos  ~]# ln -s /HttpAppapp/httpd-2.4.37/ /HttpApp/httpd
[root@centos ~]# ll /HttpApp
lrwxrwxrwx  1 root root  18 Nov 30 20:08 httpd -> /HttpApp/httpd-2.4.37/
drwxr-xr-x 14 root root 164 Nov 30 20:05 httpd-2.4.37

配置环境变量
配置环境变量的作用是可以在任意的位置使用httpd自带的命令,而不需要把命令的完整路径也写出。

[root@centos ~]# vi /etc/profile
export PATH=$PATH:/app/httpd/bin/
[root@centos  ~]# source /etc/profile

启动httpd
在配置文件中设置web服务器主机名,如果不设置,在启动过程中会出现“ Could not reliably determine the server’s fully qualified domain name”的报错。
在这里插入图片描述

[root@centos ~]# vi /HttpApp/httpd/conf/httpd.conf
#ServerName www.example.com:80
ServerName httpd-1
[root@centos ~]# apachectl start

如果报错如下,表示本机80端口已被占用,可以换httpd端口
在这里插入图片描述
查看httpd状态

ps -ef | grep httpd

在这里插入图片描述
在浏览器中查看到如下输出则成功:
在这里插入图片描述
设置开机自启动
因为不是yum方式安装的httpd,所以不能通过systemctl enable命令设置开机自启。源码包方式设置开机自启可以通过配置/etc/rc.d/rc.local文件,这是一个开启启动文件,开机时会逐行执行文件中的命令。

[root@centos ~]# vi /etc/rc.local
/HTTPApp/httpd/bin/apachectl start
//注意的是这里边的启动命令需要完整的路径,不能只是一个apachectl,因为此时环境配置文件还未生效
[root@centos ~]# chmod +x /etc/rc.d/rc.local
[root@centos ~]# reboot

让systemd管理httpd

vim /usr/lib/systemd/system/httpd.service:

[Unit]
Description=The httpd process manager

[Service]
Type=forking
ExecStart=你的安装根目录/apache24/bin/apachectl
ExecReload=/usr/local/apache24/bin/apachectl -s reload
ExecStop=/usr/local/apache24/bin/apachectl -s stop

[Install]
WantedBy=multi-user.target

重启system

systemctl daemon-reload

在这里插入图片描述

参考:https://blog.csdn.net/qq_36700059/article/details/94547133

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值