Linux+Apache+JSP+PHP+MySQL
來源:互聯網
上載者:User
一、安裝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.conf。為
了使描述更加符合邏輯,我在這裡採取先安裝完所有軟體,然後再一次性配置的方法來進行。
(一)安裝
①安裝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 來進行; 執行命令#./configure -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,執行命令#./configure -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
#./configure --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/conf //這個檔案是tomcat與apache協同工作的指令碼,稍後需要對它
進行修改
# tar -zxvf php-4.3.11.tar.gz //解壓檔案#./configure --prefix=/usr/local/php
--with-apxs2=/usr/local/apache/bin/apxs //正常//完成後會在/usr/local/apache/modules
裡組建檔案libphp4.so,並且會在//apache的設定檔httpd.conf裡加上一行
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-on-startup>2</load-on-startup>
</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 config is working
shm.file=/usr/local/apache/logs/jk2.shm //手動添加的
# In order to enable jni use any channelJni directive
# channelJni.disabled = 0
# And one 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 reconfiguration and status with multiprocess servers.
file=/usr/local/apache/logs/shm.file //這行是改動過的
size=1048576 //手動添加的
# Defines a load balancer named lb. Use even if you only have one 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.conf ,
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 .
#sh /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 ,如果能正常的在瀏覽器裡顯示,恭喜了!!!