linux(rhas4)下安裝 jdk + tomcat + apache + mysql + jk 詳細過程

 

 

linux(rhas4)下安裝 jdk + tomcat + apache + mysql + jk 詳細過程

安裝前:
安裝操作系統時不要使用默認安裝,要用定製安裝。
磁盤分區時,設置交換分區大小爲內存的兩倍或兩倍以上。剩餘空間都掛在根目錄上。
網卡的 ip 地址使用手工設置,不要使用通過 DHCP 自動獲取。
啓用防火牆,並設置允許“遠程登錄(ssh)”,“萬維網服務器(http、https)”
安裝包使用定製安裝,取消安裝萬維網服務器、Windows 文件服務器等。
並選擇安裝“開發工具”
如果在舊系統上安裝的話,請先卸載調 apache、mysql、tomcat 等(維護的例外)。
安裝好後,系統默認啓動是啓動圖形模式(模式5)。
打開 /etc/inittab,修改它使系統啓動時默認進入多用戶網絡模式:模式3
找到:
id:5:initdefault:
改爲:
id:3:initdefault:
保存退出,重啓。

1、安裝 jdk
下載 j2sdk(j2sdk-1_4_2_13-linux-i586-rpm.bin) 到 /usr/local 下並開始安裝:
cd /usr/local
chmod a+x j2sdk-1_4_2_13-linux-i586-rpm.bin
./j2sdk-1_4_2_13-linux-i586-rpm.bin
rpm -ivh j2sdk-1_4_2_13-linux-i586.rpm
cd /usr
ln -s /usr/java/j2sdk1.4.2_13/ jdk

2、安裝 Apache
下載 httpd-2.2.3.tar.gz 到目錄:/usr/local/src 下
cd /usr/local/src
tar -zxvf httpd-2.2.3.tar.gz
cd httpd-2.2.3
./configure --prefix=/usr/local/apache --enable-shared=max --enable-module=most --enable-so
make
make install
cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
vi /etc/rc.d/init.d/httpd

修改文件,在文件中'#!/bin/sh'後面加入下面兩條規則:

#!/bin/sh
#
# chkconfig: 2345 85 15
# description: Apache is a World Wide Web Server
#

使用chkconfig命令把apachectl命令加入到系統啓動隊列中:
chkconfig --add httpd
查看apachectl的狀態:
chkconfig --list httpd


備註:prefix定義apache的安裝路徑


3、安裝 tomcat
下載 jakarta-tomcat-5.0.28.tar.gz 到目錄:/usr/local/ 下
cd /usr/local/
tar -zxvf jakarta-tomcat-5.0.28.tar.gz
ln -s /usr/local/jakarta-tomcat-5.0.28 /usr/local/tomcat
vi /usr/local/tomcat/bin/catalina.sh

在第一節後、第二節前,即:# OS specific support 前輸入:
export JAVA_HOME=/usr/jdk
export CATALINA_BASE=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
echo "Using JAVA_OPTS:       $JAVA_OPTS"

保存退出。

備註:以上兩節內容,第一節是指定 jdk 相關內容,第二節是應用系統的圖片驗證碼生成程序要用,如果你沒有使用到需要生成圖片的程序,可以不加第二節內容。

繼續把 tomcat 加入到系統自動啓動隊列中:
cd /etc/rc.d/init.d/
vi tomcat

在裏面輸入如下內容:

#!/bin/sh
#
# tomcat:       Start/Stop/Restart tomcat
#
# chkconfig: 2345 80 20
# description: Tomcat is a Java Servlet Container
#
#

# Source function library.
. /etc/rc.d/init.d/functions

TOMCAT=/usr/local/tomcat

start() {
    echo -n $"Starting Tomcat: "
    $TOMCAT/bin/startup.sh
}

stop() {
    echo -n $"Stopping Tomcat: "
    $TOMCAT/bin/shutdown.sh
}

# See how we were called.
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        ;;
    status)
        ;;
    restart)
        stop
        start
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart}"
        ;;
esac
exit $RETVAL

把 tomcat 修改爲可運行的文件
chmod a+x tomcat
使用chkconfig命令把 tomcat 命令加入到系統啓動隊列中:
chkconfig --add tomcat
查看apachectl的狀態:
chkconfig --list tomcat

4、安裝 mysql
下載 mysql-standard-5.0.27-linux-i686-glibc23.tar.gz 到目錄:/usr/local/ 下
cd /usr/local/
tar -zxvf mysql-standard-5.0.27-linux-i686-glibc23.tar.gz
cd mysql-standard-5.0.27-linux-i686-glibc23

groupadd mysql
useradd -g mysql mysql

ln -s /usr/local/mysql-standard-5.0.27-linux-i686-glibc23 /usr/local/mysql
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
bin/mysqld_safe --user=mysql &

這時再敲入回車,mysql 現在已經啓動了

繼續配置 mysql,使其在系統啓動時自動啓動:
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld

查看apachectl的狀態:
chkconfig --list mysqld
重新啓動 mysql:
service mysqld restart

5、安裝 apache 和 tomcat 的連接器 jk
網上Tomcat Connector資料的混亂實際源出開發上的混亂,JK2本來是JK的升級版本,而現在又被打成了deprecated,所以還是要用JK。網上JK2的配置方案現在已經沒有參考價值,然而剛接觸這個問題很容易產生應該用JK2而不是JK這種先入爲主的印象。另外官方文檔中有Using Tomcat auto-configure這樣一種方法,但沒有給出一個完整的操作過程,建議不要使用它。自2004年3月後,jk2 就已經不再更新,apache 官方建議不要使用jk2,而且 jk2 配置方法也不好理解,方法也與 jk 不一樣,所以建議使用 jk。

在安裝 jk 前必須注意的是,要先安裝 libtool,否則安裝時會出錯,而且看起來原因不明。
到:http://www.gnu.org/software/libtool/libtool.html 下載:
http://ftp.gnu.org/gnu/libtool/libtool-1.5.22.tar.gz

把文件下載到:/usr/local/src
輸入命令:
tar zxf libtool-1.5.22.tar.gz
cd libtool-1.5.22
./configure
make
make install

更新 apache 下的 libtool:
cd /usr/local/apache/build/
mv libtool libtool.old
      (改名備份原來的文件,apache 自帶的 libtool 版本不適合安裝 jk)
ln -s /usr/local/bin/libtool libtool

下載 tomcat-connectors-1.2.20-src.tar.gz 到目錄:/usr/local/src 下
cd /usr/local/src
tar -zxvf tomcat-connectors-1.2.20-src.tar.gz
cd tomcat-connectors-1.2.20-src/native
./buildconf.sh
./configure --with-apxs=/usr/local/apache/bin/apxs
make
make install

至此,jk 安裝成功。

如果你安裝時安裝到 make/make install 出錯後才發現沒有更新 libtool 的話,那你在安裝好 libtool 後必須先到 tomcat 連接器的目錄 native 下,先運行 make clean 後(或直接刪除掉解壓後的 tomcat 連接器目錄再重新解壓安裝),再重新執行上面的最後四步,即從 buildconf.sh 開始,否則還會出現和第一次安裝時產生的錯誤一樣錯誤。

如果一定要安裝 jk2 的話,那在安裝 jk2 前必須先安裝好 libapr 和 libaprutil,安裝過程如下:
http://apr.apache.org/download.cgi 下載:
apr-util-1.2.8.tar.gz 和 apr-1.2.8.tar.gz
安裝:
tar zxvf apr-1.2.8.tar.gz
cd apr-1.2.8
./configure
make
make install
tar zxvf apr-util-1.2.8.tar.gz
cd apr-util-1.2.8
./configure --with-apr=../apr-1.2.8
make
make install

cd /usr/local/apache/lib
ln -s /usr/local/apr/lib/libapr-1.so.0.2.8 libapr-1.so
ln -s /usr/local/apr/lib/libapr-1.so.0.2.8 libapr-1.so.0
ln -s /usr/local/apr/lib/libaprutil-1.so.0.2.8 libaprutil-1.so
ln -s /usr/local/apr/lib/libaprutil-1.so.0.2.8 libaprutil-1.so.0

除了安裝好這兩個軟件包外,當然也要安裝 libtool(安裝 libtool 過程參考在上面的介紹)。然後才能開始安裝 jk2 :
tar zxf jakarta-tomcat-connectors-jk2-src-current.tar.gz
cd jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/
./configure --with-apxs2=/usr/local/apache/bin/apxs --with-tomcat=/usr/local/tomcat
make
make install

cd ../build/jk2/apache2/
/usr/local/apache/bin/apxs -n jk2 -i mod_jk2.so

上條命令是將 mod_jk2.so 添加到 apache2 的 modules 中.

同樣,如果是安裝到中途出錯後纔回來重新安裝 libtool 的話,那安裝完 libtool 後必須先清理剛纔安裝過程中產生的文件,或者乾脆直接把解壓後的連接器的目錄刪除,再重新解壓安裝即可成功。
注意,安裝 jk 和 jk2 的 configure 命令是不一樣的。如果用安裝 jk2 的 configure 方法來安裝 jk ,會出現錯誤!

好了,到這裏爲止,所有要安裝的軟件都已經安裝完成,下面開始配置這些軟件使它們協同工作。

1、配置 MySQL:
我們要修改 mysql 的 root 的密碼:
./bin/mysqladmin -u root password new-password

如果root已經設置有密碼了,可以通過這樣修改:

./bin/mysqladmin -u root -p password new-password

輸入上面這個命令後,系統提示你輸入舊密碼,輸入正確的舊密碼後,新密碼就起作用了。

進入 mysql 中繼續修改另一個 root 的密碼,同時刪除匿名用戶訪問 mysql:
./bin/mysql -u root -p
輸入密碼即可進入 mysql 中。
在 mysql 裏,輸入命令:
mysql> use mysql
mysql> update user set password = password('new-password') where user='root' and host='linux-name';
(注:這句中的 new-password 是你要設置的新密碼,而 linux-name 是你的 linux 服務器的名字。如果你不知道你的 linux 服務器的名字,通過 select * from user 這個 sql 語句,就可以看見對應於 host 字段裏顯示的名字。host 顯示有兩個不同的值,一個是 localhost,另一個是你的 linux 服務器名。)
mysql> delete from user where user='';
(刪除掉匿名用戶)
mysql> flush privileges;
(注:使剛纔的修改馬上生效。)
mysql> quit
(注:退出 mysql)

2、配置 Tomcat:
主要是把 tomcat 的系統配置管理模塊(jmx)增加、修改好:
cd /usr/local/tomcat/conf
vi tomcat-users.xml

在倒數第二行前加上:
<user password="password" roles="admin,manager" />

保存退出。
注意:這個登錄名和密碼必須保密,儘量使用較安全的用戶名不密碼,防止被別人猜到。
通過這樣配置後,以後就可以通過這些配置來安裝你的應用程序,很方便。

再配置 tomcat 禁止目錄瀏覽:
vi web.xml
找到:
        <init-param>
            <param-name>listings</param-name>
            <param-value>true</param-value>
        </init-param>

把裏面的 true 改成 false ,保存退出。

3、配置 apache:
cd /usr/local/apache/conf/
vi httpd.conf

找到 #ServerName www.example.com:80 這行,在這行的後面加上:
#這行是服務器的名字,是必須有的,否則無法訪問(改成您的域名)。
ServerName www.mydomain.com:80

再找到: DocumentRoot "/usr/local/apache/htdocs" 這行,把引號內的內容改爲指向自己服務器的根目錄

找到 ServerAdmin ,在這後面加上如果系統出錯,顯示可以聯繫的 email 地址。

找到 DirectoryIndex ,在其後面加上其它的默認目錄文件,如 index.htm index.jsp 等

在文件的最後加上:

#以下兩節是禁止訪問目錄:/WEB-INF/ 和 /META-INF/
#這兩個目錄都用於存放放 java 配置文件
<Directory ~ "/WEB-INF/">
     Order deny,allow
     Deny from all
</Directory>

<Directory ~ "/META-INF/">
     Order deny,allow
     Deny from all
</Directory>

#以下這行是讓 apache 加入能解釋 jsp 文件的模塊
# Load mod_jk

LoadModule jk_module modules/mod_jk.so

# Configure mod_jk

JkWorkersFile conf/workers.properties

JkLogFile logs/mod_jk.log

JkLogLevel info

JkMount /*.jsp worker2
JkMount /*.do worker2
#下面兩行定義了管理員管理 tomcat 的應用(tomcat 自帶的 jmx)
JkMount /admin/* worker2
JkMount /manager/* worker2

#如果你的應用程序不在上面定義的網站根目錄下,則需要添加目錄別名
Alias /myapp "/home/app1"
<Directory "/home/app1">
    Options FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

#下面兩節定義了管理員管理 tomcat 的應用(tomcat 自帶的 jmx)
Alias /admin "/usr/local/tomcat/server/webapps/admin"
<Directory "/usr/local/tomcat/server/webapps/admin">
    Options FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Alias /manager "/usr/local/tomcat/server/webapps/manager"
<Directory "/usr/local/tomcat/server/webapps/manager">
    Options FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

保存退出。
添加一個 workers.properties :
vi workers.properties
在這個文件裏添加如下內容:
# Define 1 real worker using ajp13
worker.list=worker2
# Set properties for worker1 (ajp13)
worker.worker2.type=ajp13
worker.worker2.host=localhost
worker.worker2.port=8009
worker.worker2.socket_keepalive=True

這部分內容用於只有一臺 tomcat 機器來提供 java 服務的情況。如果要配置多臺來提供 java 的服務,可以參考其它的文章。

這裏的配置文件適用於 jk,而不能用於 jk2。如果把上面的配置,包括 httpd.conf 和 workers.properties 用在 jk2 時,會出錯,系統無法正常工作。要看 jk2 的配置方法,請參考其它文檔。

這時,所有的配置工作都完成了,現在可以啓動服務器來測試一下剛纔的應用了。
輸入命令啓動各個服務器:
service mysqld start
service tomcat start
service httpd start

然後通過瀏覽器訪問:
http://www.mydomain.com/
這時會出來一個頁面,上面寫着:It works!
訪問:
http://www.mydomain.com/admin/
會出來 tomcat 提供的 jmx 登錄界面。
訪問:
http://www.mydomain.com/myapp/
會出來您部署的應用程序。如果出不來,有可能要修改一下應用程序的目錄權限。如把 /home/myapp 的目錄權限設爲 711。

如果不能出來以上的頁面,請回去仔細檢查看是什麼地方沒有配置好。

我的操作系統是: redhat linux enterprise advance server 4,文中紫色文字請根據你的具體設置來修改。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章