/**
* 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>
*/
CentOS-6.4-minimal版中源碼安裝Apache-2.2.29
完整版見https://jadyer.github.io/2014/09/26/centos-install-apache/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.