標籤: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安全通訊端功能。
因為rewirte重寫功能需要pcre-devel支援。所以要安裝pcre和pcre-devel軟體。
PCRE(Perl Compatible Regular Expressions)是一個Perl庫,包括 perl 相容的Regex庫。pcre來解決C語言中使用Regex的問題。
或者下載pcre,編譯安裝
tar zxvf pcre-8.31.tar.gz
cd pcre-8.31
./configure && make && make install
說明:預設安裝在/usr/local/目錄中。
第2步:準備軟體包。
從http://httpd.apache.org下載最新的httpd、apr、apr-util,然後解壓縮。
tar zxvf apr-1.5.1.tar.gz
tar zxvf apr-util-1.5.4.tar.gz
tar zxvf httpd-2.4.27.tar.gz
由於現在最新的httpd-2.4都需要apr、apr-util。
APR功能:(Apache portableRun-timelibraries,Apache可移植運行庫)的目的如其名稱一樣,主要為上層的應用程式提供一個可以跨越多作業系統平台使用的底層支援介面庫。
方法一:插入方法安裝
說明:插入方法安裝(即內嵌apr軟體包),在編譯httpd-2.4.7的同時編譯安裝apr軟體。
mv apr-1.5.1 httpd-2.4.27/srclib/apr
mv apr-util-1.5.4 httpd-2.4.27/srclib/apr-util
cd httpd-2.4.27
./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/apache2/conf/ --with-inculded-apr --enable-so --enable-rewirte --enable-ssl --enable-cgi --enable-cgid --enable-modules=most --enable-mpms-shared=all
方法二:一步一步安裝
共有a、b、c三個步驟。
a.編譯安裝apr
cd apr-1.5.1
./configure --prefix=/usr/local/apr
make && make install
b.編譯安裝apr-util
apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
c.編譯安裝httpd
[[email protected] ~]# cd httpd-2.4.27
[[email protected] httpd-2.4.7]# ./configure \
prefix=/usr/local/apache2 \
sysconfdir=/etc/apache2/conf \
enable-so \
enable-rewirte \
enable-ssl \
enable-cgi \
enable-cgid \
enable-modules=most \
enable-modules-shared=most \
enable-mpms-shared=all \
with-apr=/usr/local/apr \
with-apr-util=/usr/local/apr-util
--prefix=/usr/local/apache2 :指定安裝目標路徑
--sysconfdir=/etc/apache2/conf :指定設定檔安裝位置
--enable-so :支援動態共用模組,如果沒有這個模組PHP將無法與apache結合工作
--enable-rewirte :支援URL重寫
--enable-ssl :啟用支援ssl
--enable-cgi :啟用支援cgi
--enable-cgid :啟用支援帶線狀圖形的CGI指令碼 MPMs
--enable-modules=most :安裝大多數模組
--enable-modules-shared=most :安裝大多數共用模組
--enable-mpms-shared=all :支援全部多道處理方式
--with-apr=/usr/local/apr :指定apr路徑
--with-apr-util=/usr/local/apr-util :指定apr-util路徑
配置完成後,編譯並安裝:
[[email protected] httpd-2.4.7]# make && make install
編譯安裝後的檔案結構:
1、主設定檔:/etc/apache2/conf/httpd.conf
2、命令和指令碼目錄:/usr/local/apache2/bin
3、預設網站的首頁:/usr/local/apache2/htdocs/index.html
4、網頁版協助手冊:/usr/local/apache2/manual/index.html
5、man手冊:/usr/local/apache2/man
6、擴充功能設定檔目錄:/etc/apache2/conf/extra/ 目錄中的設定檔如下
httpd-vhosts.conf 虛擬機器主機設定檔
httpd-default.conf 預設設定設定檔
httpd-userdir.conf 使用者家目錄首頁功能設定檔(類似於QQ空間)
httpd-mpm.conf 工作模式設定檔(進程模式、線程模式的參數)
httpd-manual.conf 協助手冊設定檔
httpd-ssl.conf ssl安全通訊端設定檔
httpd-languages.conf 語言設定檔
httpd-autoindex.conf 自動索引設定檔
第3步:修改httpd.conf設定檔。
說明:需要修改2處。
1.修改/etc/hosts,增加一行
127.0.0.1 apserver www.example.com
2.修改 /etc/apache2/conf/httpd.conf 修改如下代碼
User apache //進程的屬主(170行)。找到此行,將daemon改成apache。
Group apache //進程的屬組(171行)。找到此行,將daemon改成apache
ServerName www.example.com:80 //網站的網域名稱(201行)。找到此行,並啟用此行
注意:1、apserver、www.example.com都是主機名稱。
2、如果不啟用ServerName這行,啟動服務時將會有警告,可能導致apache服務無法正常啟動。
第4步:手動啟動服務:
cd /usr/local/apache2/bin
ls
./apachectl start //啟動apache服務,apachectl是個指令檔
./apachectl stop //停止apache服務
./apachectl status //查看apache服務狀態
查進程狀態:ps aux|grep httpd
查連接埠狀態:ss -atunlp|grep :80 或 netstat -atunlp|grep :80 或 lsof -i:80
第5步:配置apache的環境變數:
1、編輯環境變數檔案。
vi /etc/profile 添加如下內容
PATH="$PATH:/usr/local/apache2/bin"
2、載入環境變數檔案。
source /etc/profile
3、手動啟動服務測試:
說明:添加了新的PATH環境變數後,可以在任何目錄中運行指令碼。
cd
apachectl stop
apachectl start
第6步:配置啟動指令碼:(首選)
方法一:用編譯安裝後的指令檔設定開機啟動(首選)
1、準備啟動指令檔:
cd /usr/local/apache2/bin
cp -pv apachectl /etc/init.d/apache
vi /etc/init.d/apache 修改如下內容
#!/bin/sh //找到此行,並添加下一行內容
# chkconfig: - 85 15 //允許用chkconfig管理
#上行的-減號是控制預設的運行層級(預設為2~5),85為開機開機檔案名S85apache的序號,15是開機不啟動的檔案名稱K15apache中的序號。開機檔案路徑:ls /etc/rc.d/rc3.d/S85apache。
2、設定為開機啟動,並驗證
chmod +x /etc/init.d/apache //添加x可執行許可權
chkconfig apache on //設為開機啟動
chkconfig apache --list //查看開機啟動設定狀態
service apache stop // 停止apache服務
service apache start // 啟動apache服務
查連接埠狀態:netstat -atunlp|grep :80
本地測試網站的訪問:curl 127.0.0.1
3、(選做,可不做)給apache相關的檔案和目錄建立軟連結。
[email protected] httpd-2.4.7]# cd /usr/sbin/
[[email protected] sbin]# ln -s /usr/local/apache2/bin/* ./
為記錄檔建立軟連結
[[email protected] sbin]# ln -s /usr/local/apache2/logs /var/log/apache
到此,apache-2.4.27編譯安裝和配置實驗完畢。
------------------------------------------------
方法二:配置啟動指令碼:
[[email protected] httpd-2.4.7]# cp build/rpm/httpd.init /etc/init.d/apache //使用init指令碼管理httpd
[[email protected] httpd-2.4.7]# vim /etc/init.d/apache
httpd=${HTTPD-/usr/sbin/httpd} 修改成 httpd=${HTTPD-/usr/local/apache2/bin/httpd}
pidfile=${PIDFILE-/var/run/${prog}.pid} 修改成pidfile=${PIDFILE-/usr/local/apache2/logs/${prog}.pid}
lockfile=${LOCKFILE-/var/lock/subsys/${prog}}
RETVAL=0
# check for 1.3 configuration
check13 () {
CONFFILE=/etc/apache2/conf/httpd.conf 修改成CONFFILE=/etc/apache2/conf/httpd.conf
[[email protected] httpd-2.4.7]# chmod 755 /etc/init.d/apache //增加執行許可權
[[email protected] httpd-2.4.7]# chkconfig apache on //設定apache到服務開機啟動
[[email protected] httpd-2.4.7]# chkconfig apache --list //查看apache開機設定狀態
[email protected] httpd-2.4.7]# cd /usr/sbin/
[[email protected] sbin]# ln -s /usr/local/apache2/bin/* ./
為記錄檔建立軟連結
[[email protected] sbin]# ln -s /usr/local/apache2/logs /var/log/apache
如果啟動httpd的時候出現
Starting httpd: AH00557: httpd: apr_sockaddr_info_get() failed for apserver
AH00558: httpd: Could not reliably determine the server‘s fully qualified domain name, using 127.0.0.1. Set the ‘ServerName‘ directive globally to suppress this message
[ OK ]
則需要修改2處:
1.修改/etc/hosts,增加一行
127.0.0.1 apserver
2.修改 /etc/apache2/conf/httpd.conf,在最後增加一行
ServerName apserver
注意:apserver為機器名稱
""
apache2.4.27編譯安裝