源码安装Apache服务器遇到的问题及解决方法

简介:



   Linux下安装软件的方式有很多种其中常用的有三种:源码安装、RPM安装、yum安装针对于后两种的安装都比较方便,只要有rpm软件包就可以轻易安装,今天我来谈谈使用源码的方式来实现对apache软件的安装(原有的版本太低,想安装一个新版本),但是第一次安装的时候便遇到了很多问题,于是我便把这些问题记录下来了,相信一定会对你以后想安装新版本的apache服务器有帮助

      首先你的去apache官网去下载最新版的源码包我下载的是httpd- 2.4.4 .tar.bz2,地址是http://httpd.apache.org/download.cgi#apache24

    然后将源码解压到/usr/local/src目录下,方便以后的管理

tar -jxvf httpd- 2.4.4 .tar.bz2 -C /usr/local/src/

切换到相应目录

cd /usr/local/src/httpd- 2.4.4 /

源码安装三步走起:1./configure  2) make   3) make install

./configure --prefix=/usr/local/apache 然后麻烦就出现了

错误提示的很明显

checking for APR... no

configure: error: APR not found.  Please read the documentation.

那就是缺少APR((Apache portable Run-time librariesApache可移植运行库),那就下载安装呗下载网址是http://apr.apache.org/ 你会看到

Apache Portable Runtime  1.4.6  Released

点击下载就是了apr- 1.4.6 .tar.gz,并且将其解压到/usr/local/src目录下

tar -zxvf apr- 1.4.6 .tar.gz -C /usr/local/src/

切换到目录下

cd /usr/local/src/apr- 1.4.6 /

当然这个运行库也是源码安装的,同样是三步曲,走起

./configure

make

make install

 

然后再切换到httpd的源码目录下再次执行./configure时加上apr的配置路径./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config   你会发现又出现了问题

意思是APR-util包没有找到,如果你还有印象的话应该记得在我们下载apr的时候看见过这个工具包,于是我们可以去刚刚的那个网站去下载去http://apr.apache.org/ 你会看到

 

Apache Portable Runtime Utility  1.5.1  Released

下载安装就是了apr-util- 1.5.1 .tar.gz 先解压到/usr/local/src目录下

tar -zxvf apr-util- 1.5.1 .tar.gz -C /usr/local/src/

切换到源码目录下cd /usr/local/src/apr-util- 1.5.1 /

然后是老三步

./configure --with-apr=/usr/local/src/apr-1.4.6/apr-1-config(加上apr的路径)

make

make install

然后到httpd源码的目录下执行./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config还会遇到问题

pcrePerl Compatible Regular Expressions是一个Perl库,包括 perl 兼容的正规表达式库)没发现,当然处理方法相同下载源码,解压,安装

下载地址http://sourceforge.net/projects/pcre/

unzip pcre-8.32.zip

cd pcre-8.32

./configure

make

make install

然后到httpd源码的目录下执行./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config --with-pcre=/usr/local/pcre/

 

make && make install

 

 

 

一切安装完成之后我们还要涉及到一个httpd的运行管理问题,我模仿linux原有的管理脚本自己写了一个简易的管理脚本httpd内容如下:

#!/bin/bash

# chkconfig: 35 80 30

# description: Apache server

HTTPD=/usr/local/apache/bin/httpd

LOCKFILE='/var/lock/subsys/httpd'

. /etc/init.d/functions

function start(){

        [ -e $LOCKFILE ] && echo "httpd is running ......." && exit

        echo -n "httpd is starting ......"

        sleep 1

        $HTTPD -k start

}

 

function stop(){

        echo -n "httpd is stoping......"

        sleep 1

        killproc $HTTPD &>/dev/null

[ $? -eq 0 ] && rm -rf $LOCKFILE && echo -e "\033[31m [ok] \033[0m" ||echo -e "\033[31m [fail] \033[0m"

}

 

 

function status(){

        [ -e $LOCKFILE ]&& echo "httpd is running ......" || echo "httpd is stoped"

}

 

 

 

case $1 in

start)

        start

        ;;

stop)

        stop

        ;;

restart)

        stop

        start

        ;;

status)

        status

        ;;

*)

echo "httpd Usage: {start|stop|restart}"

        ;;

esac之后将其拷贝到/etc/rc.d/init.d/目录下

cp httpd /etc/rc.d/init.d/

chkconfig --add httpd

chkconfig –level 35 httpd on

chkconfig --list httpd

接下来就是测试了

service httpd start

然后在其他电脑上访问

 

 

 

 

 

到此全部工作已经完成,当然对于vsftp服务器同样能做,不过vsftp的安装方式比较简单,这里就不细说了,当然我也写了一个管理脚本,如果有兴趣的话可以读一读,内容如下

#!/bin/bash

# chkconfig: 35 83 30

# description: vsftpd server

VSFTPD='/usr/local/sbin/vsftpd'

LOCKFILE='/var/lock/subsys/ftp'

. /etc/init.d/functions

function start(){

        [ -e $LOCKFILE ] && echo "vsftpd is running ......." && exit

        echo -n "vsftpd is starting ......"

        sleep 1

        $VSFTPD &

 

}

 

function stop(){

        echo -n "Vsftpd is stoping......"

        sleep 1

        killproc $VSFTPD &>/dev/null

}

 

 

function status(){

        [ -e $LOCKFILE ]&& echo "vsftpd is running ......" || echo "vsftpd is stoped"

}

 

 

 

case $1 in

start)

        start

        ;;

stop)

        stop

        ;;

restart)

        stop

        start

        ;;

status)

        status

        ;;

*)

echo "vsftp Usage: {start|stop|restart}"

        ;;

esac

在下一篇博客中我将会介绍一下mysql的安装配置,尽情期待。。。。。



本文转自 chenming421  51CTO博客,原文链接:http://blog.51cto.com/wnqcmq/1160274

相关文章
|
3月前
|
弹性计算 安全 网络安全
阿里云国际版无法远程连接Windows服务器的解决方法
阿里云国际版无法远程连接Windows服务器的解决方法
|
3月前
|
网络协议 Java API
【网络】TCP回显服务器和客户端的构造,以及相关bug解决方法
【网络】TCP回显服务器和客户端的构造,以及相关bug解决方法
79 2
|
5月前
|
Ubuntu Linux 测试技术
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
|
5月前
|
数据库连接 Apache Java
【独家揭秘】图书管理系统的奇幻之旅:一文看透Apache Wicket如何从想法萌芽到服务器上翩翩起舞?
【8月更文挑战第31天】本文通过实战案例,详细介绍从概念到部署的Apache Wicket应用开发全流程。以在线图书管理系统为例,涵盖应用概念定义、项目创建、架构设计、首页编写、数据库交互及应用部署等关键步骤。通过Maven或Gradle引入Wicket依赖,设计包结构,并使用JPA或Hibernate处理数据持久化。最终,将应用配置并部署到Tomcat或Jetty服务器,帮助你全面掌握Wicket开发技巧。
60 0
|
5月前
|
监控 Linux 测试技术
|
5月前
|
监控 安全 网络安全
如何保护 Apache 服务器的安全
【8月更文挑战第23天】
127 0
|
27天前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
315 33
The Past, Present and Future of Apache Flink
|
3月前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
905 13
Apache Flink 2.0-preview released
|
3月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
120 3
|
4月前
|
SQL 消息中间件 关系型数据库
Apache Doris Flink Connector 24.0.0 版本正式发布
该版本新增了对 Flink 1.20 的支持,并支持通过 Arrow Flight SQL 高速读取 Doris 中数据。

推荐镜像

更多