詳解在Linux上架設(shè)支持JSP+PHP的Web服務(wù)器
近年來Linux在Web服務(wù)器市場占有比例日漸攀升,除了緣于Linux的免費(fèi)和安全性之外,還因?yàn)長inux上的應(yīng)用服務(wù)日益豐富。大部分常見的服務(wù)都在Linux上有了較好的解決方案。而對(duì)于Intenet上應(yīng)用最廣泛的Web服務(wù)來說,Linux的表現(xiàn)就更為出色。誰也無法說清Internet上究竟有多少個(gè)網(wǎng)站,但在眾多網(wǎng)站中,采用PHP和支持JSP的網(wǎng)站無疑占居了極大的市場份額。下面就介紹一下如何在Linux上架設(shè)支持JSP PHP MySQL的Web服務(wù)器。
對(duì)于Web服務(wù),Apache無疑是首選。數(shù)據(jù)庫方面選用MySQL,這對(duì)于一般應(yīng)用也夠了,當(dāng)然Linux下也可以安裝oracle、DB2等大型數(shù)據(jù)庫,可是它們費(fèi)用昂貴。至于對(duì)于開發(fā)語言的支持,支持JSP和PHP無疑是當(dāng)前最主流和應(yīng)用最廣泛的web開發(fā)語言了。所有這些軟件我們可以從以下網(wǎng)站上找到:
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/
從以上網(wǎng)站下載對(duì)應(yīng)的軟件,筆者下載的軟件如下:
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的安裝比較簡單,但是編譯過程可能有點(diǎn)長,具體步驟如下:
- # 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
然后執(zhí)行以下命令:
- # ldconfig
用以下命令啟動(dòng)MySQL
- /usr/local/terry_yu/mysql/bin/mysqld_safe &
用以下命令修改MySQL的root密碼:
/usr/local/terry_yu/mysql/bin/mysqladmin -uroot password abcdefg
用以下命令可以進(jìn)入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
出現(xiàn)以上信息表示MySQL已經(jīng)成功運(yùn)行了。
二、安裝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
退出當(dāng)前登錄的環(huán)境,重新登錄,這樣剛剛設(shè)定的環(huán)境變量就會(huì)生效,然后用如下命令測試:
- [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環(huán)境已經(jīng)好了。其實(shí)在上面的/etc/profile中,我們不僅僅設(shè)置了JDK的環(huán)境變量,還一并設(shè)置了Resin和JDBC的環(huán)境變量,這些都是后面安裝Resin所必需的設(shè)定。
三、安裝MySQL的JDBC
MySQL的JDBC的相關(guān)環(huán)境變量已經(jīng)在前面設(shè)置好了,所以余下的只是按以下命令安裝:
- # 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
http://apache.linuxforum.net/dist/httpd/apache_1.3.28.tar.gz
需要注意的是,編譯apache時(shí)候必須加入了DSO支持,如果沒有,請(qǐng)加入 --enable-module=so 選項(xiàng)重新編譯apache
- # tar -xzpvf apache_1.3.28.tar.gz
- # cd apache_1.3.28/
- # ./configure --prefix=/usr/local/terry_yu/apache --enable-module=most
- --enable-shared=max
- # make
- # make install
察看編譯進(jìn)apache的模塊:
- #/usr/local/terry_yu/apache/bin/httpd -l
- Compiled-in modules:
- http_core.c
- mod_so.c
看到以上的信息表明apache支持DSO方式了。這樣就可以用DSO的方式把php和resin的模塊加進(jìn)來。
五、安裝PHP
安裝PHP比較簡單,我們先裝PHP。
- # tar -xzpvf php-4.3.3.tar.gz
- # cd php-4.3.3/
- # ./configure --with-mysql=/usr/local/terry_yu/mysql
- --with-apxs=/usr/local/terry_yu/apache/bin/apxs
- # make
- # make install
- # cp php.ini-dist /usr/local/lib/php.ini
編輯PHP的配置文件是/usr/local/lib/php.ini,將其中的register_globals變量修改成On,默認(rèn)是Off的。需要將它改成On。否則會(huì)出現(xiàn)php不能直接讀不到post或get的數(shù)據(jù)的現(xiàn)象。
編輯Apache的配置文件/usr/local/terry_yu/apache/conf/httpd.conf,在文件結(jié)尾加上以下一行:
AddType application/x-httpd-php .php .php3
啟動(dòng)apache:
# /usr/local/terry_yu/apache/bin/apachectl start
然后可以用一個(gè)簡單的php文件來測試PHP的安裝,這個(gè)簡單的PHP文件包含下列一行:
- phpinfo();?>
將其保存為/usr/local/terry_yu/apache/htdocs/info.php,然后在瀏覽器中瀏覽,如果觀看到以顯示有“PHP Version4.3.3”標(biāo)題的頁面就表示整合PHP與Apache成功了。而且在這個(gè)頁面中可以看到與PHP相關(guān)的選項(xiàng),其中應(yīng)該有關(guān)于MySQL的子項(xiàng),這表明PHP已經(jīng)內(nèi)置了對(duì)MySQL的支持了。這樣就表示PHP MySQL Apache的環(huán)境已經(jīng)成功了,接下來是安裝Resin來支持JSP環(huán)境。
六.安裝Resin
http://www.caucho.com/download/resin-3.0.3.tar.gz
(7296篇文章)FTP服務(wù)器
(8638篇文章)雙核服務(wù)器技術(shù)
(10077篇文章)網(wǎng)站服務(wù)器的選型
(7743篇文章)網(wǎng)吧流媒體服務(wù)器
(6817篇文章)刀片服務(wù)器專題
下載的resin的安裝包解開后應(yīng)該可以直接單獨(dú)運(yùn)行的。筆者將其解開后放到/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
啟動(dòng)resin
# /usr/local/terry_yu/resin/bin/httpd.sh start
如果之前安裝JDK時(shí)設(shè)置好了相關(guān)的環(huán)境變量,就能夠從http://localhost:8080/上能看到resin的頁面,這也就表示單獨(dú)的resin運(yùn)行成功了。然后,為了整合resin和apache,我們需要重新編譯一下,以生成mod_caucho給Apache調(diào)用。
- # cd /usr/local/terry_yu/resin
- # ./configure --with-apache=/usr/local/terry_yu/apache
- # make
- # make install
- <resin xmlns=http://caucho.com/ns/resin>
- <server>
- <host id="">
- <document-directory>/usr/local/terry_yu/apache/htdocsdocument-directory> ##這里修改成/usr/local/terry_yu/apache/htdocs
- ...
- host>
- server>
- resin>
修改/usr/local/terry_yu/apache/conf/httpd.conf,在編譯resin時(shí),安裝程序已經(jīng)修改過httpd.conf,不過還不完全正確,應(yīng)該改成類似以下的配置,如果你完全按本文進(jìn)行的安裝可以直接復(fù)制這些內(nèi)容:
- LoadModule caucho_module libexec/mod_caucho.so
- AddModule mod_caucho.c
- <IfModule mod_caucho.c>
- ResinConfigServer localhost 6802
- <Location /caucho-status>
- SetHandler caucho-status
- Location>
- IfModule>
修改完后,重新啟動(dòng)resin后生效:
- /usr/local/terry_yu/resin/bin/httpd.sh restart
- /usr/local/terry_yu/apache/bin/apachectl restart
通過瀏覽器去訪問http://localhost/caucho-status/,如果出現(xiàn)以下頁面剛表示resin和apache已經(jīng)成功整合了。
然后再測試一下JSP對(duì)數(shù)據(jù)庫的訪問,在/usr/local/apache/htdocs/下面用jsp寫一個(gè)簡單的jsp文件來連接本機(jī)的MySQL數(shù)據(jù)庫:
vi /usr/local/terry_yu/apache/htdocs/testdb.jsp
輸入以下內(nèi)容,可以直接粘貼:
- <html>
- <head>
- <title>Test JDBC For MySQLtitle>
- head>
- <body>
- <%@ page contentType="text/html;charset=gb2312" %>
- <%
- Class.forName("com.mysql.jdbc.Driver").newInstance();
- java.sql.Connection conn;
- conn =
- java.sql.DriverManager.getConnection("jdbc:mysql://localhost/mysql?user=root&password=abcdefg");
- %>
- body>
- html>
通過瀏覽器去訪問http://localhost/testdb,如果看到了一個(gè)沒有任何錯(cuò)誤信息的空白頁面,就表示jsp連接本機(jī)的MySQL數(shù)據(jù)庫成功了,至此我們就完成了一個(gè)支持JSP PHP MySQL的Web服務(wù)器。
注:以上所有安裝都是在Red Hat Linux9.0上完成的,所使用軟件也均為目前(2003年9月)最新的版本。
本文介紹了如何在Linux上架設(shè)同時(shí)支持JSP和PHP的Web Server,演示了MySQL、JDK、JDBC、Apache、PHP、Resin的安裝和簡單測試過程。
【編輯推薦】