Linux運行環境大雜配


---在redhat 9 下集成apache+jsp+php+mysql
作者:田逸([email protected]) 發表於《開放系統世界》2005年第9期48頁

幾天前接到一個任務,要求搭建一個既能跑jsp,又能跑php腳本的一個服務器運行環境,而且要求是在同一個目錄下面,就是說在一個目錄裏面有的文件是*.jsp,有的是*.php,有的是*.html。鑑於這樣的需求,其解決方法就是要把jsp和php整合到apache裏,另外加上mysql數據庫。爲了配置這樣一個環境,我花了不少時間,在這個過程中出了不少問題,幸好得到張煒宇的大力幫助,問題才得以順利解決。現在此把這些過程記錄下來,希望能對大家的工作有所幫助。

一、 安裝linux
我在這裏介紹ftp的安裝方式,以這種方式安裝,要比從 cdrom安裝要快一些,也不會出現在安裝過程出現不能讀光盤而無法繼續安裝。①先在一臺windows系統上安裝serv_u類似的ftp服務器軟件,然後指定用戶目錄,並且允許匿名訪問;然後把redhat 9的三張光盤按光盤的根目錄拷貝文件和文件夾到這個用戶目錄,在拷貝第二和第三張光盤是會提示目錄裏有相同的文件夾或文件,問是否覆蓋,回答yes即可。拷貝完成後啓用這個ftp服務器,在瀏覽器裏輸入 ftp://ftp 的ip地址,例如: ftp://192.168.100.100,來驗證ftp服務器配置的正確性。②把光盤放在要安裝系統的服務器的光驅中,讓系統從光盤引導,片刻進入linux安裝嚮導界面。這時輸入命令行 linux askmethod然後回車,下一步….指定本服務器的ip地址(要與ftp服務器在同一個網段)和默認網關,到系統提示選擇安裝方式的時候,選中ftp方式,然後需要指定ftp服務器的ip地址和redhat 9的存放目錄,正確無誤後,安裝往下進行,後面的步驟跟用光盤安裝差不多。建議在安裝時少安裝一些套件(但建議把mysql安裝好),比如httpd不要安裝,安裝完後從網上下載新的版本來使用。花一段時間以後,系統安裝完成。

二、 下載所需的軟件,把下面這些軟件下載到某臺windows系統的機器裏
1、 httpd-2.0.54.tar.gz //apache服務器
2、 php4.3.11.tar.gz //php解釋器
3、 j2sdk-1.4.2-01-linux-i586-rpm.bin //java運行環境
4、 jakarta-tomcat-5.0.28.tar.gz //jsp解釋器
5、 fedora-core-1-i386.tar.gz //apache與tomcat的連接程序,一般的方法是用jakarta-tomcat-connectors-jk2-src-current.tar.gz,但是這個過程十分麻煩,還需依賴另外好幾個包,所以建議使用這個文件.

三、 上傳下載軟件到服務器
在上面的windows 機器上安裝ssh客戶端軟件,我用的是securecrt4.1.5註冊版。用這個軟件來遠程控制linux服務器,非常方便。啓動軟件securecrt,創建一個會話,輸入要連接控制的linux服務器的ip地址,填寫用戶名爲root,輸入linux 服務器的root密碼,片刻就可以連接到linux服務器,然後就像在linux 本機上操作一樣。在linux上創建目錄/tmp/upload用來接收從 windows機器上傳來的文件。用命令 #mkdir /tmp/upload 來創建目錄,然後轉到這個目錄 #cd /tmp/upload ,再使用securecrt自帶的上傳工具傳輸文件到linux服務器的/tmp/upload.上傳文件:點擊securecrt的菜單項“transfer” “zmodem upload list…”,而後出現選擇要傳送文件的對話框,按”ctrl”鍵可以選擇多個文件,這一步完成後,點擊securecrt的菜單項“transfer””start zmodem upload”,花幾分鐘就可以把選定的文件

securecrt 遠程控制linux服務器創建目錄 /tmp/upload 示意圖
傳送到linux的目錄/tmp/upload.在/tmp/upload 用命令 #ls ╟al 驗證文件是否被正確地上傳.我上傳了httpd-2.0.54.tar.gz ,php4.3.11.tar.gz,j2sdk-1.4.2-01-linux-i586-rpm.bin,jakarta-tomcat-5.0.28.tar.gz ,fedora-core-1-i386.tar.gz這五個文件。

四、安裝和配置
在配置過程中,可能要對某些配置文件多次進行修改,如apache的配置文件 httpd.c
(一)安裝
①安裝jdk:在當前目錄(/tmp/upload)執行命令
#./ j2sdk-1.4.2-01-linux-i586-rpm.bin ,輸入yes 後在當前目錄生成文件j2sdk-1.4.2-01-linux-i586-rpm。執行命令 #rpm ╟ivh j2sdk-1.4.2-01-linux-i586-rpm,完成後jdk就會被安裝在目錄 /usr/java/j2sdk1.4.2.
②安裝tomcat:在當前目錄對文件解壓,用命令 #tar ╟zxvf jakarta-tomcat-5.0.28.tar.gz,解壓完成後生成目錄 jakarta-tomcat-5.0.28,然後把這個目錄移動到目錄 /usr/local ,用命令
#mv /tmp/upload/jakarta-tomcat-5.0.28 /usr/local ,安裝 tomcat就算完成了。
③安裝apache:在當前目錄(/tmp/upload)解壓httpd-2.0.54.tar.gz,使用命令
#tar ╟zxvf httpd-2.0.54.tar.gz ,解壓完後轉到目錄 /tmp/upload/httpd-2.0.54,使用命令 #cd httpd-2.0.54 來進行;執行命令 #./c ╟prefix=/usr/local/apache ╟enable-module=most ╟enable-shared=max (注意prefix、enable前是兩“-”),一段時間後,如果沒有抱錯信息出現,那麼可以繼續執行命令 #make ;和 #make install來完成apache的安裝。
④安裝php:回到目錄 /tmp/upload , #cd ..(因爲剛纔轉到目錄 httpd-2.0.54),解壓文件php-4.3.11.tar.gz, #tar ╟zxvf php-4.3.11.tar.gz,解壓完成後轉到目錄php-4.3.11, #cd php-4.3.11,執行命令 #./c ╟prefix=/usr/local/php ╟with-apxs2=/usr/local/apache/bin/apxs,完成後執行命令 #make 和 #make install 完成php的安裝。這些過程完成後,會在目錄php-4.3.11生成文件php.ini-dist文件,需要把這個文件複製到 #cp php.ini-dist /usr/local/lib/php.ini 。
⑤解壓fedora-core-1-i386.tar.gz:需要用解壓後這個目錄裏的兩個文件。 #tar ╟zxvf fedora-core-1-i386.tar.gz.
安裝所用命令彙總(假定當前目錄爲 /tmp/upload)
#./ j2sdk-1.4.2-01-linux-i586-rpm.bin
#rpm ╟ivh j2sdk-1.4.2-01-linux-i586-rpm

#tar ╟zxvf jakarta-tomcat-5.0.28.tar.gz //解壓文件
#cd jakarta-tomcat-5.0.28
# mv /tmp/upload/jakarta-tomcat-5.0.28 /usr/local

#cd ..
#tar ╟zxvf httpd-2.0.54.tar.gz //解壓文件
#cd httpd-2.0.54
#./c -╟prefix=/usr/local/apache -╟enable-module=most ╟-enable-shared=max
#make //編譯
#make install //安裝
#cp php.ini-dist /usr/local/lib/php.ini //拷貝文件
#cd ..
#tar ╟zxvf fedora-core-1-i386.tar.gz
#cp fedora-core-1-i386/usr/lib/httpd/modules/*.so /usr/local/apache/modules //把模塊加入到apache裏
#cp fedora-core-1-i386/etc/httpd/conf/workers. properties /usr/local/apache/c //這個文件是tomcat與apache協同工作的腳本,稍後需要對它進行修改

# tar ╟zxvf php-4.3.11.tar.gz //解壓文件
#./c -╟prefix=/usr/local/php -╟with-apxs2=/usr/local/apache/bin/apxs //正常//完成後會在/usr/local/apache/modules 裏生成文件 libphp4.so,並且會在//apache的配置文件httpd.c loadmodule php4_module //modules/libphp4.so
#make //編譯
#make install //安裝

五、配置
①配置 jdk : 修改環境變量文件 /etc/profile ,只需在原文件的後面加上以下幾行即可。
export java_home=/usr/java/j2sdk1.4.2
export classpath=/usr/java/j2sdk1.4.2/lib
用命令 #vi /etc/profile.
修改環境變量示意圖

保存文件,用命令 #source /etc/profile 使修改馬上生效。用命令 #java ╟version 檢驗配置的正確性。
②配置tomcat:這個過程比較複雜,要分幾步進行。
a 修改文件 web.xml. #vi /usr/local/jakarta-tomcat/conf/web.xml ,把web.xml文件中的如下部分:
<!--
<servlet>
<servlet-name>invoker</servlet-name>
<servlet-class>
org.apache.catalina.servlets.invokerservlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<load-
</servlet>
-->

<!--
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
-->
兩部分的註釋去掉即可(就是把<!-- --> 去掉)。做這一步的原因是,tomcat 4.1.12以後的版本的 servlet 調用器開關在默認狀態下是關閉的。
b 修改文件 jk2.properties。#vi /usr/local/tomcat/conf/jk2.properties
## this file may be overriden at runtime. make sure tomcat is stoped
## when you edit the file.

## comments will be _lost_

## documentation of the format in jkmain javadoc.

# set the desired handler list
handler.list=apr,request //去掉了前面的註釋符號#
# override the default port for the socketchannel
channelsocket.port=8009 //去掉了前面的註釋符號#
# default:
# channelunix.file=${jkhome}/work/jk2.socket
# just to check if the the c is working
shm.file=/usr/local/apache/logs/jk2.shm //手動添加的
# in order to enable jni use any channeljni directive
# channeljni.disabled = 0
# and of the following directives:

# apr.jnimodeso=/opt/apache2/modules/mod_jk2.so
# if set to inprocess the mod_jk2 will register natives itself
# this will enable the starting of the tomcat from mod_jk2
# apr.jnimodeso=inprocess

在這裏可以先驗證一下tomcat是否可以正常工作。啓動tomcat #sh /usr/local/jakarta-tomcat-5.0.28/bin/startup.sh , 正常情況會輸出tomcat 和jdk的目錄。
tomcat 啓動輸出示意圖

然後再在windows的計算機的瀏覽器裏輸入linux服務器的ip地址和端口號,形如:http://192.168.0.100:8080 ,如果沒有意外,則可出現那隻可愛的小貓。
③配置apache:因爲php和jsp都要整合在apache裏(可以把apache想象成一個容器),這一步的配置過程也是很複雜的。配置前可以先驗證一下apache,看它是否可以正常工作。與tomcat相試,只是不用輸端口號而已,形如 http://192.168.0.100 ,如果出現apache 的測試web頁面,表明一切正常。
a 對文件workers2.properties的修改。其目的是讓tomcat與apache系統工作。使用命令 #vi /usr/local/apache/conf/workers2.properties 編輯文件如下所示
[shm]
info=scoreboard. requried for rec and status with multiprocess servers.
file=/usr/local/apache/logs/shm.file //這行是改動過的
size=1048576 //手動添加的

# defines a load balancer named lb. use even if you have machine.
[lb:lb]

# example socket channel, override port and host.
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1
# define the worker
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009
group=lb

# map the tomcat examples webapp to the web server uri space
[uri:/*.jsp] //jsp腳本交給tomcat 解釋器完成,其它的由apache處理, 如果不是這//樣,就會出現/usr/local/jakarta-tomcat/webapps/root裏的php腳本//不能被正確解析。感謝張煒宇在這個問題上的大力幫助。
[uri:/servlet/*]
[uri:/*.do]
worker=ajp13:localhost:8009 //手動添加的
group=lb
[status:]
info=status worker, displays runtime information

[uri:/jkstatus/*]
worker=ajp13:localhost:8009 //手動添加的
info=the tomcat /jkstatus handler
group=status:
b 修改apache 的配置文件 /etc/httpd/conf/httpd.conf. #vi /usr/local/apache/conf/httpd.c ,
loadmodule jk2_module modules/mod_jk2.so //jk2以apache 的模塊方式運行
directoryroot “/usr/local/jakarta-tomcat-5.0.28/webapps/root” //默認的
//爲”/var/www/html”
typeadd application /x-httpd-php .php3 //讓apache 能解釋php腳
//本,注意.php3 前面有空格
六、測試
自己搞幾個*.php和*.jsp文件拷貝到目錄,然後分別啓動apache和tomcat .
#/usr/local/apache/bin/apachectl start //啓動apache (可惜不是直升機)
#sh /usr/local/jakarta-tomcat/bin/startup.sh //啓動tomcat

在任意計算機的瀏覽器地址欄輸入linux的ip地址,形如 http://192.168.0.100/index.jsp , http://192.168.0.100/index.php ,如果能正常的在瀏覽器裏顯示,恭喜了!!!



再次感謝張煒宇的大力支持。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章