CentOS-6.4-minimal版中源碼安裝Apache-2.2.29
來源:程序員人生 發(fā)布時間:2014-10-08 19:52:28 閱讀次數(shù):3825次
/**
* CentOS-6.4-minimal版中源碼安裝Apache-2.2.29
* ----------------------------------------------------------------------------------------------------------------------
* 源碼安裝軟件時常見的三個步驟
* 1)配置環(huán)境:通常命令為./configure --prefix=DIR(即指定軟件安裝目錄),如果還想啟用其它功能,可在后面接著添加指令
* 比如下面的--enable-ssl用于啟用Apache的SSL模塊
* 若不想使用操作系統(tǒng)缺省的SSL庫,還可通過--with-ssl=DIR指定自己編譯的SSL庫
* 2)編譯源碼:通常命令為make
* 3)安裝應(yīng)用:通常命令為make install
* ----------------------------------------------------------------------------------------------------------------------
* 注意事項
* 1)httpd-2.2.29目錄下的configure工具是GNU軟件基金會推出的專門用于源碼發(fā)布的工具
* 2)配置環(huán)境時若出現(xiàn)這個錯誤[configure: error: no acceptable C compiler found in $PATH],是說明缺少GCC編譯環(huán)境
* 這時執(zhí)行[yum -y install gcc]命令安裝編譯源碼所需的工具和庫就可以了
* 3)執(zhí)行yum命令時若出現(xiàn)這個錯誤[Error: database disk image is malformed],是說明yum的緩存出錯,需要清理緩存
* 這時執(zhí)行[yum clean dbcache]命令即可
* 4)配置環(huán)境時configure的主要工作就是生成Makefile,編譯源碼時的make命令就是根據(jù)Makefile來進(jìn)行編譯的
* 5)最好以root安裝和啟動Apache,以root運行之后,apache就會把它的派生進(jìn)程切換到非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的目錄結(jié)構(gòu)
* bin------可執(zhí)行文件(其實apache的可執(zhí)行文件就一個:httpd,它就是apache的主程序)
* 使用[/app/apache/bin/httpd -l]命令可以查看apache編譯了多少模塊,即列出它支持的所有模塊
* 如果其中包含[mod_so.c],則說明apache具備了動態(tài)加載模塊的功能
* 比如說想新增加一個模塊,那么就不用再編譯一次apache了,只要編譯一下這個模塊,再在配置文件里面load進(jìn)去就行了
* conf-----配置文件(apache只有一個配置文件)
* htdocs---缺省的網(wǎng)站根目錄(即啟動apache后,別人訪問apache時,實際訪問的就是該目錄里面的東西)
* include--頭文件
* logs-----日志
* man------手冊
* manual---聯(lián)機文檔
* modules--存放一些編譯好的模塊,供apache啟動時動態(tài)加載
* ----------------------------------------------------------------------------------------------------------------------
* 訪問Apache
* 由于/app/apache/bin/目錄下的apache主程序httpd支持很多參數(shù),容易搞混
* 為了方便用戶,apache提供了一個名為apachectl的啟動腳本,它也是位于/app/apache/bin/目錄下的,通過[vi apachectl]就可以看到腳本內(nèi)容
* 啟動apache時,在apache2.0版本中,若想啟動支持SSL的apache,則需執(zhí)行[apachectl startssl]命令
* 而在2.2中,直接執(zhí)行[apachectl start]即可啟動并支持SSL.當(dāng)然前提是在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安裝并初次啟動后,常見的修改參數(shù)
* 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/,發(fā)現(xiàn)無法訪問(成功訪問時頁面會顯示"It works!")
* 解決辦法是修改/etc/sysconfig/iptables文件,增加一行[-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT]
* 注意這一樣要添加到默認(rèn)的22端口規(guī)則的下面,若添加到iptables文件的尾部,會有可能導(dǎo)致防火墻啟動失敗
* 接著再執(zhí)行[service iptables restart]命令重啟防火墻即可,不需要重啟Linux
* 詳細(xì)說明見http://blog.csdn.net/jadyer/article/details/11324237
* 3)當(dāng)/app/apache/htdocs/中默認(rèn)的index.html不存在時,訪問apache會顯示htdocs目錄下的文件列表,我們可以設(shè)置其不顯示文件列表
* 解決辦法是修改/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加入系統(tǒng)自啟動,常見的方法有兩種:修改配置文件和將apache注冊為系統(tǒng)服務(wù)(還有一種是在ntsysv命令調(diào)出的圖形界面中操作的)
* 修改配置文件的方式最簡單,在/etc/rc.d/rc.local文件尾部加入[/app/apache/bin/apachectl start]即可
* ----------------------------------------------------------------------------------------------------------------------
* @create Sep 26, 2014 9:14:43 AM
* @author 玄玉<http://blog.csdn.net/jadyer>
*/
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進(jìn)行捐贈