1、編譯前準備java
1.開源代碼包獲取c++
(1)官方自建站點apache
apache.org (ASF)、mariadb.org…vim
(2)代碼託管站點緩存
SourceForgeless
Github.commaven
code.google.comide
2.C源代碼開發工具及開發環境準備工具
(1)開發工具:make, gcc等開發工具
1)make:C/C++等編譯的項目管理工具,用來處理源碼到二進制碼之間的過程
(configure --> Makefile.in --> makefile)執行過程
源代碼 --> 預處理 --> 編譯(gcc) --> 彙編 --> 連接 --> 執行
JAVA的管理工具mavenn
2)gcc(GNU C Complier):本來僅適用於c/c++,後來增長集成了java等不少其餘語言編譯功能
(2)開發環境:開發庫(glibc:標準庫),頭文件
能夠經過安裝「包組」提供開發組件
CentOS 6標準開發組件: "Development Tools", "Server Platform Development"
2、編譯安裝
1.解壓源碼文件
[root@localhost tmp]# tar xf httpd-2.2.29.tar.bz2
2.安裝前查看INSTALL,README文檔
INSTALL,README文件是該程序的安裝文檔信息等內容,建議安裝以前先查看cdc
[root@localhost httpd-2.2.29]# less INSTALL
[root@localhost httpd-2.2.29]# less README
3.configure腳本編輯
(1)[root@localhost httpd-2.2.29]# ./configure --help
經過選項傳遞參數,指定啓用特性、安裝路徑等
1)安裝路徑相關
--prefix=/PATH/TO/SOMEWHERE: 指定默認安裝位置;默認爲/usr/local/
--sysconfdir=/PATH/TO/SOMEWHERE:配置文件安裝位置;
2)System types:系統類型,實現交叉編譯(指定編譯非宿主機的系統配置)
3)Optional Features: 可選特性
--disable-FEATURE 不可行的
--enable-FEATURE[=ARG] 可行的
4)Optional Packages: 可選包
--with-PACKAGE[=ARG]依賴的包
--without-PACKAGE不依賴什麼包,和指定路徑的包相關
2)[root@localhost httpd-2.2.29]# ./configure --prefix=/usr/local/apache2.2/
執行時會參考用戶的指定以及Makefile.in文件生成makefile
注意:檢查依賴到的外部環境;注意此時的生成報告,error時候不能繼續make
4.make:根據makefile文件,構建應用程序
若報錯則不能繼續make編譯,要先檢查出錯誤
5.make install 複製上面結果至關於install命令
自動建立目錄,將所需文件cp到指定位置
3、安裝後的配置
自定義編譯安裝以後,將其總體安裝在了/usr/local/*文件下,卸載時只需刪除該文件夾便可
可是,此時系統路徑是沒法讀取該配置文件的,因此服務可能沒法啓動,須要配置其部分文件
1.導出二進制程序目錄至PATH環境變量中
編輯文件/etc/profile.d/NAME.sh,輸入export PATH=/PATH/TO/BIN:$PATH
注意:bin路徑的放在前面系統在讀取配置文件的時候會按照自左向右的順序讀取
[root@localhost apache2.2]# cd /etc/profile.d/
[root@localhost profile.d]# vim http2.2.sh
export PATH=/usr/local/apache2.2/bin:$PATH
2.導出庫文件路徑
(1)編輯/etc/ld.so.conf.d/NAME.conf,添加新的庫文件所在目錄至此文件中;
[root@localhost profile.d]# cd /etc/ld.so.conf.d
[root@localhost ld.so.conf.d]# vim httpd2.2.conf
(2)讓系統從新生成緩存:ldconfig [-v]
[root@localhost ld.so.conf.d]# ldconfig -v
3.導出頭文件
基於連接的方式實現:ln -sv
[root@localhost apache2.2]# ln -sv /usr/local/include/ /usr/include/apache2.2
`/usr/include/apache2.2' -> `/usr/local/include/'
4.導出幫助手冊
編輯/etc/man.config文件,添加一個MANPATH
[root@localhost ~]# vim /etc/man.config
4、啓動服務及問題報錯解決
[root@localhost ld.so.conf.d]# service httpd start
[root@localhost ld.so.conf.d]# ps aux | grep httpd
報錯:
Starting httpd: httpd: Syntax error on line 164 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_authnz_ldap.so into server: /etc/httpd/modules/mod_authnz_ldap.so: undefined symbol: apr_ldap_url_parse
問題:ldap模塊問題
解決方案:編輯 /etc/httpd/conf/httpd.conf 文件,註釋掉相關模塊
LDAP是輕量目錄訪問協議,英文全稱是Lightweight Directory Access Protocol,通常都簡稱爲LDAP。它是基於X.500標準的,可是簡單多了而且能夠根據須要定製。與X.500不一樣,LDAP支持TCP/IP,這對訪問Internet是必須的。LDAP的核心規範在RFC中都有定義,全部與LDAP相關的RFC均可以在LDAPman RFC網頁中找到。
此處用不到
本文出自 「許鼎的博客」 博客,請務必保留此出處http://xuding.blog.51cto.com/4890434/1728651