在Linux上架設支援JSP+PHP的Web伺服器

來源:互聯網
上載者:User
js|web|web服務|web伺服器 近年來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

  http://apache.linuxforum.net/dist/httpd/apache_1.3.28.tar.gz

  需要注意的是,編譯apache時候必須加入了DSO支援,如果沒有,請加入 --enable-module=so 選項重新編譯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

  察看編譯進apache的模組:

  #/usr/local/terry_yu/apache/bin/httpd -l
  Compiled-in modules:
  http_core.c
  mod_so.c

  看到以上的資訊表明apache支援DSO方式了。這樣就可以用DSO的方式把php和resin的模組加進來。

  五、安裝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,預設是Off的。需要將它改成On。否則會出現php不能直接讀不到post或get的資料的現象。

  編輯Apache的設定檔/usr/local/terry_yu/apache/conf/httpd.conf,在檔案結尾加上以下一行:

  AddType application/x-httpd-php .php .php3

  啟動apache:

  # /usr/local/terry_yu/apache/bin/apachectl start

  然後可以用一個簡單的php檔案來測試PHP的安裝,這個簡單的PHP檔案包含下列一行:

  <? phpinfo();?>

  將其儲存為/usr/local/terry_yu/apache/htdocs/info.php,然後在瀏覽器中瀏覽,如果觀看到以顯示有“PHP Version4.3.3”標題的頁面就表示整合PHP與Apache成功了。而且在這個頁面中可以看到與PHP相關的選項,其中應該有關於MySQL的子項,這表明PHP已經內建了對MySQL的支援了。這樣就表示PHP+MySQL+Apache的環境已經成功了,接下來是安裝Resin來支援JSP環境。

  六.安裝Resin

  http://www.caucho.com/download/resin-3.0.3.tar.gz

  下載的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版本不同,設定檔的內容可能有所不同),將<document-directory>修改成自己的apache的DocumentRoot的值。

  <resin xmlns=http://caucho.com/ns/resin>
   <server>
    <host id="">

  <document-directory>/usr/local/terry_yu/apache/htdocs</document-directory> ##這裡修改成/usr/local/terry_yu/apache/htdocs

     ...
    </host>
   </server>
  </resin>

  修改/usr/local/terry_yu/apache/conf/httpd.conf,在編譯resin時,安裝程式已經修改過httpd.conf,不過還不完全正確,應該改成類似以下的配置,如果你完全按本文進行的安裝可以直接複製這些內容:

  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>
  修改完後,重新啟動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

  輸入以下內容,可以直接粘貼:

  <html>
  <head>
  <title>Test JDBC For MySQL</title>
  </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,如果看到了一個沒有任何錯誤資訊的空白頁面,就表示jsp串連原生MySQL資料庫成功了,至此我們就完成了一個支援JSP+PHP+MySQL的Web伺服器。

  註:以上所有安裝都是在Red Hat Linux9.0上完成的,所使用軟體也均為目前(2003年9月)最新的版本。

  本文介紹了如何在Linux上架設同時支援JSP和PHP的Web Server,示範了MySQL、JDK、JDBC、Apache、PHP、Resin的安裝和簡單測試過程。


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.