本以為linux下安裝apache是件很簡單的過程。三命令就可以搞定,jxvf解壓,make 編譯,make install 安裝就OK了。沒想到這個過程還頗費周折。可能和環境有關吧。先說一下我的環境。
---------------------------
linux : cenos5.5 (驗證4.8也會碰到以下問題)
apache: httpd-2.4.1.tar.bz2
---------------------------
[root@localhost apache]# tar jxvf httpd-2.4.1.tar.bz2 //解壓apache的壓縮包
[root@localhost apache]# cd httpd-2.4.1 //定位到httpd-2.4.1 檔案夾下
[root@localhost httpd-2.4.1]# ls //查看顯示httpd-2.4.1 檔案夾下內容
[root@localhost httpd-2.4.1]#./configure --help | more //查看安裝apache配置參數
[root@localhost httpd-2.4.1]#./configure --prefix=/usr/local/apache --enable-so // 配置apache路徑 ,後面跟 --enable-so 參數表示讓apache核心裝載DSO
[root@localhost httpd-2.4.1]# make //編譯apache
出錯了!提示:
configure: error: APR not found. Please read the documentation
在apache官網上可以下載到 apr-1.4.6.tar.gz
解決apr not found問題>>>>
APR和APR-UTIL的:http://apr.apache.org/download.cgi
[root@localhost apache]# tar -zxf apr-1.4.6.tar.gz
[root@localhost apache]# cd apr-1.4.6
[root@localhost apr-1.4.6]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.4.6]# make
[root@localhost apr-1.4.6]# make install
安裝完成後,再來編譯apache
[root@localhost httpd-2.4.1]# make
又出錯了!提示:
configure: error: APR-util not found. Please read the documentation
好吧!還是上面的apache官網地址再下載 apr-util-1.4.1.tar.gz
解決APR-util not found問題>>>>
[root@localhost apache]# tar -zxf apr-util-1.4.1.tar.gz
[root@localhost apache]# cd apr-util-1.4.1
[root@localhost apr-util-1.4.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
[root@localhost apr-util-1.4.1]# make
[root@localhost apr-util-1.4.1]# make install
再來編譯apache ,再次出錯!提示:
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/ , 我X !linux 安裝軟體之間關聯性有時能讓人崩潰。
../configure仍提示APR-util not found,增加--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util後出現>>>>>
[root@localhost apache]# ./configure –help | grep pcre
--with-pcre=PATH Use external PCRE library
:http://ftp.exim.llorien.org/pcre/
下載pcre-8.30.zip ,列表檔案較多,一般瀏覽器會有搜尋功能,你可ctrl+f 搜尋定位後下載。
[root@localhost apache]#unzip -o pcre-8.30.zip
[root@localhost apache]#cd pcre-8.30
[root@localhost pcre-8.30]#./configure --prefix=/usr/local/pcre
[root@localhost pcre-8.30]#make
[root@localhost pcre-8.30]#make install
編譯Apache
[root@yahoo httpd-2.3.12-beta]# ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/
注意,這裡後面跟的參數,一定要與前面安裝apr 和apr-util的路徑一致。
[root@localhost httpd-2.4.1]# make
[root@localhost httpd-2.4.1]# make install
這次編譯安裝應該不會再報任何錯誤了。哈哈!!
啟動apache
[root@localhost bin]# pwd
/usr/local/apache/bin
[root@localhost bin]# apachectl stop 停止
[root@localhost bin]# apachectl start 啟動
查看80連接埠是否被佔用
[root@localhost conf]#netstat -an | grep :80
查看apache 啟動服務是否啟動
[root@localhost bin]# ps -aux | grep httpd
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
root 2866 0.0 1.2 25164 9556 ? Ss 22:45 0:00 /usr/sbin/httpd -k start
apache 2867 0.0 0.7 25300 5556 ? S 22:45 0:00 /usr/sbin/httpd -k start
apache 2868 0.0 0.6 25300 5444 ? S 22:45 0:00 /usr/sbin/httpd -k start
apache 2869 0.0 0.6 25300 5444 ? S 22:45 0:00 /usr/sbin/httpd -k start
apache 2870 0.0 0.7 25300 5556 ? S 22:45 0:00 /usr/sbin/httpd -k start
apache 2871 0.0 0.6 25164 4796 ? S 22:45 0:00 /usr/sbin/httpd -k start
apache 2872 0.0 0.6 25164 4796 ? S 22:45 0:00 /usr/sbin/httpd -k start
apache 2873 0.0 0.6 25164 4796 ? S 22:45 0:00 /usr/sbin/httpd -k start
apache 2874 0.0 0.6 25164 4796 ? S 22:45 0:00 /usr/sbin/httpd -k start
root 3141 0.0 0.0 4244 676 pts/1 R+ 22:48 0:00 grep httpd
下面訪問一下apache預設頁是否能開啟。http://ip:80/index.html
又提示了錯誤:
難道是連接埠被佔用了?修改apache的設定檔
/usr/local/apache/conf/httpd.conf 設定檔
[root@localhost conf] vi httpd.conf
找到下面一行:
Listen 80 把80改成其它連接埠,如8080 、8800 只要沒被佔用就行。
找到下面一行:
ServerName www.example.com:80 改成本機ip加連接埠號碼,如:192.168.0.105:80
連接埠改來改去,一直都報那個錯誤。由於之前沒有在linux下安裝apache的經驗,與是想找一下apache預設啟動並執行哪個頁面。於是,找到了,..../apache/htdocs/index.html 檔案(受tomcat的誤導)!其實不然,真正啟動並執行是 /var/www/html 目錄下的檔案
You don't have permission to access /index.html on this server
真正的錯誤在這句提示上。因為我方位的檔案許可權不足夠。那給檔案加個許可權吧!
在/var/www/html 建立個檔案index.html
[root@localhost html]# chmod 766 index.html
Ok!再來方位apache ,頁面正常開啟了!過程很糾結,結局很美好!
-----------小結--------------
需要安裝的檔案:
apr-1.4.6
apr-util-1.4.1.tar.bz2
pcre-8.30.zip
/usr/local/apache apache的安裝目錄
/usr/local/apache/conf/httpd.conf 設定檔
/usr/local/apache/bin/ apachectl stop/start 停止/啟動程式
/var/www/html/ 在這個檔案夾下建立可以訪問的頁面