歡迎您光臨本站 註冊首頁

Linux運行環境大雜配

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

---在redhat 9 下集成apache jsp php mysql
作者:田逸(sery@163.com) 發表於《開放系統世界》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 ,如果能正常的在瀏覽器里顯示,恭喜了!!!



再次感謝張煒宇的大力支持.


[火星人 ] Linux運行環境大雜配已經有562次圍觀

http://coctec.com/docs/linux/show-post-53843.html