近年來Linux在伺服器市場佔有比例日漸攀升,除了緣於Linux的免費和安全性之外,還因為Linux上的應用服務日益豐富。大部分常見的服務都在Linux上有了較好的解決方案。而對於Intenet上應用最廣泛的Web服務來說,Linux的表現就更為出色。誰也無法說清Internet上究竟有多少個網站,但在眾多網站中,採用PHP和JSP開發的網站無疑佔居了極大的市場份額。以下就介紹如何在Linux上架設支援JSP+PHP+MySQL的Web伺服器。
對於Web服務,apache無疑是首選。資料庫方面選用MySQL,這對於一般應用也夠了,當然Linux下也可以安裝oracle、DB2等大型資料庫,可是它們費用昂貴。至於對於開發語言的支持,JSP和PHP無疑是目前最主流和應用最廣泛的web開發語言了。所有這些軟體我們可以從以下網站找到:
Resin: http://www.caucho.com/
JDK: http://java.sun.com/
Apache: http://www.apache.org
MySQL: http://www.mysql.com
PHP: http://www.php.net
MM.MySQL: http://mmmysql.sourceforge.net/
從以上網站下載對應的軟體,筆者下載的軟體如下:
mysql-4.0.15.tar.gz
apache_1.3.28.tar.gz
php-4.3.3.tar.gz
resin-3.0.3.tar.gz
mysql-connector-java-3.1.0-alpha.tar.gz
j2sdk-1_4_2_01-linux-i586.bin
一、安裝MySQL
MySQL的安裝比較簡單,但是編譯過程可能有點長,具體步驟如下:
# tar -xzpvf mysql-4.0.15.tar.gz
# adduser -s /bin/false mysql
# ./configure --prefix=/usr/local/terry_yu/mysql --enable-assembler
--with-innodb --with-charset=gb2312
# make
# make install
# /usr/local/terry_yu/mysql/bin/mysql_install_db
# chown -R root /usr/local/terry_yu/mysql/
# chown -R mysql /usr/local/terry_yu/mysql/var
# chgrp -R mysql /usr/local/terry_yu/mysql/
# /usr/local/terry_yu/mysql/bin/mysql_install_db
修改/etc/ld.so.conf,最後加入以下一行:
/usr/local/terry_yu/mysql/lib/mysql/lib
然後執行下列指令:
# ldconfig
用以下指令啟動MySQL
/usr/local/terry_yu/mysql/bin/mysqld_safe &
用下列指令修改MySQL的root密碼:
/usr/local/terry_yu/mysql/bin/mysqladmin -uroot password abcdefg
用以下指令可以進入MySQL的命令列方式:
[root@terry root]# /usr/local/terry_yu/mysql/bin/mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1 to server version: 4.0.15
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> quit
Bye
出現以上資訊表示MySQL已經成功運作了。
二、安裝JDK
# chmod 755 j2sdk-1_4_2_01-linux-i586.bin
# ./j2sdk-1_4_2_01-linux-i586.bin
# mv j2sdk1.4.2_01/ /usr/local/terry_yu/
# cd /usr/local/terry_yu/
# ln -s j2sdk1.4.2_01/ jdk
# ln -s jdk/jre/ jre
# vi /etc/profile
JAVA_HOME=/usr/local/terry_yu/jdk
RESIN_HOME=/usr/local/terry_yu/resin
CLASSPATH=.:../$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$RESIN_HOME/lib:/usr/ local/terry_yu/jdbc
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
退出目前登入的環境,重新登錄,這樣剛剛設定的環境變數就會生效,然後用以下指令測試:
[root@terry root]# java -version
java version "1.4.2_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_01-b06)
Java HotSpot(TM) Client VM (build 1.4.2_01-b06, mixed mode)
看到類似資訊就表示JDK環境已經好了。其實在上面的/etc/profile中,我們不只設定了JDK的環境變量,還一併設定了Resin和JDBC的環境變量,這些都是後面安裝Resin所必需的設定。
三、安裝MySQL的JDBC
MySQL的JDBC的相關環境變數已經在前面設定好了,所以剩下的只是按以下指令安裝:
# tar -xzpvf mysql-connector-java-3.1.0-alpha.tar.gz
# mv mysql-connector-java-3.1.0-alpha /usr/local/terry_yu/
# cd /usr/local/terry_yu/
# ln -s mysql-connector-java-3.1.0-alpha/ jdbc
四、安裝Apache
下載的resin的安裝包解開後應該可以直接單獨運行的。筆者解開後放到/usr/local/terry_yu目錄下
# tar -xzpvf resin-3.0.3.tar.gz
# mv resin-3.0.3 /usr/local/terry_yu/
# cd /usr/local/terry_yu/
# ln -s resin-3.0.3/ resin
啟動resin
# /usr/local/terry_yu/resin/bin/httpd.sh start
如果之前安裝JDK時設定好了相關的環境變量,就能夠從http://localhost:8080/上能看到resin的頁面,這也就表示單獨的resin運行成功了。然後,為了整合resin和apache,我們需要重新編譯一下,以產生mod_caucho給Apache呼叫。
# cd /usr/local/terry_yu/resin
# ./configure --with-apache=/usr/local/terry_yu/apache
# make
# make install
修改/usr/local/terry_yu/resin/conf/resin.conf,大約在第159行(安裝的resin版本不同,設定檔的內容可能有所不同),將
...
修改/usr/local/terry_yu/apache/conf/httpd.conf,在編譯resin時,安裝程式已經修改過httpd.conf,不過還不完全正確,應該改成類似以下的配置,如果你完全按本文進行的安裝可以直接複製這些內容:
LoadModule caucho_module libexec/mod_caucho.so
AddModule mod_caucho.c
ResinConfigServer localhost 6802
SetHandler caucho-status
修改完後,重新啟動resin後生效:
/usr/local/terry_yu/resin/bin/httpd.sh restart
/usr/local/terry_yu/apache/bin/apachectl restart
透過瀏覽器去訪問http://localhost/caucho-status/ ,如果出現以下頁面剛表示resin和apache已經成功整合了。
然後再測試JSP對資料庫的訪問,在/usr
/local/apache/htdocs/下面用jsp寫一個簡單的jsp檔案來連接本機的MySQL資料庫:vi /usr/local/terry_yu/apache/htdocs/testdb .jsp
輸入以下內容,可直接貼上:
透過瀏覽器去訪問http://localhost/testdb ,如果看到了一個沒有任何錯誤訊息的空白頁面,就表示jsp連接本機的MySQL資料庫成功了,至此我們就完成了一個支援JSP+ PHP+MySQL的Web伺服器。
附註:以上所有安裝都是在Red Hat Linux9.0上完成的,所使用軟體也都是目前(2003年9月)最新的版本。
本文介紹如何在Linux上架設同時支援JSP和PHP的Web Server,示範了MySQL、JDK、JDBC、Apache、PHP、Resin的安裝和簡單測試過程。