Java+PHP+MySQL+PostgreSQL+Apache 完整安裝心得
這篇文章我已經發表很久了,還曾經被收錄到Linuxfab的精華區中,
我查了紀錄,每個月大約都還有50人次在查閱這篇文章,所以就將這篇文章移轉過來


Source code 名稱 版本 下載位址
1. J2SDK
1.4.0 beta2 http://java.sun.com/j2se/1.4/
2. JSDK
2.0 http://java.sun.com/products/servlet/download.html
3. OpenSSL
0.9.6b http://www.openssl.org/source/
4. mm
1.1.3 http://www.engelschall.com/sw/mm/
5. mod_ssl
1.3.22 http://www.modssl.org/source/
6. mod_perl
1.26 http://perl.apache.org/dist/
7. Apche
1.3.22 http://www.apache.org/dist/
8. imap
2001a ftp://ftp.cac.washington.edu/imap/imap-2001a.RELEASE-CANDIDATE.2.tar.Z
9. MySQL
3.22.43 http://www.mysql.com/downloads/
10. PostgreSQL
7.1.3 ftp://ftp.postgresql.org/pub/
11. pdflib
4.0.1 http://www.pdflib.com/pdflib/download/index.html
12. freetype
2.0.5 http://prdownloads.sourceforge.net/freetype/
13. gd
2.0.1 http://www.boutell.com/gd/http/
14. curl
7.9 http://curl.haxx.se/download.html
15. zlib
1.1.3 http://www.gzip.org/zlib/
16. php
4.0.6 http://www.php.net/downloads.php
17. JAXP
1.0.1 http://java.sun.com/xml/archive.html
18. JSSE
1.0.2 http://java.sun.com/products/jsse/index-102.html
19. Tomcat
4.0 http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0/
20. Tomcat (src)
3.2.3(src) http://jakarta.apache.org/builds/jakarta-tomcat/release/v3.2.3/src/
21. Tomcat (bin)
3.2.3(bin) http://jakarta.apache.org/builds/jakarta-tomcat/release/v3.2.3/bin/


@@ 我把所有的source code 都放在 /usr/local/src 這個目錄下

@@ 我使用的 Linux 是 MDK8.1

@@ 安裝前請先更新 libc 到 5.0 的版本...不然在編mod_ssl時候會有問題

1. J2SDK 1.4.0 beta2 and JSDK2.0

 1-1 cp j2sdk-1_4_0-beta2-linux-i386.bin /usr/local/

 1-2 chmod 777 j2sdk-1_4_0-beta2-linux-i386.bin

 1-3 ./j2sdk-1_4_0-beta2-linux-i386.bin

 1-4 按空白鍵,最後輸入Yes

 1-5 mv j2sdk-1_4_0/ j2sdk/

 1-6 cp jsdk20-solaris2-sparc[1].tar.Z /usr/local

 1-7 tar -zxvf jsdk20-solaris2-sparc[1].tar.Z

 1-8 cd /root

 1-9 vi .bashrc

 1-10 加上這幾行

  1-10-1 JAVA_HOME=/usr/local/j2sdk

  1-10-2 PATH=$JAVA_HOME:$JAVA_HOME/bin

  1-10-3 CLASSPATH=/usr/local/j2sdk/lib/tools.jar:/usr/local/JSDK2.0/lib/jsdk.jar:$HOME/java-class

  1-10-4 export JAVA_HOME CLASSPATH

 1-11 rm -rf j2sdk-1_4_0-beta2-linux-i386.bin --> 如果你要節省空間才需要作

 1-12 rm -rf jsdk20-solaris2-sparc[1].tar.Z --> 如果你要節省空間才需要作

  ** 如果你想所有的使用者都可以使用java , 請繼續作下面部分 **

 1-13 cd /etc

 1-14 vi profile

 1-15 add follow lines

  1-15-1 JAVA_HOME=/usr/local/j2sdk

  1-15-2 PATH=$JAVA_HOME:$JAVA_HOME/bin

  1-15-3 CLASSPATH=/usr/local/j2sdk/lib/tools.jar:/usr/local/JSDK2.0/lib/jsdk.jar:$HOME/java-class

  1-15-4 export JAVA_HOME CLASSPATH

  ** ps. 我設定 $HOME/java-class 讓所有使用者的java class都必須放在java-class這個資料夾才可以使用

 1-16 test

  1-16-1 which javait 會顯示 /usr/local/j2sdk/bin/java

  1-16-2 Hello Java World

   1-16-2-1 用 vi 或其他你習慣的編輯器編輯下面這段測試用程式碼

     class HelloJavaWorld

     {

      public static void main(String[] args)

      {

       System.out.println("Hello Java World!");

      }

     }

   1-16-2-2 javac HelloJavaWorld系統會產生一個叫 HelloJavaWorld.class 的檔案

   1-16-2-3 java HelloJavaWorld當你看到 > Hello Java World! 就代表你之前的安裝都已經成功了


--------------------------------------------------------------------------------

2 OpenSSL

 2-1 tar -zxvf openssl-0.9.6b.tar.gz

 2-2 cd openssl-0.9.6b

 2-3 ./config --prefix=/usr/local/openssl

 2-4 make

 2-5 make test2-6 make install


--------------------------------------------------------------------------------

3 mm

 3-1 tar -zxvf mm-1.1.3.tar.gz

 3-2 cd mm-1.1.3

 3-3 ./configure --prefix=/usr/local/lib/mm

 3-4 make

 3-5 make test

 3-6 make install

 3-7 cd /etc

 3-8 vi ld.so.conf and add /usr/local/lib/mm/lib

 3-9 cd /sbin 3-10 ./ldconfing


--------------------------------------------------------------------------------

4 mod_ssl

 4-1 tar -zxvf apache_1.3.22.tar.gz

 4-2 tar -zxvf mod_ssl-2.8.5-1.3.22.tar.gz

 4-3 cd mod_ssl-2.8.5-1.3.22

 4-4 ./configure --with-apache=/usr/local/apache_1.3.22 --with-ssl=/usr/local/openssl --enable-shared=ssl --with-mm=/usr/local/lib/mm/lib


--------------------------------------------------------------------------------

5 mod_perl

 5-1 tar -zxvf mod_perl-1.26.tar.gz

 5-2 cd mod_perl-1.26

 5-3 perl Makefile.PL EVERYTHING=1 APACHE_SRC=../apache_1.3.22/src USE_APACI=1 PREP_HTTPD=1 DO_HTTPD=1

 5-4 make

 5-5 make install


--------------------------------------------------------------------------------

6 Apache

 6-1 cd apache-1.3.22

 6-2 EAPI_MM="/usr/local/lib/mm" SSL_BASE="/usr/local/openssl" ./configure --prefix=/usr/local/apache
   --enable-module=unique_id --enable-module=rewrite --enable-module=speling --enable-module=expires
   --enable-module=info --enable-module=log_agent --enable-module=log_referer --enable-module=usertrack
   --enable-module=proxy --enable-module=userdir --enable-module=so --enable-module=most --enable-shared=max
   --enable-shared=ssl --enable-module=ssl --activate-module=src/modules/perl/libperl.a --enable-module=perl

 6-3 make

 6-4 make certificate TYPE=dummy --> 測試用途

   make certificate TYPE=custom --> 正式用途,你必須回答許多問題

 6-5 make install

 6-6 /usr/local/apache/bin

 6-7 ./apachect1 startssl --> start with ssl./apachect1 start --> start without ssl

 6-8 開啟你的瀏覽器

 6-9 http://localhost/ --> 不論你使用 apachectl start 或 apachectl startssl 啟動 apache 都可以看到這個網頁

 6-10 https://localhost --> 只有使用 apachectl startssl 啟動 apache 才會看到這個頁面

 6-11 測試cgi

 6-12 cd ../

 6-13 chmod +x cgi-bin/*

 6-14 http://localhost/cgi-bin/testcgi

 6-15 http://localhost/cgi-bin/printenv


--------------------------------------------------------------------------------

7 imap c-client

 7-1 tar -zxvf imap-2001a.RELEASE-CANDIDATE.2.tar.Z

 7-2 mv imap-2001a.RELEASE-CANDIDATE.2 imap

 7-3 cd imap

 7-4 make slx


--------------------------------------------------------------------------------

8 MySQL

 8-1 tar -zxvf mysql-3.23.43.tar.gz

 8-2 cd mysql-3.23.43

 8-3 ./configure --prefix=/usr/local/mysql --with-charset=big5

 8-4 make

 8-5 make install

 8-6 cd /etc

 8-7 vi ld.so.conf 然後加上 /usr/local/mysql/lib/mysql

 8-8 cd /sbin

 8-9 ./ldconfig

 8-10 adduser mysql

 8-11 cd /etc

 8-12 vi passwd

 8-13 找出 /home/mysql 並且把他改成 /usr/local/mysql/lib/mysql

 8-14 cd /usr/local/

 8-15 chown -R mysql:mysql mysql/

 8-16 cd mysql/bin

 8-17 ./mysql_install_db

 8-18 cd ../share/mysql

 8-19 ./mysql.server start

 8-20 測試 --> ps -ax 你會看到下面的資訊
    2391 ? S 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/
    2393 ? S 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/
    2394 ? S 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/



--------------------------------------------------------------------------------

9 PostgreSQL

 9-1 tar -zxvf postgresql-7.1.3.tar.gz

 9-2 cd postgresql-7.1.3

 9-3 ./configure --prefix=/usr/local/pgsql --with-perl --with-odbc --enable-multibyte=MULE_INTERNAL

 9-4 gmake

 9-5 gmake install

 9-6 adduser postgres

 9-7 cd /etc

 9-8 編輯 ld.so.conf 加入 /usr/local/pgsql/lib

 9-9 cd /sbin

 9-10 ./ldconfig

 9-11 cd /etc

 9-12 vi passwd

 9-13 找出 /var/lib/pgsql 改成 /usr/local/pgsql

 9-14 su - postgres

 9-15 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

 9-16 /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &

 9-17 /usr/local/pgsql/bin/createdb test

 9-18 /usr/local/pgsql/bin/psql test

 9-19 測試 -->ps -ax你會看到下面的資訊
    2597 ? S 0:00 /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/d


--------------------------------------------------------------------------------

10 pdflib

 10-1 tar -zxvf pdflib-4.0.1.tar.gz

 10-2 cd pdflib-4.0.1

 10-3 ./configure --prefix=/usr/local/lib/pdf --enable-shared-pdflib --enable-cxx

 10-4 make

 10-5 make install

 10-6 cd /etc

 10-7 編輯 ld.so.conf

 10-8 加入 /usr/local/lib/pdf/lib

 10-9 cd /sbin

 10-10 ./ldconfig


--------------------------------------------------------------------------------

11 freetype

 11-1 tar -zxvf freetype-2.0.5.tar.gz

 11-2 cd freetype-2.0.5

 11-3 make setup CFG="--prefix=/usr/local"

 11-4 make

 11-5 make install


--------------------------------------------------------------------------------

12 gd (我發現 GD-1.8.x 似乎不支援 TrueType version 2 , 所以我安裝 2.0.1)

 12-1 tar -zxvf gd-2.0.1.tar.gz

 12-2 cd gd-2.0.1

 12-3 輸入 freetype-config --cflags 系統會告訴你的freetype lib 裝在哪裡,我的是裝在-I/usr/local/include/freetype2

   @@ 如果你的系統找不到freetype-config這個指令你可以到 cd /usr/bin下執行 ./freetype-config --cflags

 12-4 vi Makefile 找出 INCLUDEDIRS=-I. -I/usr/include/freetype2

   把他改成 INCLUDEDIRS=-I. -I/usr/local/include/freetype2

   @@ 後面那段必須輸入和你剛剛找到的路徑一樣

 12-5 make

 12-6 make install

 12-7 make libgd.a


--------------------------------------------------------------------------------

13 curl1

 13-1 tar -zxvf curl-7.9.tar.gz

 13-2 cd curl-7.9

 13-3 ./configure --prefix=/usr/local/lib

 13-4 make

 13-5 make install


--------------------------------------------------------------------------------

14 zlib

 14-1 tar -zxvf zlib-1.1.3.tar.gz1

 14-2 cd zlib-1.1.3

 14-3 ./configure -s

 14-4 make install


--------------------------------------------------------------------------------

15 php

 15-1 tar -zxvf php-4.0.6.tar.gz

 15-2 cd php-4.0.6

 15-3 ./configure --prefix=/usr/local/php --with-apxs=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql
   --with-pgsql=/usr/local/pgsql --enable-track-vars --enable-trans-sid --enable-safe-mode --enable-versioning
   --enable-ftp --disable-debug --with-ttf --with-xml --with-imap=../imap --with-pdflib=/usr/local
   --with-openssl=/usr/local/openssl --with-mm=/usr/local/lib/mm --with-gd --enable-gd-native-tt --with-freetype-dir
   --with-png-dir --with-jpeg-dir --with-zlib-dir --with-curl

 15-4 make

 15-5 make install

 15-6 cp /usr/local/php-4.0.6/php.ini-dist /usr/local/lib/php.ini

 15-7 cd /usr/local/apache/conf 我們需要編輯下面這幾行

  15-7-1 找出這段
     
      LoadModule ssl_module libexec/libssl.so
      LoadModule php4_module libexec/libphp4.so
     


    把他改成
     
      LoadModule ssl_module libexec/libssl.so
     

      LoadModule php4_module libexec/libphp4.so

  15-7-2 找出這段 DirectoryIndex index.html

     把他改成 DirectoryIndex index.php index.php3 index.htm index.html

  15-7-3 找出這段
      #AddType application/x-httpd-php .php
      #AddType application/x-httpd-php-source .phps

     把他改成
      AddType application/x-httpd-php .php .php3 .phtml
      AddType application/x-httpd-php-source .phps

 15-8 restart apachecd ../bin./apachectl restart

 15-9 edit a phpinfo pagecd ../htdocs編輯一個檔案 info.php 內容 --> < ?php phpinfo(); ?>

 15-10 測試 http://localhost/info.php or https://localhost/info.php
    如果你可以看到 php 的相關資訊 , 那你就完成了剛剛的東西了 ^_^


--------------------------------------------------------------------------------

@@ 下面我們要開始安裝 Tomcat 囉,我把相關的東西都準備安裝在/usr/local/jakarta 這個目錄底下所以我們要先做幾件事情

 M1 cd /usr/local

  M1-1 mkdir jakarta

  M1-2 cd /root

  M1-3 vi .bashrc

   要加幾行東西喔...

    1.JAKARTA_HOME=/usr/local/jakarta

    2.TOMCAT_HOME=$JAKARTA_HOME/tomcat

    3.export JAKARTA_HOME TOMCAT_HOME

@@ 所以現在我們的 /root/.bashrc 和 /etc/profile應該要有下面這些資訊(我有稍微整理過一下^_^)

  JAVA_HOME=/usr/local/j2sdk

  JAKARTA_HOME=/usr/local/jakarta

  TOMCAT_HOME=$JAKARTA_HOME/tomcat

  export JAVA_HOME JAKART_HOME TOMCAT_HOME

  PATH=$JAVA_HOME:$JAVA_HOME/binCLASSPATH=$JAVA_HOME/lib/tools.jar:/usr/local/JSDK2.0/lib/jsdk.jar:$HOME/java-class

  export PATH CLASSPATH


--------------------------------------------------------------------------------

16 JAXP : Java XML Parser Library

 16-1 解開檔案

 16-2 mv jaxp1.0.1 jaxp

 16-3 cd /usr/local/jakarta/jaxp

 16-4 cp *.jar $JAVA_HOME/jre/lib/ext


--------------------------------------------------------------------------------

17 JSSE : Secure Sockets Library

 17-1 解開檔案

 17-2 mv jsse1.0.2 jsse

 17-3 cd jsse

 17-4 cp *.jar $JAVA_HOME/jre/lib/ext

 17-5 測試一下我們的 JAVA 的 SSL 是不是已經安裝完成

  17-5-1 用你習慣的編輯器輸入以下程式碼...檔名叫做TestSSL.java

      import javax.net.ssl.*;

       public class TestSSL

       {

        public static void main(String [] arstring)

        {

          try

          {

           new java.net.URL("https://" + arstring[0] + "/").getContent();

          }

          catch (Exception exception)

          {

           exception.printStackTrace();

          }

        }

       }

  17-5-2 javac TestSSL.java

  17-5-3 接著我們要執行剛剛的java囉...請輸入以下的指令

     [root@demo jsse]# java -Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol TestSSL sourceforge.net

     [root@demo jsse]# echo $?

     0


     [root@demo jsse]#

     這樣就測試ok啦 ^^


--------------------------------------------------------------------------------

@@ 接下來的 Tomcat 你可以依自己的需要安裝3.2.3 或 3.3 或 4.0 的板本

18 Tomcat 4.0

 18-1 tar -zxvf jakarta-tomcat-4.0.tar.gz

 18-2 mv jakarta-tomcat-4.0 tomcat

 18-3 cd tomcat/bin

 18-4 /usr/local/apache/bin/apachectl stop -->如果你的apache原本就是為啟動的狀態,就不需執行此行

 18-5 ./startup.sh

 18-6 /usr/local/apache/bin/apachectl startssl

 18-7 測試一下,用瀏覽器開啟下列網址

  18-7-1 http://localhost/

  18-7-2 https://localhost/

  18-7-3 http://localhost:8080/


--------------------------------------------------------------------------------

19 Tomcat 3.2.3

 19-1 tar -zxvf jakarta-tomcat-3.2.3-src.tar.gz

 19-2 mv jakarta-tomcat-3.2.3-src src-tomcat

 19-3 cd src-tomcat/src/native/apache1.3

 19-4 vi Makefile.linux

  19-4-1 找出 #JAVA_HOME 改成 JAVA_HOME=/usr/local/j2sdk

  19-4-2 找出 APXS=/usr/sbin/apxs改成 APXS=/usr/local/apache/bin/apxs

 19-5 make -f Makefile.linux all

 19-6 cp mod_jk.so /usr/local/apache/libexec

 19-7 tar -zxvf jakarta-tomcat-3.2.3.tar-gz

 19-8 mv jakarta-tomcat-3.2.3 tomcat

 19-9 cd /usr/local/apache/conf

  19-9-1 vi httpd.conf

  19-9-2 在檔案最後加上 Include /usr/local/jakarta/tomcat/conf/mod_jk.conf

 19-10 測試

  19-10-1 cd /usr/local/jakarta/tomcat/bin

  19-10-2 /usr/local/apache/bin/apachectl stop -->如果你的apache原本就是為啟動的狀態,就不需執行此行

  19-10-3 ./startup.sh

  19-10-4 /usr/local/apache/bin/apachectl startssl

  19-10-5 用瀏覽器開啟下列網址

    19-10-5-1 http://localhost/

    19-10-5-2 https://localhost/

    19-10-5-3 http://localhost:8080/


--------------------------------------------------------------------------------

| 後記 |

這是我第一次寫心得分享,因為我對Linux並不是如此熟悉,因此這些東西總共花了我一個多星期.

過程中出現的錯誤訊息,在我的好朋友 darkhero [ darkhero@v-dark.net ] 的協助和我自己努力(^_^)下一一解決了,很謝謝他.

這篇心得分享算是第一步驟,因為現在我正在安裝 Cocoon 和了解 Tomcat 上如何整合 SSL

對於這篇文章如果有任何錯誤與指教請大家不吝指導,

也歡迎到我的網站上大家一起討論 祝大家都能順利安裝成功 ^_^