当前位置: 首页 > news >正文

源码安装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

相关文章:

  • 优秀互联网高级测试工程师应该具备的能力
  • raid5实现原理
  • Go 可变参数和切片
  • Tomcat7 catalina.out 日志分割
  • storm drpc实例
  • 监控CPU(一)
  • RIP
  • Lintcode104 Merge k Sorted Lists solution 题解
  • jQuery基础一
  • heartbeat主配置文件
  • Mysql5.6到5.7升级需要以下操作
  • GDI+绘制极坐标图(Polar Diagram)
  • RHEL7/CentOS7 PXE+Kickstart自动化系统安装
  • Netty环境搭建(源码死磕2)
  • [20171113]修改表结构删除列相关问题4.txt
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • C学习-枚举(九)
  • Docker下部署自己的LNMP工作环境
  • Java编程基础24——递归练习
  • java第三方包学习之lombok
  • Laravel Telescope:优雅的应用调试工具
  • Nodejs和JavaWeb协助开发
  • Sass Day-01
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • VUE es6技巧写法(持续更新中~~~)
  • 不上全站https的网站你们就等着被恶心死吧
  • 官方解决所有 npm 全局安装权限问题
  • 机器学习 vs. 深度学习
  • 记录:CentOS7.2配置LNMP环境记录
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • #define、const、typedef的差别
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #QT(TCP网络编程-服务端)
  • #在 README.md 中生成项目目录结构
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (C++20) consteval立即函数
  • (补)B+树一些思想
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (三)Honghu Cloud云架构一定时调度平台
  • (十五)使用Nexus创建Maven私服
  • (一)80c52学习之旅-起始篇
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)jQuery 基础
  • *p++,*(p++),*++p,(*p)++区别?
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .Net 代码性能 - (1)
  • .NET 简介:跨平台、开源、高性能的开发平台