apache2.4的編譯安裝
1、解決依賴關係
httpd-2.4.18需要較新版本的apr和apr-util,因此需要事先對其進行升級。升級方式有兩種,一種是通過原始碼編譯安裝,一種是直接升級rpm包。這裡選擇使用編譯原始碼的方式進行,它們的下載路徑為ftp://172.16.0.1/pub/Sources/new_lamp。
(1) 編譯安裝apr
# tar xf apr-1.5.2.tar.bz2
# cd apr-1.5.2
# ./configure --prefix=/usr/local/apr
# make && make install
(2) 編譯安裝apr-util
# tar xf apr-util-1.5.4.tar.bz2
# cd apr-util-1.5.4
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install
附:apache官方對APR的介紹:
The mission of the Apache Portable Runtime (APR) project is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform-specific implementations. The primary goal is to provide an API to which software developers may code and be assured of predictable if not identical behaviour regardless of the platform on which their software is built, relieving them of the need to code special-case conditions to work around or take advantage of platform-specific deficiencies or features.
(3) httpd-2.4.18編譯過程也要依賴於pcre-devel軟體包,需要事先安裝。
tar xf pcre-8.36.tar.gz
cd pcre-8.36/
./configure --prefix=/usr/local/pcre
make && make install
2、編譯安裝httpd-2.4.18
首先下載httpd-2.4.18到本地。而後執行如下命令進行編譯安裝過程:
# tar xf httpd-2.4.18.tar.bz2
# cd httpd-2.4.18
#./configure \
--prefix=/usr/local/httpd \
--sysconfdir=/etc/httpd \
--enable-so --enable-ssl \
--enable-cgi --enable-rewrite \
--with-zlib --with-pcre=/usr/local/pcre \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--enable-mods-shared=most --enable-mpms-shared=all \
--with-mpm=event
# make && make install
選項解釋:
--prefix=/usr/local/httpd # 指定安裝目錄
--sysconfdir=/etc/httpd # 指定配置檔案安裝路徑
--enable-so --enable-ssl #允許執行時載入DSO模組 # 啟動ssl加密功能
--enable-cgi --enable-rewrite # 啟用cgi協議 #啟用URL重寫功能
--with-zlib --with-pcre # 指定pcre的安裝路徑
--with-apr=/usr/local/apr #指定apr的安裝路徑
--with-apr-util=/usr/local/apr-util # 指定apr-util的安裝路徑
--enable-modules=most # 啟用大多數共享模組
--enable-mpms-shared=most #啟用MPM大多數引數
--with-mpm=event #指定使用的MPM的型別
httpd編譯安裝常見錯誤:
checking for OpenSSL version >= 0.9.8a... FAILED
configure: WARNING: OpenSSL version is too old
no
checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures
原因:
缺少openssl-devel包
yum install openssl-devel
安裝完openssl-devel後編譯安裝httpd
--with-ssl可以指明路徑也可以不指
如果要指,可以通過下面命令檢視
#openssl version -a
OpenSSL 1.0.1e-fips 11 Feb 2013
built on: Mon Feb 20 14:38:48 UTC 2017
platform: linux-x86_64
options: bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -DTERMIO -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -Wa,--noexecstack -DPURIFY -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/etc/pki/tls"
engines: dynamic
--with-ssl=/etc/pki/tls
補充:
(1)構建MPM為靜態模組
在全部平臺中,MPM都可以構建為靜態模組。在構建時選擇一種MPM,連結到伺服器中。如果要改變MPM,必須重新構建。為了使用指定的MPM,請在執行configure指令碼 時,使用引數 --with-mpm=NAME。NAME是指定的MPM名稱。編譯完成後,可以使用 ./httpd -l 來確定選擇的MPM。 此命令會列出編譯到伺服器程式中的所有模組,包括 MPM。
(2)構建 MPM 為動態模組
在Unix或類似平臺中,MPM可以構建為動態模組,與其它動態模組一樣在執行時載入。 構建 MPM 為動態模組允許通過修改LoadModule指令內容來改變MPM,而不用重新構建伺服器程式。在執行configure指令碼時,使用--enable-mpms-shared選項即可啟用此特性。當給出的引數為all時,所有此平臺支援的MPM模組都會被安裝。還可以在引數中給出模組列表。預設MPM,可以自動選擇或者在執行configure指令碼時通過--with-mpm選項來指定,然後出現在生成的伺服器配置檔案中。編輯LoadModule指令內容可以選擇不同的MPM。
3、修改httpd的主配置檔案,設定其Pid檔案的路徑
編輯/etc/httpd/httpd.conf,新增如下行即可:
PidFile "/var/run/httpd.pid"
4、提供SysV服務指令碼/etc/rc.d/init.d/httpd,內容如下:
#!/bin/bash
#
# httpd Startup script for the Apache HTTP Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve \
# HTML files and CGI.
# processname: httpd
# config: /etc/httpd/conf/httpd.conf
# config: /etc/sysconfig/httpd
# pidfile: /var/run/httpd.pid
# Source function library.
. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/httpd ]; then
. /etc/sysconfig/httpd
fi
# Start httpd in the C locale by default.
HTTPD_LANG=${HTTPD_LANG-"C"}
# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""
# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
# with the thread-based "worker" MPM; BE WARNED that some modules may not
# work correctly with a thread-based MPM; notably PHP will refuse to start.
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/httpd/bin/apachectl
httpd=${HTTPD-/usr/local/httpd/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
start() {
echo -n $"Starting $prog: "
LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch ${lockfile}
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc -p ${pidfile} -d 10 $httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}
reload() {
echo -n $"Reloading $prog: "
if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
RETVAL=$?
echo $"not reloading due to configuration syntax error"
failure $"not reloading $httpd due to configuration syntax error"
else
killproc -p ${pidfile} $httpd -HUP
RETVAL=$?
fi
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status -p ${pidfile} $httpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if [ -f ${pidfile} ] ; 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}"
exit 1
esac
exit $RETVAL
而後為此指令碼賦予執行許可權:
# chmod +x /etc/rc.d/init.d/httpd
加入服務列表:
# chkconfig --add httpd
接下來就可以啟動服務進行測試了。
相關推薦
apache2.4編譯安裝,搭建虛擬主機日誌分析及訪問控制
com one httpd-2.4 combine led 定義 開啟 認證用戶 創建 這幾天在看LAMP,都編譯好了,今天打算做幾個虛擬主機,順便記錄下問題,php7是以php-fpm的方式與apache 連接的,php7有好多新特性 這裏就不一一說了。。。 這裏只是簡單
centos7編譯部署apache2.4並安裝mod_jk.so
CentOS 7 系統環境 1. yum安裝相關軟體包gcc gcc++ zlib zlib-devel expat-devel yum -y install gcc gcc++ zlib zlib-devel expat-devel 2. 安裝apr
Linux-rhel6.4 編譯安裝PHP,Nginx與php連接
linux php rhel 編譯安裝php 連接nginx 確定依賴包安裝gcc gcc-c++ libxml2 libxml2-devel bzip2 bzip2-devel libmcrypt libmcrypt-devel openssl openssl-devel libcurl
apache2.4 的安裝
32位 操作 logs apache服務 安裝包 需要 .cn tar 操作系統 Apache2.4 安裝包下載地址 http://httpd.apache.org/docs/current/platform/windows.html#down 選擇ApacheHaus
apache-httpd2.4編譯安裝
安裝 all cal tar.bz2 con oca httpd2 pre -h centos 6 編譯安裝httpd-2.4 centos6yum安裝的apr版本已經不適用httpd-2.4版本了。所以,需要源碼編譯apr以及apr-util1. 下載源碼:cd /usr
php5.4編譯安裝apache
conf -o evel type -- usr pen ipv6 glib 1、下載源碼包 wget 網址/php-5.4.45.tar2、解壓源碼包 tar -zxvf php-5.4.45.tar3、創建一個安裝目錄 mkdir /usr/l
php5.4編譯安裝--nginx
啟動腳本 創建用戶 php5 開啟 安裝目錄 art oot php-fpm 文件 1、下載源碼包 wget 網址/源碼包2、解壓源碼包 tar -zxvf 源碼包3、創建一個安裝目錄 mkdir /usr/local/php4、進入解壓後的目錄中
centos7.4編譯安裝nginx
編譯 nginx前言 nginx作為後起之秀,最然目前市場份額現在遠不足apache,但是從增長速度和發展前景來看,nginx是未來的趨勢。具體數據可以參考https://www.netcraft.com/。截至到寫博客的時間,全球的web server的占用率參考下圖,可以看出明顯的趨勢。nginx的
CentOS 6.9 基於clang3.4 編譯安裝mariadb-10.2.12
chmod group ln -s 程序 版本 mariadb current ner 測試 系統平臺: CentOS release 6.9 (Final) 內核 2.6.32-696.el6.x86_64 1.去官網下載適合的源碼包 http://mariadb.o
centos7.4 編譯安裝php5.6 (LNMP)
location -i free lar gin 啟動 b- png () centos7.4前提: 1、需要提前安裝msyql數據庫(yum,二進制,自己編譯都行) 2、需要自己編寫windows的hosts文件,綁定域名和ip 3、nginx使用yum
centos7.4編譯安裝lamp
lampcentos7.4編譯安裝lamp lamp簡介 Linux+Apache+Mysql/MariaDB+PHP一組常用來搭建動態網站或者服務器的開源軟件,本身都是各自獨立的程序,但是因為常被放在一起使用,擁有了越來越高的兼容度,共同組成了一個強大的Web應用程序平臺。apache相對nginx來說更加
Apache2.4.33安裝無systemctl/service status/state顯示
emctl 啟用 pcre prefix http flat tst find TE netstat -tlnp看端口 httpd的端口是80,如果80端口是監聽狀態,則說明 http服務已經開啟 ps -ef|grep http或者ps aux|grep http看ht
centos6.9下PHP7.1.10和apache2.4.29安裝
網上的大多攻略都比較老了,自己記錄下來以備後查 先下載一些需要用到的軟體安裝包或原始碼(可自行到官網下載最新版) apache 下載地址http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.29.tar.gz php下載地址http://cl
CentOS 6.5-6.9系統環境部署apache2.4並安裝mod_jk.so
本文使用於CentOS 6.5-6.9系統環境 首先從這裡下載需要的檔案包: https://download.csdn.net/download/xiaoxiaozhugong/10811687 1. 升級安裝幾個支援元件 rpm -Uvh *.rpm 2.
CentOS 7.4 編譯安裝 Nginx1.15.2
本文主要記錄如何在CentOS7.4中編譯安裝Nginx官方最新的1.15.2版本。由於像Nginx、Mysql和PHP7的的原始碼都是用C/C++寫的,所以自己的CentOS 7.4伺服器上必須要安裝gcc和g++軟體。 安裝環境 系統:Ce
CentOS 7.4編譯安裝Apache 2.4.29
Apache2.4.29依賴包: apr-1.6.3.tar.gz 下載:wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.6.3.tar.gz apr-util-1.6.1.tar.gz 下載
CentOS7.4 編譯安裝 php7
阿里雲 CentOS7.4 編譯安裝 PHP7.1.11 下載並解壓原始碼包 tar zxf php-7.1.11.tar.gz cd php-7.1.11 安裝編譯php所需的依賴包 yum install -y gcc gcc-c++ make automake
apache2.4.27編譯安裝
apache編譯安裝 apache 2.4.27安裝#apache 2.4編譯安裝#第1步:安裝gcc編譯器。yum install -y gcc gcc-c++ openssl-devel pcre pcre-devel說明:openssl-devel是讓apache支持ssl安全
編譯安裝apache2.4.37(Server version: Apache/2.4.37 )
res 選擇 include serve inux rest b- 運行 bin Server version: Apache/2.4.37 (Unix)CentOS Linux release 7.4.1708 (Core) Server built: Nov 9
CentOS6.5 編譯安裝 PHP5.6+MySQL5.6+Apache2.4
安裝前的準備 檢視系統是否安裝了PHP,MYSQL,APACHE 檢視是否安裝 [[email protected] ~]#rpm -q httpd mysql php 如果安裝請解除安裝 [