實例;編譯安裝apache 2.2,并啟動此服務

基于c語言的源代碼編譯安裝,通常有三個步驟

    ./configure

        (1)通過選項傳遞參數,指定啟用特性,安裝路徑等:執行時會參考用戶的指定以及makefile.in文件生成makefile.

        (2)檢查依賴到的外部環境;



make:根據makefile文件,構建應用程序:(make是真正構建項目成為二進制程序的一個關鍵步驟,但make自己不是編譯器,他是調用gcc來完成編譯的,所以說make只是一個項目管理工具,而這個項目管理工具依賴與makfile,l來完成項目構建,而makefile又不能寫死,所以這個時候依賴與configure腳本結合程序員事先寫好的模版Makefile.in,讓用戶自己指定選項以后執行生成



makeinstall(makeinstall其實就是把編譯好的文件復制到configure指定的安裝路徑下去)

   configure,和makefile.in是由項目構建工具生成的,但是有些應用程序的編譯安裝不會自帶,所以得手動生成,而這依賴于以下兩個開發工具;       開發工具:

          autoconf:生成configure腳本

          automake:生成makefile.in

      對與不同的應用程序,他的configure腳本肯定是不一樣的,因為對不同的應用程序他的參數和特性不一樣。所有autoconf需要結合一個配置文件去生成一個configure腳本,這個配置文件是用來告訴autoconf當前的這個開發的代碼他需要有那些功能,是用來做特性使用的。automake也是如此,這就意味著不同程序的安裝步驟是不一樣的,有些程序需要configure腳本,有些程序不需要。所有建議安裝源代碼程序時注意查他的install文檔,建議:安裝前查看install文檔,readme文檔



準備工作    

    開源程序源代碼的獲?。?/p>

     官方自建站點:

          apache.org(ASF)

          mariadb.org

     代碼托管:

          sourceforge

          github.com

          code.google.com

 提供開發工具及開發環境(chentos 5 6 7 通過“包組”提供開發組件,本次安裝是在centos6操作系統下完成的)

         centos 6 的標準開發組件有兩個"Development toos","server platfrom development"   

        開發工具:make ,gcc等等

          開發環境:開發庫,頭文件

        安裝"Development toos","server platfrom development"

]#yum groupinstall "Development toos" "server platfrom development"

第一步:./configure腳本

    選項:指定安裝位置,指定啟用特性

        –help:獲取其支持使用的選項

    選項分類:

    安裝路徑設定:

        –prefix=path/to/somewhere:指定默認安裝位置;默認為/usr/local

        –sysconfidir=/path/to/somewhere:配置文件安裝位置

        optional features:可選特性

        –disable-feature

        –enable-feature[=arg]

        optional packages:可選包

        –with-package[=arg]

        –whithout-package

    下載并解壓httpd-2.2.29.tar

]#tar xvf httpd-2.2.29.tar.bz2

cd至httpd2.2.29目錄

安裝前查看INSTALL,README文檔

    INSTALL,README文件是該程序的安裝文檔信息等內容

]#less INSTALL 
]#less README

執行./configure –prefix=/usr/local/apache –sysconfdir=/etc/httpd命令,指定安裝位置和配置文件位置

]#./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd

第二步:make

    執行make根據makefile文件,構建應用程序

]#make

第三步:make install

]#make install

    cd到/usr/local/apache目錄,查看安裝結果查找到bin目錄下的apachectl(這是一個腳本,可以控制啟動apachectl服務的)。并且執行bin/apachectl start命令開啟服務,使用netstat -tan 查看80端口屬于監聽狀態及表示服務已經開始運行。

    自定義編譯安裝之后,將其整體安裝在了/usr/local/*文件下,卸載時只需刪除該文件夾即可。

    但是,此時系統路徑是無法讀取該配置文件的,所以服務可能無法啟動,需要配置其部分文件。

/usr/local/apache]#ls bin
ab         apr-1-config  apxs      dbmmanage  envvars-std   htdbm     htpasswd  httxt2dbm   rotatelogs
apachectl  apu-1-config  checkgid  envvars    htcacheclean  htdigest  httpd     logresolve


安裝后的配置

(1)導出二進制程序目錄至path環境變量中

    編輯文件/etc/profile.d/name(以程序名命名).sh輸入export path=/payh/to/bin:$path

]#vim apaceh.sh
]#cat apaceh.sh
export PATH=$PATH:/usr/local/apache/bin

(2)導出庫文件路徑

    編輯/etc/ld.so.conf.d/name.conf

    添加新的庫文件所在目錄至此文件中;

]#vim /etc/ld.so.conf.d/apache.conf
]#cat /etc/ld.so.conf.d/apache.conf
/usr/local/apache/lib

讓系統重新生成緩存

    執行ldconfig[-v]命令

]#ldconfig -v
/usr/local/apache/lib:
	libexpat.so.0 -> libexpat.so.0.5.0
	libapr-1.so.0 -> libapr-1.so.0.5.1
	libaprutil-1.so.0 -> libaprutil-1.so.0.5.3

(3)導出頭文件

    基于鏈接的方式實現

    ln -sv

]#ln -sv /usr/local/include/ /usr/include/apache
"/usr/include/apache" -> "/usr/local/include/"

(4)導出幫助手冊

    編輯/etc/man.config文件

    添加一個manpath

MANPATH /usr/local/apache(添加此段語句)
/usr/local/apache]#ls man
man1  man8

至此整個編譯安裝完成!



安裝后問題報錯

啟動服務失敗

]#service httpd start
正在啟動 httpd:httpd: Syntax error on line 163 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_ldap.so into
 server: /etc/httpd/modules/mod_ldap.so: undefined symbol: apr_ldap_ssl_init
                                                           [失敗]

問題分析;/etc/httpd/conf/httpd.的第163行不能加載配置 這個apr_ldap_ssl_init到底是什么鬼,目前未知。

解決辦法,注釋掉/etc/httpd/cof/httpd.conf第163,164行,并且啟動成功

]#service httpd start
正在啟動 httpd:httpd: apr_sockaddr_info_get() failed for \xd8\xa7\xd9\x84\xd8\xb3\xd9\x84\xd8\xa7\xd9\x85 \xd8\xb9\xd9\x
84\xd9\x8a\xd9\x83\xd9\x85
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [確定]

yum安裝links之后測試成功

blob.png

本地ip測試可訪問(需關閉防火墻)iptables -F

blob.png

原創文章,作者:M20-1馬星,如若轉載,請注明出處:http://www.www58058.com/39288

(0)
M20-1馬星M20-1馬星
上一篇 2016-08-24 10:12
下一篇 2016-08-24 10:12

相關推薦

  • vsftpd基于mysql存儲認證(centos7)

    (1)首先開發包組和服務器平平臺開發包組 (2)yum安裝需要的依賴包 (3)編譯安裝pam_mysql模塊 (4)配置mysql,并添加mysql中的vsftpd進程用戶,且創建vsftpd數據庫,并將vsftpd數據庫授權給vsftpd用戶,且創建vsftpd.users表,并在表中添加用戶tom (5)創建vsftpd要上傳和下載的URL (6)創建基…

    Linux干貨 2016-10-15
  • 正則表達式和文本處理工具grep,egrep

    正則表達式(Regular Expression)是通過一些特殊字符的排列,來表示控制或者通配的功能,用于查找,替換,刪除一行或者多行文字字符串,是用在字符處理上的一項表達式,有時候我們可通過表達式來篩選出我們所需要的信息。 正則表達式分為兩類:基本正則表達式(BRE)和擴展的正則表達式(ERE) 正則表達式基本上是一種“表示法”,只要工具程序支持這種表示法…

    Linux干貨 2016-12-20
  • Apache-httpd工作模型

    httpd   httpd是由apache軟件基金會開發的一款著名的web服務器軟件。由于其開放源代碼,并且擁有跨平臺、功能強大、安全穩定等特性,而被廣泛使用。早期httpd是在修修補補的基礎上成長起來的,所以早期也叫作a pachey server,由于開發httpd的組織叫作apache,因此httpd也被稱作apache。httpd有三個長線維護版本,…

    Linux干貨 2017-02-15
  • Ubuntu之apt-get光盤源配置小結

    Ubuntu配置本地apt源的方法:    1. 命令自動配置:        mount    /dev/cdrom   /mnt/cdrom        apt-cdrom   ident   &nbsp…

    Linux干貨 2016-03-09
  • iptables

    iptables: Firewall:隔離工具;Packets Filter Firewall;工作于主機或網絡的邊緣,對經由的報文根據預先定義的規則(匹配條件)進行檢測,對于能夠被規則匹配到的報文實行某預定義的處理機制的一套組件; 硬件防火墻:在硬件級別實現部分功能的防火墻;另一個部分功能基于軟件實現;  軟件防火墻:應用軟件處理邏輯運行于通用硬…

    Linux干貨 2016-12-05
  • sed 和 vim 的 用法

    處理文本的工具 三劍客之 sed sed是一種流編輯器,它一次處理一行內容。處理時,把 當前處理的行存儲在臨時緩沖區中,稱為“模式空間”( pattern space),接著用sed命令處理緩沖區中的內容 ,處理完成后,把緩沖區的內容送往屏幕。接著處理下一 行,這樣不斷重復,直到文件末尾。文件內容并沒有改變 ,除非你使用重定向存儲輸出。Sed主要用來自動編輯…

    Linux干貨 2016-08-12
欧美性久久久久