1. ผู้แต่ง: moonsbird
หัวข้อ: สรุปประสบการณ์การกำหนดค่าการรวมเซิร์ฟเวอร์สำหรับ Apache+Tomcat+MySQL+jsp+php ภายใต้ Windows
เวลา: 2004.8.19
เผยแพร่ครั้งแรกที่สถานี Jincheng มหาวิทยาลัย Southwest Jiaotong
2. บทความนี้เป็นการสรุปประสบการณ์ของผู้เขียนในการเรียนรู้สภาพแวดล้อมเซิร์ฟเวอร์ jsp/configuration ในช่วงไม่กี่ปีที่ผ่านมา สามารถทำซ้ำได้แต่โปรดระบุแหล่งที่มา
เป็นเวลานานแล้วตั้งแต่ฉันเริ่มเรียนรู้ jsp มีตัวอย่างมากมายของการรวม jsp บนอินเทอร์เน็ต แต่มีปัญหามากมาย
สำหรับการผสานรวม Apache+Tomcat+MySQL+jsp+php จะมีความแตกต่างเล็กน้อยสำหรับเวอร์ชันต่างๆ ของ Tomcat และ apache
แม้ว่า E-text ของคุณจะดี แต่ถ้าคุณอ่านคู่มือของ Tomcat และ Apache คุณอาจไม่สามารถรวมเข้าด้วยกันได้อย่างสมบูรณ์ ฉันอยู่ที่บ้านในช่วงปิดเทอมฤดูร้อน และความเร็วอินเทอร์เน็ตก็ไม่ได้ช้าเท่ากับของมหาวิทยาลัย Jiaotong --- มันช้าเท่ากับรถถลกหนังรุ่นเก่า ดังนั้นจากนี้ ผู้เขียนจึงได้ปรึกษาข้อมูลออนไลน์จำนวนมากและ ซึมซับสาระสำคัญของมัน ฉันเขียนบทความนี้โดยหวังว่าจะให้ความสะดวกสำหรับผู้เริ่มต้นและยังใช้เป็นคู่มืออ้างอิงของอาจารย์อีกด้วย
jsp เป็นเลิศ มีพื้นฐานอยู่บนเทคโนโลยี Java และใช้ JavaBean/Servlet เพื่อสร้างเว็บไซต์แบบไดนามิกที่มีประสิทธิภาพของ Java ทำให้ Jsp มีข้อได้เปรียบเหนือ php และ asp แต่การเรียนรู้ jsp นั้นยากเมื่อเทียบกับ php และ asp
ฉันคิดว่าสาเหตุหนึ่งก็คือการกำหนดค่าสภาพแวดล้อมเซิร์ฟเวอร์ jsp นั้นซับซ้อนกว่าเล็กน้อย สำหรับการผลิตหน้าเว็บแบบไดนามิก ASP เป็นผู้นำในมหาวิทยาลัย Jiaotong มาเป็นเวลานาน มี "ผู้เชี่ยวชาญ" ไม่มากนัก (บางทีหลายคนคิดว่าผู้ที่ใช้ jsp เป็นผู้เชี่ยวชาญ) ใช้ jsp และมหาวิทยาลัย Jiaotong มีมากกว่า ประสบความสำเร็จ.
เว็บไซต์ jsp เช่น Century Star Network (Tomcat), เว็บไซต์สถาบันการศึกษาออนไลน์ (Resin), Jiaotong University Admissions and Employment Network (Tomcat) ซึ่งเป็นเซิร์ฟเวอร์
Linux 9 ทำงานค่อนข้างเสถียรและเชื่อถือได้ ฉันเคยตีพิมพ์บทความเกี่ยวกับการบูรณาการ Apache และ Tomcat ภายใต้ Linux หากคุณต้องการ โปรดค้นหาใน Jincheng แนวคิดบูรณาการภายใต้ Linux และ Windows เหมือนกัน โดยใช้ apache เพื่อแยกวิเคราะห์ *.html/*.htm
สำหรับหน้าเว็บแบบสแตติก เมื่อพบกับ *.jsp และ servlet หน้า jsp จะถูกส่งไปที่ Tomcat (หรือ
เรซิ่น) การสร้างโมดูลนี้โดยการคอมไพล์ภายใต้ Linux จะยุ่งยากกว่าเล็กน้อย บทความนี้ใช้โมดูลสำเร็จรูปภายใต้ win เพื่อทำให้การรวมเสร็จสมบูรณ์
เพื่อเป็นการไม่ให้เสียเวลา มาเริ่มบูรณาการกัน:
ซอฟต์แวร์ที่จำเป็น
(1) j2sdk-1_4_2-windows-i586.exe
เวอร์ชันของ jdk ไม่เกี่ยวข้องมากนัก และไม่ส่งผลต่อการรวม Apache และ Tomcat เพียงให้ความสนใจเมื่อกำหนดค่าตัวแปรสภาพแวดล้อม
(2) apache_2.0.49-win32-x86-no_ssl.exe
เวอร์ชัน apache ไม่มีผลกระทบต่อการบูรณาการมากนัก แต่วิธีที่ดีที่สุดคือใช้ประโยชน์จากเวอร์ชันนี้
(3)จาการ์ตา-tomcat-4.1.30.exe
วิธีที่ดีที่สุดคือใช้เวอร์ชันนี้ ฉันยังไม่ได้ลองใช้เวอร์ชันอื่น ซึ่งอาจทำให้การรวมระบบล้มเหลว
(3) php-4.3.3-Win32.zip
เป็นแพ็คเกจบีบอัด เพียงดาวน์โหลดและแตกไฟล์โดยตรง
(4) mod_jk.dll
โมดูลนี้วางอยู่ในโมดูลใน Apache และใช้ในการสื่อสารระหว่าง Tomcat และ Apache
(5) mysql-max-3.23.46a-win.zip
ฐานข้อมูล mysql เวอร์ชันของมันมีผลกระทบเพียงเล็กน้อยต่อการรวมระบบ
(6) ไดรเวอร์ jdbc
ไดรเวอร์ mysql ใช้สำหรับเชื่อมต่อกับฐานข้อมูล
ฉันจะไม่โพสต์ที่อยู่ของซอฟต์แวร์ข้างต้น ค้นหา Baidu และ Beida Tianwang ออนไลน์ ตราบใดที่คุณค้นหาอย่างระมัดระวังก็ไม่น่าจะเป็นปัญหาใหญ่ หากคุณหาไม่พบ เพียงส่งอีเมลถึงฉัน ขอมัน
1. ติดตั้ง j2sdk
ใน Windows ให้รันไฟล์ j2sdk-1_4_1_01-windows-i586.exe ที่ดาวน์โหลดมาโดยตรง และติดตั้งลงในไดเร็กทอรีตามวิซาร์ดการติดตั้ง เช่น ติดตั้งไปที่ d:serverj2sdk
1. กำหนดค่าตัวแปรสภาพแวดล้อม:
เพิ่มค่าตัวแปรตัวแปร CLASSPATH เป็น
./;%CLASSPATH%;D:serverj2sdk1.4.0libdt.jar;d:serverj2sdk1.4.0libtools.jar;
d:เซิร์ฟเวอร์j2sdk1.4.0bin
การกำหนดค่านี้ช่วยให้แน่ใจว่าสามารถค้นหาคลาสคลาสได้เมื่อ Java กำลังทำงาน
2. เพิ่มตัวแปร JAVA_HOME โดยค่าตัวแปรคือ d:serverj2sdk1.4.0
3. ในตัวแปรพาธดั้งเดิม ให้เพิ่ม d:serverj2sdk1.4.0bin เพื่อให้สามารถรันคำสั่ง java ได้ไม่ว่าจะอยู่ที่ใดก็ตาม
รีสตาร์ท
ไม่
หากความช่วยเหลือของคำสั่งปรากฏขึ้น แสดงว่าติดตั้ง java ได้สำเร็จ
โมฆะคงที่สาธารณะ main (String args []) {
System.out.println("การเห็นสิ่งนี้หมายความว่าการติดตั้ง Java สำเร็จ!");
-
-
เก็บโปรแกรมข้างต้นไว้ในไฟล์ test.java ต้องเป็น test.java แล้วใช้คำสั่งในการคอมไพล์
จาวาค test.java
หากไม่มีข้อผิดพลาด แสดงว่าการคอมไพล์สำเร็จ หากมีข้อผิดพลาด แสดงว่าตัวแปรสภาพแวดล้อม Java ยังไม่ได้รับการกำหนดค่าอย่างถูกต้อง และเพิ่งได้รับการกำหนดค่าใหม่ตามการเขียนโปรแกรมที่ถูกต้อง หากการคอมไพล์สำเร็จ ให้รัน:
การทดสอบจาวา
หมายเหตุ ไม่ใช่ java test.java! หากถูกต้อง ระบบจะพิมพ์ออกมา:
เมื่อเห็นว่าติดตั้ง java สำเร็จแล้ว!
gxgx
, jdk ได้รับการติดตั้งเรียบร้อยแล้ว!
1. เรียกใช้ apache_2.0.49-win32-x86-no_ssl.exe เพียงคลิก "ตกลง" และ "ยอมรับ" ระหว่างทางเลือกเส้นทาง
d:เซิร์ฟเวอร์กลุ่ม apacheapache2.
ณ จุดนี้ apache ได้รับการติดตั้งเรียบร้อยแล้วและกำลังทำงานอยู่ คุณสามารถดูได้โดยป้อน http://localhost/ ใน IE
หน้าแรกของ apache การติดตั้งสำเร็จ!
2. แก้ไข httpd.conf
ไฟล์การกำหนดค่าของ apache คือ httpd.conf ซึ่งอยู่ในโฟลเดอร์ conf ใต้ไดเรกทอรีรากของ apache
(1) แก้ไขไดเร็กทอรีรากของเว็บไซต์เริ่มต้น:
สร้างโฟลเดอร์ www ภายใต้ d:server เป็นไดเรกทอรีรากของเว็บไซต์
DocumentRoot "D:/server/Apache Group/Apache2/htdocs"
เปลี่ยนเป็น DocumentRoot "D:/server/www
(2) แก้ไขการตั้งค่าอักขระ
Apache จะสร้างอักขระที่อ่านไม่ออกเมื่อแยกวิเคราะห์หน้าเว็บภาษาจีน
แก้ไข AddDefaultCharset ISO-8859-1 เป็น AddDefaultCharset GB2312
(3) แก้ไขหน้าแรกเริ่มต้น
เมื่อเข้าถึงไดเร็กทอรี apache จะนำเข้าโฮมเพจโดยอัตโนมัติและลำดับความสำคัญจะเป็นไปตามลำดับ
เปลี่ยน DirectoryIndex index.html index.html.var เป็น
DirectoryIndex index.html index.jsp index.php default.jsp default.php index.html.var
(4) ตั้งค่าหน้าข้อผิดพลาด
สิ่งนี้จะปลอดภัยกว่าสำหรับเว็บไซต์ของคุณ หากไม่ได้ตั้งค่าและมีคนอื่นเข้าสู่เส้นทางแบบสุ่มหลังจาก URL ของคุณ ข้อผิดพลาด 404 จะปรากฏขึ้น
และหมายเลขเวอร์ชันเซิร์ฟเวอร์ของคุณจะแสดงขึ้น การกำหนดค่าเซิร์ฟเวอร์มีความชัดเจนในทันที เพื่อหลีกเลี่ยงสถานการณ์นี้ คุณสามารถตั้งค่าหน้าข้อผิดพลาดได้
เมื่อเกิดข้อผิดพลาด 404 กล่าวคือ ไม่พบหน้าเว็บ ให้นำผู้เยี่ยมชมไปยังหน้าแสดงข้อผิดพลาด
เปิดขึ้น:
-
# การตอบสนองข้อผิดพลาดที่ปรับแต่งได้มีสามรูปแบบ:
# 1) ข้อความธรรมดา 2) การเปลี่ยนเส้นทางในเครื่อง 3) การเปลี่ยนเส้นทางภายนอก
-
# ตัวอย่างบางส่วน:
#ErrorDocument 500 "เซิร์ฟเวอร์ทำเสียงโห่"
#ข้อผิดพลาดเอกสาร 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
-
ส่วนนี้ของ httpd.conf #ErrorDocument 404 /missing.html
มีการแก้ไขบรรทัดหนึ่งเป็น ErrorDocument 404 /error/noFile.htm โดยที่ noFile.htm เป็นไฟล์ข้อผิดพลาดถัดไปใน d:serverwwwerror
คุณต้องสร้างมันขึ้นมาเอง เมื่อมีข้อผิดพลาด 404 เกิดขึ้น ให้เข้าสู่หน้า noFile.htm จากนั้นระบบจะแจ้งว่าไม่พบหน้าเว็บดังกล่าว จากนั้นจะไม่สามารถดูข้อมูลซอฟต์แวร์เซิร์ฟเวอร์ของคุณได้ คุณยังสามารถตั้งค่าเพจที่มุ่งเน้นข้อผิดพลาดอื่นๆ ได้ โปรดดูข้อมูลที่เกี่ยวข้องสำหรับหมายเลขข้อผิดพลาดการตอบกลับ http เฉพาะ
รีสตาร์ท apache หากไม่มีสิ่งใดเกิดขึ้น แสดงว่าการติดตั้งสำเร็จแล้ว วางเพจแบบคงที่ไว้ในไดเร็กทอรี d:serverwwwerror เพื่อดูว่าสามารถแยกวิเคราะห์ได้สำเร็จหรือไม่
ป้อนรายการใดรายการหนึ่ง: http://localhost/sdagasgdasasg.htm และดูว่านำไปสู่ข้อผิดพลาด 404 ที่คุณตั้งไว้หรือไม่ ซึ่งก็คือหน้าข้อผิดพลาด noFile.htm
ความสำเร็จ!
ฉันจะไม่ลงรายละเอียดเกี่ยวกับความหมายของพารามิเตอร์อื่นๆ ใน apache คุณสามารถตรวจสอบได้ทางออนไลน์ วิธีที่ดีที่สุดคืออ่านความคิดเห็นใน httpd.conf ซึ่งชัดเจนมากแล้ว
โอเค ตอนนี้ติดตั้ง apache สำเร็จแล้ว คุณสามารถพัก ฟังเพลง และเริ่มการติดตั้งขั้นตอนต่อไปได้เลย :)
3.php การติดตั้ง
แตกไฟล์ php-4.3.3-Win32.zip แล้วไปที่ไดเร็กทอรี d:serverphp กำหนดค่า PHP และ Apache เพื่อให้สามารถแยกวิเคราะห์โปรแกรม php ได้
เปลี่ยนชื่อ "php.ini-dist" ในไดเร็กทอรี d:serverphp เป็น "php.ini" และคัดลอกไปที่ C:windowssystem32
(ไดเรกทอรี Win2K: C:winntsystem32) ป้อนบรรทัดต่อไปนี้ในไฟล์การกำหนดค่า apache httpd.conf เพื่อให้รองรับ php.ini
ScriptAlias /php/ "d:/server/php/"
แอปพลิเคชัน AddType/x-httpd-php .php3
แอปพลิเคชัน AddType/x-httpd-php .php
แอปพลิเคชัน AddType/x-httpd-php .phtml
แอปพลิเคชันการดำเนินการ/x-httpd-php "/php/php.exe"
สร้างเว็บเพจ: index.php ภายใต้ d:serverwww โดยมีเนื้อหาดังต่อไปนี้:
<html>
<head><title>ทดสอบ php</title></head>
<?php
phpinfo();
-
</html>
แก้ไขด้วยโปรแกรมแก้ไขข้อความและบันทึกเป็น index.php รีสตาร์ท apache ป้อน http://localhost/index.php ใน IE หากตัวแปรสภาพแวดล้อมของ php ปรากฏขึ้น แสดงว่าติดตั้ง php ได้สำเร็จ หากไม่สามารถแยกวิเคราะห์ < ?php phpinfo(); ?> หมายความว่าการติดตั้งไม่สำเร็จ
4. การติดตั้ง Tomcat
ฉันใช้ไฟล์การติดตั้ง jakarta-tomcat-4.1.30.exe เพียงคลิก "ตกลง" ใต้ Windows มันค่อนข้างง่าย
d:เซิร์ฟเวอร์tomcat
ตั้งค่าตัวแปรสภาพแวดล้อมด้านล่าง:
เช่นเดียวกับตัวแปรสภาพแวดล้อมของ jdk เพิ่มตัวแปร TOMCAT_HOME ค่าคือ d:servertomcat; เพิ่มตัวแปร CATALINA_HOME ค่าคือ
d:tomcatserver เพิ่ม d:servertomcatbin ให้กับตัวแปรพาธ
จากนั้น ให้สตาร์ท Tomcat และรันไฟล์ bin/startup.bat ในไดเร็กทอรี Tomcat คอนโซลที่รัน Tomcat จะปรากฏขึ้น และ Tomcat เริ่มทำงานได้สำเร็จ
ป้อน http://localhost:8080/ ใน IE หากคุณเห็น Big Cat แสดงว่าการติดตั้ง Tomcat สำเร็จ
ไฟล์
mysql-max-3.23.46a-win.zip และเรียกใช้ไฟล์การติดตั้ง mysql . ให้ติดตั้ง mysql ไปที่ d:servermysql
ขั้นตอนที่ 2: เพิ่ม d:servermysqlbin ไปยังเส้นทางตัวแปรสภาพแวดล้อม
ขั้นตอนที่ 3: ป้อนไดเร็กทอรี d:servermysqlbin และเรียกใช้ winmysqladmin กล่องโต้ตอบจะปรากฏขึ้น ตั้งรหัสผ่านผู้ใช้ mysql สมมติว่าบัญชีคือ: root และรหัสผ่านคือ: 123
ขั้นตอนที่ 4: ป้อน dos ป้อน mysql/bin และรันคำสั่งต่อไปนี้เพื่อเปิด mysql
mysqld-nt --แบบสแตนด์อโลน
จากนั้น mysql จะถูกเปิดขึ้นมา
จากนั้นเรียกใช้:
mysql
หากเปิดอยู่ ข้อความต่อไปนี้จะปรากฏขึ้น:
ยินดีต้อนรับสู่มอนิเตอร์ MySQL ลงท้ายด้วย ; หรือ g
รหัสการเชื่อมต่อ MySQL ของคุณคือ 1 ถึงเวอร์ชันเซิร์ฟเวอร์: 3.23.46-nt
พิมพ์ 'help;' หรือ 'h' เพื่อขอความช่วยเหลือ พิมพ์ 'c' เพื่อล้างบัฟเฟอร์
mysql>
หมายเหตุ: ไม่มีการตั้งรหัสผ่านสำหรับ mysql ในขณะนี้ เพื่อป้องกันไม่ให้ผู้อื่นเข้าสู่ฐานข้อมูลของคุณ โปรดตั้งรหัสผ่านสำหรับ mysql สำหรับการดำเนินการเฉพาะ โปรดดูที่ mysql
เอกสารภาษาจีน.
ณ จุดนี้ ติดตั้ง mysql สำเร็จแล้ว!
6. ติดตั้งคลาสไดรเวอร์ MySQL jdbc
คลายซิปแพ็คเกจไดรเวอร์ jdbc และคัดลอกโฟลเดอร์ org ภายในไปยังตำแหน่งที่สามารถพบได้ jsp อาจเป็นไดเร็กทอรีรูททั่วไป/คลาสของ Tomcat
โฟลเดอร์หรืออาจอยู่ภายใต้คลาสเว็บไซต์ jsp WEB-INF/class/ เพื่อให้สามารถค้นหาคลาสที่เกี่ยวข้องได้เมื่อโหลดไดรเวอร์ หรือเพิ่มพาธของแพ็กเกจ jdbc ให้กับตัวแปร classpath
7. การกำหนดค่าแบบรวมของ Tomcat และ Apache
Tomcat เป็นเพียงคอนเทนเนอร์ที่ใช้ในการแยกวิเคราะห์ไฟล์ *.jsp ไม่ใช่เซิร์ฟเวอร์
หลังจากการบูรณาการ apache จะถูกใช้เพื่อแยกวิเคราะห์หน้าเว็บแบบคงที่บนพอร์ตเดียวกัน และเมื่อพบหน้าเว็บ *.jsp หน้านั้นจะถูกส่งไปยัง Tomcat เพื่อทำการแยกวิเคราะห์
ขั้นตอนที่ 1: คัดลอก mod_jk.dll ไปยังโฟลเดอร์โมดูลในไดเรกทอรีรากของ apache
ขั้นตอนที่ 2: กำหนดค่า APACHE
เพื่อเปิด confhttpd.conf ในไดเร็กทอรีรากของ apache
และเพิ่มคำสั่งต่อไปนี้:
#------------------------- ------ -------------
#กำลังเชื่อมต่อกับ Tomcat โดยใช้ ajp13
LoadModule โมดูล jk_module/mod_jk.dll
JkWorkersFile "d:/server/tomcat/conf/workers.properties"
JkMount /servlet/* ajp13
JkMount /*.jsp ajp13
#------------------------------------------------ - ---
หมายเหตุ: ความหมายพื้นฐานของข้อความข้างต้นคือ:
loadModule หนึ่งบรรทัด: โหลดโมดูลไลบรารีลิงก์แบบไดนามิก mod_jk.dll เพื่อสื่อสารกับ Tomcat
jkWorkersFile: ระบุตำแหน่งของไฟล์ที่เกี่ยวข้องกับ tomcat worker.properties เมื่อทำงาน
jkMount: สองบรรทัดระบุว่าเมื่อพบ *.jsp และ servlet ทั้งสองบรรทัดจะถูกส่งมอบไปยังโปรโตคอล ajp13 จากนั้นส่งต่อไปยัง Tomcat เพื่อประมวลผล
ขั้นตอนที่ 3: สร้างไฟล์ worker.properties ในไดเร็กทอรี root ของ Tomcat เนื้อหาคือ:
worker.tomcat_home=d:servertomcat
worker.java_home=d:เซิร์ฟเวอร์j2sdk1.4.0
ปล=
# worker.list=ajp13
ผู้ปฏิบัติงาน.list=ajp12,ajp13
ผู้ปฏิบัติงาน.ajp12.port=8007
worker.ajp12.host=localhost
worker.ajp12.type=ajp12
worker.ajp12.lbfactor=1
ผู้ปฏิบัติงาน.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=ajp12, ajp13
worker.inprocess.type=jni
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)คลาส
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)jaxp.jar
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)parser.jar
ผู้
ปฏิบัติงานinprocess.class_path=$(workers.tomcat_home)$(ps)common$(ps)lib$(ps)jasper.jar
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)common$(ps)lib$ (ps)servlet.jar
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)common$(ps)lib$(ps)webserver.jar
worker.inprocess.class_path=$(workers.java_home)$(ps )lib$(ps)tools.jar
worker.inprocess.cmd_line=-config
worker.inprocess.cmd_line=$(workers.tomcat_home)/conf/jni_server.xml
worker.inprocess.cmd_line=-home
worker.inprocess.cmd_line=$ (workers.tomcat_home)
worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)jvm.dll
worker.inprocess.stdout=$(workers.tomcat_home)$(ps)inprocess.stdout
worker.inprocess.stderr=$(workers.tomcat_home)$(ps)inprocess.stderr
worker.inprocess.sysprops=tomcat.home=$( worker.tomcat_home)
โปรดทราบว่าในบรรทัดแรกและบรรทัดที่สองของไฟล์ด้านบน ให้กรอกไดเร็กทอรีที่เกี่ยวข้องของ tomcat และ jdk
ขั้นตอนที่ 4: กำหนดค่าไฟล์ server.xml ภายใต้ tomca/conf นี่คือไฟล์การกำหนดค่าหลักของ Tomcat การกำหนดค่าที่สำคัญมีดังนี้:
1. การตั้งค่าไดเรกทอรีเสมือน:
ค้นหาสิ่งต่อไปนี้:
<ชื่อโฮสต์ = "localhost" debug = "0" appBase = "/ webapps"
unpackWARs="true" autoDeploy="true">
แก้ไขเป็น:
<ชื่อโฮสต์ = "localhost" debug = "0" appBase = "d:/server/www"
unpackWARs="true" autoDeploy="true">
สร้างโฮมไดเร็กตอรี่ของ Tomcat d:serverwww.
ค้นหาสิ่งต่อไปนี้:
<เส้นทางบริบท = "ตัวอย่าง" docBase = "/ ตัวอย่าง" debug = "0"
โหลดใหม่ได้ = "true" crossContext = "true">
แก้ไขเป็น
<เส้นทางบริบท = "" docBase = "/" debug = "0"
โหลดใหม่ได้ = "true" crossContext = "true">
ความเข้าใจของฉันเกี่ยวกับเรื่องนี้ก็คือ jsp ในไดเร็กทอรีรูทของ tomcat ควรใช้เป็นโฮสต์เสมือน
2. ตั้งค่าพอร์ตการฟัง Tomcat และค้นหาเนื้อหาต่อไปนี้:
<ตัวเชื่อมต่อ className="org.apache.coyote.tomcat4.CoyoteConnector"
พอร์ต = "8080" minProcessors = "5" maxProcessors = "75"
EnableLookups = "true" เปลี่ยนเส้นทาง = "8443"
ยอมรับCount = "100" debug = "0" การเชื่อมต่อหมดเวลา = "0"
useURIValidationHack = "false" DisableUploadTimeout = "true" />
พอร์ตเริ่มต้นคือ 8080 แต่ทุกคนรู้เรื่องนี้ เป็นการดีที่สุดที่จะแก้ไข สมมติว่ามีการแก้ไขเป็น: 8123 จะเป็นดังนี้:
<ตัวเชื่อมต่อ className="org.apache.coyote.tomcat4.CoyoteConnector"
พอร์ต = "8123" minProcessors = "5" maxProcessors = "75"
EnableLookups = "true" เปลี่ยนเส้นทาง = "8443"
ยอมรับCount = "100" debug = "0" การเชื่อมต่อหมดเวลา = "0"
useURIValidationHack = "false" DisableUploadTimeout = "true" />
3. ค้นหาพอร์ต 8009 ต่อไปนี้ สิ่งนี้สำคัญมาก Tomcat และ apache สื่อสารกันผ่าน 8009 หากส่วนต่อไปนี้ถูกใส่ความคิดเห็นโดย <!----> อย่าลืมลบ <!----> .
<!-- กำหนดตัวเชื่อมต่อ Coyote/JK2 AJP 1.3 บนพอร์ต 8009 -->
<ตัวเชื่อมต่อ className="org.apache.coyote.tomcat4.CoyoteConnector"
พอร์ต = "8009" minProcessors = "5" maxProcessors = "75"
EnableLookups = "true" เปลี่ยนเส้นทาง = "8443"
ยอมรับCount = "10" debug = "0" การเชื่อมต่อหมดเวลา = "0"
useURIValidationHack = "เท็จ"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
ขั้นตอนที่ 5: กำหนดค่าไฟล์ conf/web.xml ของ Tomcat:
คล้ายกับการกำหนดค่าหน้าข้อผิดพลาด 404 ภายใต้ Apache ให้เพิ่มเนื้อหาต่อไปนี้ก่อนบรรทัด </web-app> สุดท้าย:
<หน้าข้อผิดพลาด>
<รหัสข้อผิดพลาด>404</รหัสข้อผิดพลาด>
<location>/error/noFile.htm</location>
</หน้าข้อผิดพลาด>
<หน้าข้อผิดพลาด>
<ประเภทข้อยกเว้น>java.lang.NullPointerException</ประเภทข้อยกเว้น>
<ตำแหน่ง>/ข้อผิดพลาด/error.jsp</ตำแหน่ง>
</หน้าข้อผิดพลาด>
<error-page></error-page> หน้าแรกคือหน้าที่มุ่งเน้นข้อผิดพลาดของหน้า 404 ที่ไม่พบ jsp ดังนั้นเมื่อมีข้อผิดพลาด 404 เกิดขึ้น
หน้าเว็บถูกส่งไปยัง /error/noFile.htm คุณยังสามารถใช้วิธีที่คล้ายกันในการเพิ่มรหัสข้อผิดพลาดอื่นๆ ลงในเพจได้
รายการที่อยู่ระหว่าง <error-page></error-page> ที่สองจะถูกส่งไปยังหน้าข้อผิดพลาด /error/error.jsp เมื่อ java.lang.NullPointerException เกิดขึ้นบนหน้าเว็บ jsp จากนั้นคุณจะต้องเพิ่มเนื้อหาต่อไปนี้ลงในหน้า jsp:
<%@ หน้า errorPage="/error/error.jsp" %>
โปรแกรมหน้าข้อผิดพลาด error.jsp ทั่วไปจะถูกเขียนดังนี้:
<%@ หน้า contentType="text/html;charset=GB2312"%>
<%@ หน้า isErrorPage="true"%>
<html>
<head><title>หน้าเกิดข้อผิดพลาด</title></head>
<body>
มีข้อผิดพลาดเกิดขึ้น:</p> ข้อความแสดงข้อผิดพลาด: <%= ข้อยกเว้น.getMessage() %><br>
Stack Trace คือ: <pre><font color="red"><%
java.io.CharArrayWriter cw = java.io.CharArrayWriter ใหม่ ();
java.io.PrintWriter pw = ใหม่ java.io.PrintWriter(cw,true);
ข้อยกเว้น printStackTrace (pw);
out.println(cw.toString());
%></font></pre>
</ร่างกาย>
</html>
เมื่อ NullPointerException เกิดขึ้น Tomcat จะนำเข้าหน้าเว็บไปที่ error.jsp และพิมพ์ข้อความแสดงข้อผิดพลาดออกมา
ขั้นตอนที่ห้ามีไว้สำหรับการพิจารณาด้านความปลอดภัยเป็นหลัก หากไม่พบหน้าเว็บ ข้อผิดพลาด 404 หรือข้อผิดพลาดของโปรแกรม jsp จะเกิดขึ้นบนไคลเอนต์
ข้อมูลที่คล้ายกับรายการต่อไปนี้จะถูกแสดงรายการ (โดยการใช้ Tomcat เป็นตัวอย่าง เรซินจะคล้ายกัน):
สถานะ HTTP 404 - /sdags.jsp
---------------------------------------------- ------ -----------------------------------------
พิมพ์ข้อความรายงานสถานะ
/sdags
คำอธิบายjsp
ทรัพยากรที่ร้องขอ (/sdags.jsp) ไม่พร้อมใช้งาน
-------------------------------------------------- -------------------------------------------------- -----------------------------------
Apache Tomcat/5.0.19
ด้วยวิธีนี้ ผู้อื่นจะมองเห็นเวอร์ชันเซิร์ฟเวอร์ได้ หากการกำหนดค่าในขั้นตอนที่ 5 เสร็จสมบูรณ์ สถานการณ์นี้จะไม่เกิดขึ้น
ขั้นตอนที่ 6: กำหนดค่าไฟล์ httpd.conf
วิธีนี้จะตั้งค่าไดเร็กทอรีรากของ Tomcat และ apache ให้เป็นไดเร็กทอรีเดียวกัน แต่ต้องจำกัดการเข้าถึงของลูกค้าไปยังไฟล์บางไฟล์ในไดเร็กทอรี เช่น การบันทึกคลาส
web-inf ให้เพิ่มโค้ดต่อไปนี้ใต้ httpd.conf:
#ปฏิเสธการเข้าถึง WEB-INF
<ไดเรกทอรี ~ "/WEB-INF/">
คำสั่งอนุญาต, ปฏิเสธ
ปฏิเสธจากทั้งหมด
</ไดเร็กทอรี>
ด้วยวิธีนี้ เมื่อพยายามจำ http://localhost/web-inf/ apache จะปฏิเสธ
ณ จุดนี้ การรวม Tomcat และ Apache เสร็จสมบูรณ์
วางหน้าเว็บ jsp ไว้ใต้ d:serverwww ตัวอย่างเช่น:
<html>
<h1>ทดสอบ JSP<hr>
<%out.println("Hello World!");%>
</html>
บันทึกเป็น index.jsp ป้อน http://localhost:8123/index.jsp ใน IE
ถ้ามันปรากฏขึ้น
สวัสดีชาวโลก!
เพิ่งอธิบายว่า Tomcat ทำงานตามปกติ ให้ป้อน http://localhost/index.jsp ใน IE หากปรากฏขึ้นด้วย
สวัสดีชาวโลก!
ขอแสดงความยินดี การรวมระบบสำเร็จแล้ว คุณได้ก้าวไปอีกขั้นบนเส้นทางที่ยาวนานและยากลำบากของ jsp~
! หรือบางประเด็นที่ถือว่าไม่ดีแต่โดยรวมก็ถือว่าโอเค
มันเป็นปัญหาใหญ่ ฉันประสบความสำเร็จในการบูรณาการโดยใช้วิธีนี้ซ้ำแล้วซ้ำอีก หากคุณมีคำถามใด ๆ คุณสามารถติดต่อฉันได้โดยตรง
moonsbird: mail:[email protected]
http://blog.csdn.net/jangill/archive/2007/03/18/1532857.aspx