OK!最單純簡易的 WWW 伺服器設定搞定的差不多了,接下來就是要啟動啦!啟動的方法簡單到不行,用傳統的方式來處理:
[root@www ~]# /etc/init.d/httpd start       <==立刻啟動啦!
[root@www ~]# /etc/init.d/httpd configtest  <==測試設定檔語法
[root@www ~]# chkconfig httpd on            <==開機啟動 WWW 啦!
另外,其實 Apache 也自行提供一支 script 可以讓我們來簡單的使用,那就是 apachectl 這支程式啦! 這支程式的用法與 /etc/init.d/httpd 幾乎完全一模一樣喔!
[root@www ~]# /usr/sbin/apachectl start  <==啟動啦!
[root@www ~]# /usr/sbin/apachectl stop   <==關閉 WWW 啦!
一般建議你可以稍微記一下 apachectl 這支程式,因為很多認證考試會考,而且他也是 Apache 預設提供的一個管理指令說!好了,來看看有沒有啟動成功?
# 先看看 port 有沒有啟動啊!
[root@www ~]# netstat -tulnp | grep 'httpd'
Proto Recv-Q Send-Q Local Address  Foreign Address State  PID/Program name
tcp        0      0 :::80          :::*            LISTEN 2493/httpd
# 再來看看登錄檔的資訊記錄了什麼!這個確實建議瞧一瞧!
[root@www ~]# tail /var/log/httpd/error_log
[notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0
[notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[notice] Digest: generating secret for digest authentication ...
[notice] Digest: done
[notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.2 configured -- resuming normal operations
# 第一行在告知有使用 SELinux(強調一下),最後一行代表正常啟動了!
這樣應該就成功啟動了 Apache 囉!比較重要的是還有啟動 SELinux 的相關說明,這底下我們還得要注意注意呢! 接下來測試看看能不能看到網頁呢?首先看看 /var/www/html 有沒有資料?咦?沒有~沒關係,因為 CentOS 幫我們造了一個測試頁了 (Apache 的 welcome 模組功能),所以你還是在瀏覽器上面輸入你這部主機的 IP 看看先:
啟動
圖 20.2-1、啟動 Apache 之後,所看到的預設首頁
你可以在伺服器上面啟動圖形介面來查閱,也可以透過客戶端電腦來連線 (假設防火牆問題已經克服了)。 鳥哥這裡假設伺服器為 runlevel 3 的純文字介面,因此使用外部的用戶端電腦連線到伺服器的 IP 上,如上圖畫面中的箭頭 1 處。如果你是在伺服器本機上面啟動的瀏覽器,那直接輸入『 http://localhost 』即可。同時看到畫面中的箭頭 2 所指處,你就可以發現首頁的位置是在 /var/www/html/ 底下囉!但如果想要知道有沒有成功的驅動 PHP 模組,那你最好先到 /var/www/html 目錄下去建立一個簡單的檔案:
[root@www ~]# vim /var/www/html/phpinfo.php
<?php  phpinfo ();  ?>
要記住,PHP 檔案的副檔名一定要是 .php 結尾的才行喔!至於內容中,那個『 <?php ... ?> 』是嵌入在 HTML 檔案內的 PHP 程式語法,在這兩個標籤內的就是 PHP 的程式碼。那麼 phpinfo(); 就是 PHP 程式提供的一個函式庫,這個函式庫可以顯示出你 WWW 伺服器內的相關服務資訊, 包括主要的 Apache 資訊與 PHP 資訊等等。這個檔案建置完畢後,接下來你可以利用瀏覽器去瀏覽一下這個檔案:
測試
圖 20.2-2、測試 Apache 能否驅動 PHP 模組
注意看網址的部分喔!因為我們 phpinfo.php 是放置在首頁目錄底下,因此整個 URL 當然就成為上述箭頭 1 當中的模樣了。 這個 phpinfo() 函數輸出的內容還挺機密的,所以測試完畢後請將這個檔案刪除吧!從上頭的畫面你可以知道 PHP 模組的版本以及 Apache 相關的重要資料啦!自己仔細瞧瞧吧!如此一來,你的 Apache 與 PHP 就 OK 的啦!
那萬一測試失敗怎麼辦?常見的錯誤問題以及解決之道可以參考:
  • 網路問題:雖然在本機上沒有問題, 但不代表網路一定是通的!請確認一下網路狀態!例如 Route table, 撥接情況等等;
  • 設定檔語法錯誤:這個問題很常發生,因為設定錯誤,導致無法將服務啟動成功。 此時除了參考螢幕上面的輸出資訊外,你也可以透過 /etc/init.d/httpd configtest 測試語法,更佳的解決方案是參考 /var/log/httpd/error_log 內的資料,可以取得更詳盡的解決之道。
  • 權限問題:例如你剛剛在 httpd.conf 上面的 user 設定為 apache 了,但偏偏要被瀏覽的檔案或目錄權限對 apache 沒有可讀權限,自然就無法讓人家連線進去啦!
  • 問題的解決之道:如果還是沒有辦法連接上來你的 Linux Apache 主機,那麼請:
    1. 察看 /var/log/httpd/error_log 這個檔案吧!他應該可以告訴你很多的資訊喔!
    2. 仔細的察看一下你瀏覽器上面顯示的資訊,這樣才能夠知道問題出在哪裡!
    3. 另一個可能則是防火牆啦!察看一下 iptables 的訊息!也可能是 SELinux 的問題喔!