★安裝OS時,建議提早安裝開發組件php
CentOS 6:Development Tools、Server Platform Development
CentOS 7:Development Tools、Development and Creative Workstationlinux
★configure腳本(# ./configure [option…])
經常使用選項:c++
--help:得到其支持使用的選項
--prefix=/PATH/TO/SOMEWHERE:指定默認安裝位置;默認爲/usr/local/;
--sysconfdir=/PATH/TO/SOMEWHERE:配置文件安裝位置;
--enable-FEATURE[=ARG]:開啓指定特性以及安裝路徑;默認開啓時無須指定;
--disable-FEATURE:關閉指定特性;默認關閉時無須指定;
--with-PACKAGE[=ARG]:安裝指定依賴包以及其安裝路徑;
--without-PACKAGE:不安裝指定依賴包;
--with-function :啓用某功能
--without-function :禁用某功能apache
例如:
#cd ../httpd-2.2.27/
# ./configure --sysconfdir=/etc/httpd --prefix=/usr/local/apache2 --with-apr=/usrvim
▪編譯參數
--prefix=/PATH:指明安裝路徑;
--sysconfdir=/PATH:指明配置文件路徑;不指明,默認在安裝路徑下;
--enable-so:表示啓用DSO動態模塊加載機制;
--enable-ssl:啓用支持ssl功能;
--enable-mods-shared=most:表示動態的編譯進來大多數的模塊;若是使用--enable-mods-shared=all,則指動態的編譯全部的模塊。
--with-apr=/PATH:指明apr程序包的路徑;不使用=指明路徑會在默認路徑查找;
--with-apr-util=/PATH:指明apr-util程序包的路徑;
--with-mpm=prefork:指明默認使用的MPM模塊;bash
★說明:
靜態編譯:將module直接在安裝的過程當中放到apache中,當apache使用module的時候,就能夠直接使用了。
動態編譯:將module引入到apache之中,在使用的時候纔會真正的去加載(經過LoadModule命令)
--with.....:表示依賴的包,不指明路徑,編譯安裝時會到默認路徑下找;
--without.....:不依賴的包;
--enable.....:啓用特性;
--disable.....:禁用特性;curl
-----------------------------------------------------------------------------
★事前準備:
在使用源碼包安裝服務程序以前,首先要讓安裝主機具有編譯程序源碼的環境,它須要具有C語言、C++語言、Perl語言的編譯器,以及各類常見的編譯支持函數庫程序。所以請先配置穩當Yum軟件倉庫,而後把下面列出的軟件包安裝上:函數
yum install -y apr* autoconf automake bison bzip2 bzip2* compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libtiff libtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* wget zlib-devel
【編譯安裝】url
(1)下載及解壓源碼包文件。orm
#tar xzvf FileName.tar.gz
#cd FileDirectory
(2)編譯源碼包代碼。能夠根據須要追加--prefix參數,以指定稍後源碼包程序的安裝路徑。當編譯工做結束後,若是系統環境符合安裝要求,通常會自動在當前目錄下生成一個Makefile安裝文件。
#./configure --prefix=/usr/local/program
(3)生成二進制安裝程序。使用make命令來根據Makefile文件內容提供的合適規則編譯生成真正可供用戶安裝服務程序的二進制可執行文件。
#make
(4)運行二進制的服務程序安裝包。若是在源碼包編譯階段使用了--prefix參數,那麼服務程序就會被安裝到那個目錄,通常默認安裝到/usr/local/bin目錄中。
#make install
(5)清理源碼包臨時文件。因爲在安裝服務程序的過程當中進行了代碼編譯的工做,在安裝後目錄中會遺留下不少臨時垃圾文件,使用make clean命令對臨時文件進行清理工做。
#make clean
-----------------------------------------------------------------------------
【安裝後的配置】
(1) 將二進制程序目錄添加至PATH文件變量中,不然只能使用絕對路徑才能運行程序。
編輯文件/etc/profile.d/NAME.sh
export PATH=/PATH/TO/BIN:$PATH
例如:
#export PATH=$PATH:/usr/local/apache2/bin #vim /etc/profile.d/apache2.sh export PATH=$PATH:/usr/local/apache2/bin
(2) 導出庫文件路徑。
編輯/etc/ld.so.conf.d/NAME.conf,添加新的庫文件所在的目錄至此文件中;
例如:/usr/local/apache2/lib
ldconfig -v:從新加載庫文件路徑,並查看;
ldconfig -p:查看已加載全部庫文件路徑;
例如:
#vim /etc/ld.so.conf.d/httpd.conf
/usr/local/apache2/lib
# ldconfig -v
# ldconfig -p | grep apache
(3) 導出頭文件。
/usr/include/目錄下,建立軟連接;
ln -s target_dir soft_link ##能夠導出一個目錄爲全部文件連接,也可爲每個頭文件導出一個連接,而後把建立的連接輸出到/usr/include/目錄下,或者直接複製頭文件至/usr/include/目錄;
例如:
#ln -sv /usr/local/apache2/include /usr/include/httpd
‘/usr/include/httpd’ -> ‘/usr/local/apache2/include’
(4) 導出man手冊。
Centos7是在/etc/man_db.conf的40到50行之間,添加一個MANPATH參數(Centos6多是/etc/man.config);
例如:
#vim /etc/man_db.conf
MANPATH_MAP /usr/local/apache2/bin /usr/local/apache2/man
執行命令查看:manpath-----------------------------------------------------------------------------