ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux下手动安装apache

2020-05-09 11:55:17  阅读:339  来源: 互联网

标签:httpd apr make 手动 util usr linux apache local


下面是官方文档的要求,必须安装APR、APR-Util、PCRE,gcc-c++等包,文档URL地址http://httpd.apache.org/docs/2.4/install.html。
所以,没有这些支持的需要提前安装好不然会出现个各种错误。

Linux一般会自带 httpd 服务,但版本一般不是最新的,性能也不算最好,生产中建议手动安装官方源码包,安装 Apache 官方包之前首先要停止之前的 httpd 服务,停止后也可以卸载之前的版本。
准备工作做完,首先去官网下载 Apache 的源码包,官网地址:https://httpd.apache.org/ ,首先选择最新释放出的版本,找到 Download 选择下载地址。

/usr/local/httpd#
tar -zxvf httpd-2.4.43.tar.gz
cd httpd-2.4.43/
./configure --prefix=/usr/local/apache2.4
产生如下错误
checking for APR... no
configure :error:APR not found. Please read the documentation.
产生该错误是因为没有 APR 相关的依赖软件:
APR源码相关依赖软件的安装
打开官方网站:http://apr.apache.org/,选择最新释放出的版本,点击 Download 跳转到下载页面,你也可以直接把页面往下拉到最后,提供了apr 3个组件下载地址。(APR、APR-util、APR iconv)
官方网站提供了3个apr组件需要下载,分别是 APR , APR-util 和 APR iconv 3个组件。
实际上,针对于apache相关的依赖软件安装实际上只需要前两个 apr 和 apr-util 。
到相应目录
tar -zxvf apr-1.7.0.tar.gz
cd apr-1.7.0
./configure --prefix=/usr/local/apr
执行编译
make
make install

tar -zxvf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
执行编译
make
make install

在编译安装阶段可能会报以错误
xml/apr_xml.c:35:10: fatal error: expat.h: 没有那个文件或目录
#include <expat.h>
^~~~~~~~~
compilation terminated.
make[1]: *** [/usr/local/apr-util/apr-util-1.6.1/build/rules.mk:206:xml/apr_xml.lo] 错误 1
make[1]: 离开目录“/usr/local/apr-util/apr-util-1.6.1”
make: *** [/usr/local/apr-util/apr-util-1.6.1/build/rules.mk:118:all-recursive] 错误 1

在安装 Apache 相关的依赖软件 apr-util 时可能会报这个错误,这是因为系统缺失 expat 库。CentOS下(我这里的环境是CentOS 7)root超级管理员用户执行以下命令,非root超级管理员前面加上 sudo 用以获取权限执行:
yum install -y expat-devel
安装 expat 库解决该问题。
命令用不了,还得自己找
,最后在https://launchpad.net/ubuntu/+source/expat/2.0.1-7.2ubuntu1.4找到了expat_2.0.1.orig.tar.gz包
解压后进入解压目录
./configure
make
make install
然后回到apr-util-1.6.1目录
./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config
make
make install
成功
注意,一定要重新./configure –prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config


解决之后再次执行
./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
---
https://blog.csdn.net/weixin_43930641/article/details/105269778

可能还会产生如下错误:
checking for pcre-config... false
configure :error:pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
这是linux系统缺失 pcre 库,如果系统并未自带或者安装过该软件,会产生以上错误。
打开 pcre 的官方网站:http://pcre.org/,查找下载地址 Download 标题
https://ftp.pcre.org/pub/pcre/
解压
tar -zxvf pcre-8.44.tar.gz
cd pcre-8.44/
./configure --prefix=/usr/local/pcre
make && make install
如果 make 中出现错误,重新调整执行后还是失败尝试 make clean 清除所有缓存文件后继续。
如果是在 make install 过程中也出现错误,在重新调整执行后还是失败尝试执行 make clean 并且删除生成了安装目录,然后重新执行 make 和 make install,如若还是失败,尝试调用 make distclean 清除所有生成的文件。

make

可能会出现如下错误(没有请忽略,执行make install)
collect2: error: ld returned 1 exit status
make[2]: *** [htpasswd] 错误 1
make[2]: 离开目录“/home/centos/httpd-2.4.43/support”
make[1]: *** [all-recursive] 错误 1
make[1]: 离开目录“/home/centos/httpd-2.4.43/support”
make: *** [all-recursive] 错误 1
这里产生的错误实际上是因为在 httpd 目录下的 srclib 目录里面没有 apr 和 apr-util 所导致的,但是 ./configure 又不会报错,到了 make 才会报错,所以把下载下来到 apr 和 apr-util 解压到 srclib 目录下到 apr 和 apr-util 目录,注意目录名字要一致。
实际上如果报这个错误是不需用手动提前去安装 apr 和 apr-util 的,它会搜索路径自动安装,手动安装后去指定安装路径还是可能会报错的。
先把下载下来 APR 组件复制到 srclib 目录下,假设你现在位于 httpd 文件中,当然你也可以以绝对路径指定文件迁移,执行如下:
cp -r /home/centos/apr-1.7.0 srclib/apr
cp -r /home/centos/apr-util-1.6.1 srclib/apr-util
./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --with-included-apr
或者
./configure --prefix=/usr/local/apache2.4 --with-pcre=/usr/local/pcre --with-included-apr
make
make && make install
请注意,如果 make 中出现错误,重新调整执行后还是失败尝试 make clean 清除所有缓存文件后继续。
如果是在 make install 过程中也出现错误,在重新调整执行后还是失败尝试执行 make clean 并且删除生成了安装目录,然后重新执行 make 和 make install,如若还是失败,尝试调用 make distclean 清除所有生成的文件。
Apache 执行命令:
/usr/local/apache2.4/bin/apachectl start //启动
/usr/local/apache2.4/bin/apachectl stop //停止

出现错误:
root@kaspar-PC:/usr/local/apache2.4/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

解决如下:
进入 apache 的安装目录。(视个人安装情况而不同)
cd /usr/local/apache2.4/conf/
编辑 httpd.conf 文件,搜索 “#ServerName” ,添加 ServerName localhost:80。
$ ls
extra httpd.conf magic mime.types original
$ vim httpd.conf
#ServerName www.example.com:80
ServerName localhost:80
再重新启动 apache 即可。
/usr/local/apache2.4/bin/apachectl restart
然后浏览器访问 localhost
至此, Apache 服务器编译安装完成。

 

标签:httpd,apr,make,手动,util,usr,linux,apache,local
来源: https://www.cnblogs.com/kaspar/p/12856337.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有