摘要
Apache httpd-2.0.47 + Tomcat jakarta-tomcat-4.1.24 + jk2 + php-4.3.3 的安裝(2003-11-14 21:13:53)
--------------------------------------------------------------------------------
By iHero
Apache httpd-2.0.47 + Tomcat jakarta-tomcat-4.1.24 + jk2 + php-4.3.3 的安裝:
服務器環境:
RedHat Linux 8.0
J2sdk1.4.1_02
Tomcat 4.1.12 binary
Apache 2.0.47 built from source
jk2 connector source from jakarta.apache.org
安裝JDK:
下載: j2sdk-1_4_1_02-linux-i586.bin
把jdk 安裝在/usr/local/j2sdk1.4.1_02
在/usr/local 下建立 軟連接 jdk
#ln -s /usr/local/j2sdk1.4.1_02 /usr/local/jdk
[user@host]# cat /etc/profile.d/java.sh
# set java environment
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib
#更改shell文件屬性:
#chmod 755 /etc/profile.d/java.sh
#查看是否正確
#which java
/usr/local/jdk/bin/java
安裝apache :
#cd /usr/local/src/
#tar -xzvf httpd-2.0.47.tar.gz
#cd httpd-2.0.47
#配置apache 支持動態module 加載
#./configure
"--with-layout=Apache"
"--prefix=/usr/local/apache"
"--enable-module=so"
"--enable-module=setenvif"
"--enable-module=rewrite"
"--with-mpm=prefork"
#make
#make install
#修改http.conf 具體的修改請參考apache2.0文檔
# 或者查看 http://www.cnfug.org/journal/3/02.html
StartServers 10
MinSpareServers 25
MaxSpareServers 50
ServerLimit 2000
MaxClients 1500 #Apache可以同時處理的請求
MaxRequestsPerChild 10000
安裝Php :
下載: php-4.3.3.tar.gz
#cd /usr/local/src
#tar -xzvf
#php for apache 以apache modules的方式運行
./configure --with-apxs2=/usr/local/apache/bin/apxs
#php run like shell 以單獨的shell方式運行
./configure --prefix=/usr/local/php
#php for apache
./configure
--with-apxs2=/usr/local/apache/bin/apxs
--enable-track-vars
--enable-debug
--enable-url-includes
--enable-sockets
--with-config-file-path=/usr/local/apache/conf #php.ini文件放的目錄
#下面的參數是安裝PHP + gd庫
--with-gd=/usr/local
--enable-gd-native-ttf
--with-ttf=/usr/local
--with-jpeg-dir=/usr/local
--with-zlib-dir=/usr/local
--with-png-dir=/usr/local
#make
#make install
#ls -l /usr/local/apache/modules/libphp4.so #存在 安裝成功
#修改apache http.conf
添加
LoadModule php4_module modules/libphp4.so
AddType application/x-httpd-php .php
安裝Tomcat:
#cd /usr/local
#tar -xzvf jakarta-tomcat-4.1.24.tar.gz
#ln -s jakarta-tomcat-4.1.24 tomcat
#測試Tomcat正常安裝:
#/usr/local/tomcat/bin/startup.sh
#通過IE http://yourIP:8080/ Tomcat的頁面正常顯示
安裝JK2 :
#cd /usr/local/src
#tar -xzvf jakarta-tomcat-connectors-jk2-2.0.2-src.tar.gz
#cd jakarta-tomcat-connectors-jk2-2.0.2-src
#cd jk/native2
#chmod 755 buildconf.sh
#./configure --with-apxs2=/usr/local/apache/bin/apxs --enable-EAPI
#make
#make install
#如果make install 不成功需要手工發布mod_jk2.so
#cd /usr/local/src/jakarta-tomcat-connectors-jk2-2.0.2-src/jk/build/jk2/apache2
#cp *.so /usr/local/apache/modules/
配置$CATLINA/conf/server.xml
debug="0"/>
debug="0"/>
port="8080" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="-1"
useURIValidationHack="false" disableUploadTimeout="true" />
port="8009" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="-1"
useURIValidationHack="false"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
prefix="catalina_log." suffix=".txt"
timestamp="true"/>
unpackWARs="true" autoDeploy="true">
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
#編輯
#vi /usr/local/tomcat/conf/jk2.properties
# list of needed handlers.
handler.list=channelSocket,request
# Override the default port for the channelSocket
channelSocket.port=8009
#編輯文件:
#vi /usr/local/apache/conf/workers2.properties
# only at beginnin. In production uncomment it out
[logger.apache2]
level=DEBUG
[shm]
file=/usr/local/apache/logs/shm.file
size=1048576
# 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
# Uri mapping
[uri:192.168.0.90/*.jsp]
worker=ajp13:localhost:8009
[uri:211.167.83.165/*.jsp]
worker=ajp13:localhost:8009
#編輯http.conf
#修改
DocumentRoot "/usr/local/tomcat/webapps"
#添加index.jsp
DirectoryIndex index.html index.html.var index.jsp
LoadModule jk2_module modules/mod_jk2.so
Order deny,allow
Deny from all
#
# Order deny,allow
# Deny from all
#
Order Allow,Deny
ServerName www.home.net
ServerAlias www
ServerAlias localhost
ServerAlias 192.168.0.90
ServerAlias 211.167.83.165
ServerAdmin webmater@5757.com
DocumentRoot /usr/local/tomcat/webapps
ErrorLog logs/home.net-errorlog
CustomLog logs/home.net-access.log common
JkUriSet worker ajp13:localhost:8009
在配置server.xml 的時候:
配置管理端口 和連接的端口順序顛倒一下
在 catalina.out 可以觀察到:
這樣用apache 連接的時候,就不用等待了.
port="8009" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="0"
useURIValidationHack="false"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
port="8080" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="20000"
useURIValidationHack="false" disableUploadTimeout="true" />
#server.xml 不支持中文的注釋
#對 shared/classes 目錄下的java進行的修改不能立刻的反應到jsp中標.不能立即起作用.
以上的安裝同樣適合jakarta-tomcat-5.0.12 在以下的配置中注意
#在配置 jakarta-tomcat-5.0.12 的時候,注意 server.xml 中
沒有封閉.
BUG:
在catalina.out 報錯誤.
總體上感覺tomcat 5.0 比4.x在性能上是有了改進.啟動的速度快.
dzho002 回復于:2003-12-23 07:58:02 |
我的DocumentRoot 是這樣的:
DocumentRoot "/usr/local/tomcat/webapps/jsp-examples" 當我用 http://localhost/index.html, 我可以看到JSP例子的那頁, 但我點一個JSP程序, TOMCAT 報錯, 找不到文件. 當我用 http://localhost/index.jsp, 我可以看到JSP例子的那頁, 但是看不到網頁上的圖標. 連過去的JSP程序到是可以運行. 這是為啥? |
jhsea3do 回復于:2003-12-23 09:40:24 |
5.0是個不成熟的產品,當你使用5.0代替4.1時你會發現很多webapp不能正常工作,因為5.0不支持JSP1.2,而支持JSP2.0 |
dzho002 回復于:2003-12-24 05:24:06 |
[b:8a23c5158b]Tomcat 5.0.6 + jk2 + Apache 2.0[/b:8a23c5158b]
dzho002 [b:8a23c5158b]Install tomcat[/b:8a23c5158b] [code:1:8a23c5158b]cp jakarta-tomcat-5.0.16.tar.gz /usr/local cd /usr/local tar xzvf jakarta-tomcat-5.0.16.tar.gz ln -s jakarta-tomcat-5.0.16 tomcat rm -f jakarta-tomcat-5.0.16.tar.gz [/code:1:8a23c5158b] Add following lines to /etc/profile, and tomcat should work beyond this point. [code:1:8a23c5158b]export PATH=/usr/local/j2sdk1.4.2_01/bin:$PATH export JAVA_HOME=/usr/local/j2sdk1.4.2_01 export CATALINA_HOME=/usr/local/tomcat [/code:1:8a23c5158b] [b:8a23c5158b]Test Tomcat[/b:8a23c5158b] [code:1:8a23c5158b]source /etc/profile /usr/local/tomcat/bin/startup.sh It is time to open the page http://localhost:8080/ in mozilla to watch the cat(tiger). /usr/local/tomcat/bin/shutdown.sh [/code:1:8a23c5158b] [b:8a23c5158b]Install Apache 2[/b:8a23c5158b] [code:1:8a23c5158b] tar xzvf httpd-2.0.48.tar.gz cd httpd-2.0.48 ./configure --prefix=/usr/local/apache --enable-ssl --enable-so make make install [/code:1:8a23c5158b] [b:8a23c5158b]Test apache2[/b:8a23c5158b] [code:1:8a23c5158b]/usr/local/apache/bin/apachectl start [/code:1:8a23c5158b] There is a complaint: "httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName" Donot know why yet. Now, open the page http://localhost/ to see the Apache main page from Mozilla. [code:1:8a23c5158b]/usr/local/apache/bin/apachectl stop[/code:1:8a23c5158b] [b:8a23c5158b]Install jk2[/b:8a23c5158b] [code:1:8a23c5158b] tar xzvf jakarta-tomcat-connectors-jk2-2.0.2-src.tar.gz cd jakarta-tomcat-connectors-jk2-2.0.2-src/jk/native2 ./configure --with-apxs2=/usr/local/apache/bin/apxs make ls ../build/jk2/apache2/*.so ../build/jk2/apache2/jkjni.so ../build/jk2/apache2/mod_jk2.so cp ../build/jk2/apache2/*.so /usr/local/apache/modules/ [/code:1:8a23c5158b] [b:8a23c5158b]Edit /usr/local/apache/conf/httpd.conf[/b:8a23c5158b] Add a line to load the jk2 module. [code:1:8a23c5158b]LoadModule jk2_module modules/mod_jk2.so [/code:1:8a23c5158b] [b:8a23c5158b]Edit /usr/local/tomcat/conf/jk2.properties[/b:8a23c5158b] It finnally looks like: (jk2 connector over TCP socket.) [code:1:8a23c5158b][shm] shm.file=/usr/local/tomcat/logs/jk2.shm size=1048576 handler.list=apr,request,channelSocket channelSocket.port=8009 [/code:1:8a23c5158b] Edit /usr/local/apache/conf/workers2.properties If it is not there, just create one by: [code:1:8a23c5158b] touch /usr/local/apache/conf/workers2.properties [/code:1:8a23c5158b] [code:1:8a23c5158b] [shm] shm.file=/usr/local/tomcat/logs/jk2.shm size=1048576 [channel.socket:localhost:8009] tomcatId=localhost:8009 [ajp13:localhost:8009] channel=channel.socket:localhost:8009 worker=ajp13:localhost:8009 [uri:/jsp-examples/*] [uri:/servlets-examples/*] [uri:/JSPWiki/*] [/code:1:8a23c5158b] Edit /usr/local/tomcat/conf/server.xml Just find and comment out the following HTTP/1.1 connector. Looks like it still works fine even if I donot do it. [code:1:8a23c5158b] <!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 --> <!-- <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" /> --> [/code:1:8a23c5158b] Now it is time to test apache + tomcat http://localhost/ ---> open the default page of apache. http://localhost/servlets-examples/ ---> open the servlets-examples page of tomcat. http://localhost/jsp-examples/ ---> open the servlets-examples page of tomcat. Done! Some optional steps: A puzzle: If I use this uri in the workers2.properties, [uri:/*.jsp] worker=ajp13:localhost:8009 http://localhost/ ---> open the default page of apache. http://localhost/index.jsp ---> open the main page of tomcat, but all images are missing. This is what I want if somebody can find those images back for me. Modify /usr/local/tomcat/conf/tomcat-users.xml Add two roles and a user with those roles, so dan can admin/manage tomcat via web. <role rolename="manager"/> <role rolename="admin"/> <user username="dan" password="tomcat" roles="manager,admin,tomcat,role1"/> Start tomcat and try these two pages. http://localhost:8080/admin/ http://localhost:8080/manager/html/ The first page looks very complicated, while the second one allows you to start/stop any JSP program in Tomcat easily. [b:8a23c5158b]To Run tomcat as a no-root user[/b:8a23c5158b] [code:1:8a23c5158b]groupadd tomcat useradd -g tomcat -c "A Big Cat", -d /usr/local/tomcat tomcat passwd tomcat chown tomcat:tomcat /usr/local/tomcat chown -R tomcat:tomcat /usr/local/jakarta-tomcat-5.0.16 su - tomcat -c /usr/local/tomcat/bin/startup.sh su - tomcat -c /usr/local/tomcat/bin/shutdown.sh [/code:1:8a23c5158b] References [url]http://www.greenfieldresearch.ca/technical/jk2_config.html[/url] [url]http://johnturner.com/howto.apache2-tomcat4127-jk-rh9-howto.html[/url] |
黑色 回復于:2004-01-12 13:26:33 |
請教一下,我照著上面所述,做到make的時侯
出現 libtool: install: warning: remember to run `libtool --finish /usr/local/httpd/m dules' make[1]: Leaving directory `/misc/tomcat4/jakarta-tomcat-connectors-jk2-2.0.2-s c/jk/native2/server/apache2' 然後去看 build/jk2/apache2 裡面只有一堆.o跟.lo沒有.so >_< 請問各位高手,我是少了什麼步驟沒做嗎?? |
dennis2 回復于:2004-01-12 17:02:49 |
[quote:ca142f9261="jhsea3do"]5.0是個不成熟的產品,當你使用5.0代替4.1時你會發現很多webapp不能正常工作,因為5.0不支持JSP1.2,而支持JSP2.0[/quote:ca142f9261]
“因為5.0不支持JSP1.2,而支持JSP2.0” 所以得出結論 “5.0是個不成熟的產品”? 什么邏輯 |
jhsea3do 回復于:2004-01-12 22:37:06 |
[quote:ea599ead34="dennis2"]
“因為5.0不支持JSP1.2,而支持JSP2.0” 所以得出結論 “5.0是個不成熟的產品”? 什么邏輯[/quote:ea599ead34] 請問你有沒有親手編寫過jsp,如果沒有就不要說這樣的話 :em22: ! 5.0不僅僅是對jsp得支持和4.1存在分歧,而且對servlet的支持也和4.1有出入,而且servlet一般都是被封裝的class,你無法修改! |
dennis2 回復于:2004-01-13 01:16:07 |
[quote:173b9bc48b="jhsea3do"]
5.0不僅僅是對jsp得支持和4.1存在分歧,而且對servlet的支持也和4.1有出入,而且servlet一般都是被封裝的class,你無法修改![/quote:173b9bc48b] 你只能說 5.0 對以前版本的應用不支持(或支持得不夠好),而不是不成熟。Tomcat 5 很早就已經穩定下來了,只不過一直在等著新的標準出來,它才出正式的穩定版。而這個新標準的出臺,也是醞釀了很久很久了。 如果把給 4.1 版本寫的應用原封不動地搬到 5.0 使用,無異于自找麻煩。但是新的應用就沒必要再針對 4.1 版寫了,因為 JSP 2.0 相對 1.2 有了很大改進。當然具體情況具體分析,但你卻不能說 5.0 版不成熟。 |
linuxsky 回復于:2004-02-16 14:47:43 |
我在一臺機上也發現apache2目錄下沒有一個.so的文件
但以前在Redhat9 下面就可以 出的錯也和黑色網友的一樣 |
dennis2 回復于:2004-02-16 14:57:01 |
編譯出的模塊 .so 文件在 .libs 目錄下。 |
linuxsky 回復于:2004-02-16 16:02:04 |
[quote:8f117d4dc1="dennis2"]編譯出的模塊 .so 文件在 .libs 目錄下。[/quote:8f117d4dc1]
沒有啊。我剛又試了一把 還是沒看到 .libs目錄下也沒有.so的文件 |
dennis2 回復于:2004-02-17 09:38:05 |
如果你編譯 jk2 沒問題的話,.so 文件應該在 jakarta-tomcat-connectors-jk2-2.0.2-src/jk/build/jk2/apache2 下。 |
linuxsky 回復于:2004-02-17 10:58:33 |
是沒有的。我以前編成功過
那是在Redhat9.0環境下 最近換成了AS3.0 就成功不了 連試幾臺機都一樣。真是慘。 不過我用以前9.0下編好的so文件拷過去,還是可以用。就不知道會不會有其它問題 另外:我想問一下,如果我在httpd.conf里指定DocumentRoot /www 我希望這個目錄下可以執行php 還有jsp html 等.. 我還需要在server.xml里怎么設置?或其它地方設置? |
只愛一點點 回復于:2004-02-17 14:01:10 |
好像不會有問題,只要和apache版本對應就行了吧? |
云海天涯 回復于:2004-02-17 15:45:48 |
good ,thank you |
kevinkan 回復于:2004-02-23 10:42:43 |
我整合 apach+tomcat的時候,在最好加上以下的語句
WebAppConnection warpConnection warp localhost:8080 WebAppDeploy examples warpConnection /examples/ 在重啟的時候就出現了 Invalid virtual host name 究竟在那里解決這個問題? |
只愛一點點 回復于:2004-02-23 23:31:50 |
樓上用什么整合的?
JK2是不用上面的方面的吧? |
kpflysky 回復于:2004-02-24 17:51:18 |
誰有沒有單獨安裝tomcat5.0的經驗
我的servlet怎么不能部署上去 總提示servlet/*不存在 在4.0沒有問題的 是標準的servlet |
caojiqun 回復于:2004-02-24 22:37:55 |
也許你要做一下servlet映射或是修改全局的server.xml |
jessicar 回復于:2004-03-24 19:07:17 |
拜托了。。。。。。。! |
hfh08 回復于:2005-06-04 12:02:55 |
怎么安裝上數據庫啊
沒有數據庫 我認為這些都白做了啊 |
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/