Linux下重新编译安装Apache服务器 (linux 重新编译安装apache)

Apache是一款开源的Web服务器软件,常常用于在Linux系统下搭建Web服务器。在使用过程中,偶尔会遇到一些问题,如无法通过yum更新最新版本、配置文件发生冲突、性能不佳等,这时候,重新编译安装Apache服务器可能是比较好的解决方法。

本文将为大家介绍在的步骤。

步骤一:卸载旧版本的Apache

在重新安装之前,需要先将旧版本的Apache卸载掉。一般来说,可以通过以下命令卸载:

sudo yum remove httpd

如果之前是通过源码安装的Apache,则需要先找到Apache的安装目录,将其删除,并且停止服务:

sudo /etc/init.d/httpd stop

sudo rm -rf /usr/local/apache2

步骤二:下载最新版本的Apache

从Apache官网(http://httpd.apache.org/)上下载最新的Apache源码包,下载后在Linux系统中进行解压(假设解压目录为:/usr/local/src/):

sudo tar xvfz httpd-2.4.46.tar.gz -C /usr/local/src/

步骤三:编译与安装Apache

进入解压后的目录,执行编译命令:

cd /usr/local/src/httpd-2.4.46

sudo ./configure –prefix=/usr/local/apache2 –enable-so –enable-ssl –with-ssl=/usr/local/openssl

编译过程中可能会看到一些警告信息,但可以忽略。执行make和make install命令进行安装:

sudo make

sudo make install

不同的安装参数会导致生成不同的安装目录。/usr/local/apache2是Apache的默认安装目录,可以根据需要改成别的路径。

步骤四:启动Apache

安装成功后,可以通过以下命令启动Apache服务:

sudo /usr/local/apache2/bin/apachectl start

也可以通过命令查看Apache的状态:

sudo /usr/local/apache2/bin/apachectl status

步骤五:设置自启动

为了使Apache能够在系统启动时自动启动,需要将Apache加入系统服务中。具体方法是创建一个service文件,在/etc/init.d目录中。

创建脚本文件/etc/init.d/httpd:

sudo nano /etc/init.d/httpd

将以下内容复制到文件中:

#!/bin/sh

#

# httpd Startup script for the Apache Web Server

#

# description: Apache is a World Wide Web server. It is used to serve \

# HTML files and CGI.

# processname: httpd

# pidfile: /usr/local/apache2/logs/httpd.pid

# config: /usr/local/apache2/conf/httpd.conf

#

# Source function library.

. /etc/rc.d/init.d/functions

# Start httpd in the C locale by default.

HTTPD_LANG=${HTTPD_LANG-“C”}

export LANG=$HTTPD_LANG

# Path to the apachectl script, server binary, and short-form for messages.

apachectl=/usr/local/apache2/bin/apachectl

httpd=${HTTPD-/usr/local/apache2/bin/httpd}

prog=httpd

RETVAL=0

start() {

echo -n $”Starting $prog: “

LANG=$HTTPD_LANG daemon –pidfile=${PIDFILE-/usr/local/apache2/logs/httpd.pid} $httpd $OPTIONS

RETVAL=$?

echo

[ $RETVAL = 0 ] && touch ${LOCKFILE-/var/lock/subsys/httpd}

return $RETVAL

}

stop() {

echo -n $”Stopping $prog: “

killproc -p ${PIDFILE-/usr/local/apache2/logs/httpd.pid} $httpd

RETVAL=$?

echo

[ $RETVAL = 0 ] && rm -f ${LOCKFILE-/var/lock/subsys/httpd} ${PIDFILE-/usr/local/apache2/logs/httpd.pid}

}

reload() {

echo -n $”Reloading $prog: “

if ! LANG=$HTTPD_LANG $apachectl graceful $OPTIONS ; then

RETVAL=$?

echo $”not reloading due to configuration syntax error”

flure $”not reloading $httpd due to configuration syntax error”

fi

echo

}

# Upgrade the binary with no downtime.

upgrade() {

echo -n $”Upgrading $prog: “

killproc -p ${PIDFILE-/usr/local/apache2/logs/httpd.pid} $httpd -USR2

RETVAL=$?

echo

}

# Tell httpd to gracefully restart in the C locale by default.

HTTPD_LANG=C

export LANG=$HTTPD_LANG

# See how we were called.

case “$1” in

start)

start

;;

stop)

stop

;;

status)

status $httpd

RETVAL=$?

;;

restart)

stop

start

;;

condrestart)

if [ -f ${PIDFILE-/usr/local/apache2/logs/httpd.pid} ] ; then

stop

start

fi

;;

reload)

reload

;;

graceful|help|configtest|fullstatus)

$apachectl $@

RETVAL=$?

;;

*)

echo $”Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}”

RETVAL=2

esac

exit $RETVAL

保存并退出。接下来,设置httpd文件的权限,使其可执行:

sudo chmod +x /etc/init.d/httpd

将httpd文件加入系统服务中:

sudo chkconfig –add httpd

至此,Apache已经安装成功,并且被设置为自启动。可以通过访问http://localhost/ 来测试Apache是否正常运行。

重新编译安装Apache服务器是解决一些Apache问题的有效方法,在此过程中,需要注意安装目录和编译参数的设置。为了方便起见,可以将Apache添加到系统服务中,实现开机自启动,提高了Apache的使用效率。


数据运维技术 » Linux下重新编译安装Apache服务器 (linux 重新编译安装apache)