CentOS-6.4-minimal版中源碼安裝Apache-2.2.29

完整版見https://jadyer.github.io/2014/09/26/centos-install-apache/




/**
 * CentOS-6.4-minimal版中源碼安裝Apache-2.2.29
 * ----------------------------------------------------------------------------------------------------------------------
 * 源碼安裝軟件時常見的三個步驟
 * 1)配置環境:通常命令爲./configure --prefix=DIR(即指定軟件安裝目錄),如果還想啓用其它功能,可在後面接着添加指令
 *           比如下面的--enable-ssl用於啓用Apache的SSL模塊
 *           若不想使用操作系統缺省的SSL庫,還可通過--with-ssl=DIR指定自己編譯的SSL庫
 * 2)編譯源碼:通常命令爲make
 * 3)安裝應用:通常命令爲make install
 * ----------------------------------------------------------------------------------------------------------------------
 * 注意事項
 * 1)httpd-2.2.29目錄下的configure工具是GNU軟件基金會推出的專門用於源碼發佈的工具
 * 2)配置環境時若出現這個錯誤[configure: error: no acceptable C compiler found in $PATH],是說明缺少GCC編譯環境
 *   這時執行[yum -y install gcc]命令安裝編譯源碼所需的工具和庫就可以了
 * 3)執行yum命令時若出現這個錯誤[Error: database disk image is malformed],是說明yum的緩存出錯,需要清理緩存
 *   這時執行[yum clean dbcache]命令即可
 * 4)配置環境時configure的主要工作就是生成Makefile,編譯源碼時的make命令就是根據Makefile來進行編譯的
 * 5)最好以root安裝和啓動Apache,以root運行之後,apache就會把它的派生進程切換到非root用戶
 * ----------------------------------------------------------------------------------------------------------------------
 * 安裝Perl5
 * [root@CentOS64 software]# yum -y install wget
 * [root@CentOS64 software]# wget http://www.cpan.org/src/5.0/perl-5.20.1.tar.gz
 * [root@CentOS64 software]# tar zxvf perl-5.20.1.tar.gz
 * [root@CentOS64 software]# cd perl-5.20.1
 * [root@CentOS64 perl-5.20.1]# ./Configure -des -Dprefix=/app/perl
 * [root@CentOS64 perl-5.20.1]# make
 * [root@CentOS64 perl-5.20.1]# make install
 * [root@CentOS64 perl-5.20.1]# perl -v
 * ----------------------------------------------------------------------------------------------------------------------
 * 安裝OpenSSL
 * [root@CentOS64 software]# tar zxvf openssl-1.0.1i.tar.gz
 * [root@CentOS64 software]# cd openssl-1.0.1i
 * [root@CentOS64 openssl-1.0.1i]# ./config --prefix=/app/openssl
 * [root@CentOS64 openssl-1.0.1i]# make
 * [root@CentOS64 openssl-1.0.1i]# make install
 * [root@CentOS64 openssl-1.0.1i]# /app/openssl/bin/openssl version
 * ----------------------------------------------------------------------------------------------------------------------
 * 安裝Apache
 * [root@CentOS64 software]# tar zxvf httpd-2.2.29.tar.gz
 * [root@CentOS64 software]# cd httpd-2.2.29
 * [root@CentOS64 httpd-2.2.29]# rpm -qa | grep http
 * [root@CentOS64 httpd-2.2.29]# ./configure --prefix=/app/apache --enable-ssl --with-ssl=/app/openssl
 * [root@CentOS64 httpd-2.2.29]# make
 * [root@CentOS64 httpd-2.2.29]# make install
 * ----------------------------------------------------------------------------------------------------------------------
 * Apache的目錄結構
 * bin------可執行文件(其實apache的可執行文件就一個:httpd,它就是apache的主程序)
 *          使用[/app/apache/bin/httpd -l]命令可以查看apache編譯了多少模塊,即列出它支持的所有模塊
 *          如果其中包含[mod_so.c],則說明apache具備了動態加載模塊的功能
 *          比如說想新增加一個模塊,那麼就不用再編譯一次apache了,只要編譯一下這個模塊,再在配置文件裏面load進去就行了
 * conf-----配置文件(apache只有一個配置文件)
 * htdocs---缺省的網站根目錄(即啓動apache後,別人訪問apache時,實際訪問的就是該目錄裏面的東西)
 * include--頭文件
 * logs-----日誌
 * man------手冊
 * manual---聯機文檔
 * modules--存放一些編譯好的模塊,供apache啓動時動態加載
 * ----------------------------------------------------------------------------------------------------------------------
 * 訪問Apache
 * 由於/app/apache/bin/目錄下的apache主程序httpd支持很多參數,容易搞混
 * 爲了方便用戶,apache提供了一個名爲apachectl的啓動腳本,它也是位於/app/apache/bin/目錄下的,通過[vi apachectl]就可以看到腳本內容
 * 啓動apache時,在apache2.0版本中,若想啓動支持SSL的apache,則需執行[apachectl startssl]命令
 * 而在2.2中,直接執行[apachectl start]即可啓動並支持SSL.當然前提是在httpd.conf中配置[Include conf/extra/httpd-ssl.conf]
 * [root@CentOS64 bin]# /app/apache/bin/apachectl start
 * [root@CentOS64 bin]# /app/apache/bin/apachectl restart
 * [root@CentOS64 bin]# /app/apache/bin/apachectl stop
 * ----------------------------------------------------------------------------------------------------------------------
 * Apache安裝並初次啓動後,常見的修改參數
 * 1)啓動或重啓apache時,控制檯會打印下面的信息
 *   httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.0.103 for ServerName
 *   解決辦法是修改/app/apache/conf/httpd.conf文件,取消註釋[#ServerName www.example.com:80],再重啓apache就看到效果了
 * 2)apache啓動後通過電腦訪問http://192.168.0.102/,發現無法訪問(成功訪問時頁面會顯示"It works!")
 *   解決辦法是修改/etc/sysconfig/iptables文件,增加一行[-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT]
 *   注意這一樣要添加到默認的22端口規則的下面,若添加到iptables文件的尾部,會有可能導致防火牆啓動失敗
 *   接着再執行[service iptables restart]命令重啓防火牆即可,不需要重啓Linux
 *   詳細說明見http://blog.csdn.net/jadyer/article/details/11324237
 * 3)當/app/apache/htdocs/中默認的index.html不存在時,訪問apache會顯示htdocs目錄下的文件列表,我們可以設置其不顯示文件列表
 *   解決辦法是修改/app/apache/conf/httpd.conf文件,註釋掉[Options Indexes FollowSymLinks]這一行即可
 *   然後再訪問http://192.168.0.102/,就會看到熟悉的"Forbidden:You don't have permission to access / on this server."
 * 4)如果想把apache加入系統自啓動,常見的方法有兩種:修改配置文件和將apache註冊爲系統服務(還有一種是在ntsysv命令調出的圖形界面中操作的)
 *   修改配置文件的方式最簡單,在/etc/rc.d/rc.local文件尾部加入[/app/apache/bin/apachectl start]即可
 * ----------------------------------------------------------------------------------------------------------------------
 * @create Sep 26, 2014 9:14:43 AM
 * @author 玄玉<http://blog.csdn.net/jadyer>
 */
發佈了360 篇原創文章 · 獲贊 338 · 訪問量 121萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章