CATALINA_HOME กับ CATALINA_BASE


11

ฉันไม่สามารถหาคำตอบที่ชัดเจนว่าทำไมอูบุนตูจะตั้งค่าตัวแปรสภาพแวดล้อมทำให้มันแตกต่างจากCATALINA_BASE CATALINA_HOMEผมพบว่าเอกสารนี้ซึ่งแสดงให้เห็นว่าไม่ได้ตั้งค่าจะทำให้มันเทียบเท่ากับCATALINA_BASE CATALINA_HOMEเอกสารดังกล่าวยังแนะนำว่าCATALINA_BASEควรทำการตั้งค่าเพื่อให้มีหลายอินสแตนซ์

อย่างไรก็ตามฉันดูเหมือนจะไม่สามารถพบสิ่งใดที่อธิบายสิ่งนี้ สมมุติว่าการใช้งานซิงเกิ้ลCATALINA_HOMEนั้นดีมานาน แต่อูบุนตูก็เปลี่ยนไป

ผมพบว่าคำถามนี้กับคำตอบที่ให้แสงสว่างใน AskUbuntu แต่มีไม่มากโดยเฉพาะเมื่อเทียบกับCATALINA_HOME CATALINA_BASEคำถามนั้นพูดถึงพารามิเตอร์ "appBase" ซึ่งมีการบันทึกไว้ในเอกสารคู่มือ Tomcat6 สำหรับโฮสต์คอนเทนเนอร์ในไฟล์กำหนดค่า

นี่คือคำถาม: ทำไมตัวแปรทั้งสองนี้จึงถูกแยกออกจากกัน พวกเขาควรจะแยกเมื่อใด สิ่งนี้ทำให้ผู้ดูแลระบบทำอะไร คุณทำอะไรในแต่ละไดเรกทอรี เมื่อใดที่ตัวแปรทั้งสองนี้ควรจะเหมือนกัน? ASF แนะนำอะไรสำหรับการฝึกแบบมาตรฐาน?


ที่คล้ายกัน: askubuntu.com/q/43226/256002
Basil Bourque

คำตอบ:


12

ทำไมตัวแปรทั้งสองนี้จึงถูกแยกออกจากกัน?

catalina.home ชี้ไปที่ตำแหน่งของข้อมูลทั่วไป
catalina.base ชี้ไปที่ไดเรกทอรีที่มีข้อมูลเฉพาะของอินสแตนซ์ทั้งหมดอยู่

คุณมีบ้าน 1 หลังและมีฐานได้มากกว่า 1 ฐาน

พวกเขาควรจะแยกเมื่อใด เมื่อใดที่ตัวแปรทั้งสองนี้ควรจะเหมือนกัน?

หากคุณมี Tomcat 1 ตัวคุณสามารถตั้งค่าเป็นค่าเดียวกัน แต่แนวทางปฏิบัติที่ดีจะแนะนำให้คุณวางแผนล่วงหน้าและแยกพวกมันออกจากกัน: คุณไม่มีทางรู้ว่าคุณต้องการ Tomcat มากกว่าหนึ่งตัวหรือไม่ Ubuntu เริ่มคิดตามนี้เนื่องจากมันมีเหตุผลมากกว่า: ทำให้การรัน 2+ tomcats ง่ายขึ้น แต่ไม่ได้ปิดการใช้งาน 1 tomcat ซึ่งการตั้งค่าทั้งสองเป็นค่าเดียวกันจะทำให้ทุกคนต้องแก้ไขค่าฐาน ทำให้รู้สึกมากขึ้นเพื่อให้พวกเขาแตกต่างกัน

สิ่งนี้ทำให้ผู้ดูแลระบบทำอะไร

อนุญาตให้มีมากกว่า 1 Tomcat ให้ทำงานพร้อมกันที่แต่ละคราวของ Tomcat สามารถมีแอพของตัวเองได้

คุณทำอะไรในแต่ละไดเรกทอรี

หน้าแรกมีถังขยะ
ฐานประกอบด้วย conf, บันทึก, webapps, งานและอุณหภูมิ 1 สำหรับทุก ๆ คราว


4

CATALINA_HOME VS CATALINA_BASE

CATALINA_HOMEหากคุณกำลังใช้หลายกรณีแล้วคุณต้องตัวแปรทั้งสองเป็นอย่างอื่นเท่านั้น

ในคำอื่น ๆ : CATALINA_HOMEจำเป็นและCATALINA_BASEเป็นตัวเลือก

CATALINA_HOME แสดงถึงรากของการติดตั้ง Tomcat ของคุณ

อาจมีการกำหนดค่า Tomcat สำหรับหลายอินสแตนซ์โดยกำหนด$CATALINA_BASEสำหรับแต่ละอินสแตนซ์ ถ้ามีหลายกรณีที่ยังไม่ได้กำหนดค่าเป็นเช่นเดียวกับ$CATALINA_BASE$CATALINA_HOME

ดู: Apache Tomcat 7 - บทนำ

ทำงานแยกจากกันCATALINA_HOMEและCATALINA_BASEมีการบันทึกไว้ใน RUNNING.txt ซึ่งพูดว่า:

CATALINA_HOMEและCATALINA_BASEสภาพแวดล้อมตัวแปรที่ใช้ในการระบุตำแหน่งของ Apache Tomcat และสถานที่ของการตั้งค่าใช้งานตามลำดับ

คุณไม่สามารถกำหนดค่าCATALINA_HOMEและCATALINA_BASEตัวแปรใน setenvสคริปต์ได้เนื่องจากใช้เพื่อค้นหาไฟล์นั้น

ตัวอย่างเช่น:

(4.1) Tomcat สามารถเริ่มต้นได้โดยการดำเนินการตามคำสั่งอย่างใดอย่างหนึ่งต่อไปนี้:

  %CATALINA_HOME%\bin\startup.bat         (Windows)

  $CATALINA_HOME/bin/startup.sh           (Unix)

หรือ

  %CATALINA_HOME%\bin\catalina.bat start  (Windows)

  $CATALINA_HOME/bin/catalina.sh start    (Unix)

อินสแตนซ์ Tomcat หลายรายการ

ในหลาย ๆ สถานการณ์มันเป็นที่พึงปรารถนาที่จะมีสำเนาเดียวของการแจกแจงแบบไบนารีของ Tomcat ที่ใช้ร่วมกันระหว่างผู้ใช้หลายคนบนเซิร์ฟเวอร์เดียวกัน เพื่อให้เป็นไปได้คุณสามารถตั้งค่าCATALINA_BASE ตัวแปรสภาพแวดล้อมเป็นไดเรกทอรีที่มีไฟล์สำหรับอินสแตนซ์ Tomcat 'ส่วนตัว' ของคุณ

เมื่อรันด้วยการแยกCATALINA_HOMEและCATALINA_BASEไฟล์และไดเร็กทอรีจะถูกแยกดังนี้:

ในCATALINA_BASE:

  • bin - เฉพาะ: setenv.sh (* nix) หรือ setenv.bat (Windows), tomcat-juli.jar
  • conf - ไฟล์การกำหนดค่าเซิร์ฟเวอร์ (รวมถึง server.xml)
  • lib - ห้องสมุดและชั้นเรียนตามที่อธิบายไว้ด้านล่าง
  • logs - บันทึกและไฟล์ที่ส่งออก
  • webapps - โหลดแอปพลิเคชันเว็บโดยอัตโนมัติ
  • work - ไดเรกทอรีทำงานชั่วคราวสำหรับเว็บแอปพลิเคชัน
  • temp - ไดเร็กทอรีที่ใช้โดย JVM สำหรับไฟล์ชั่วคราว>

ในCATALINA_HOME:

  • bin - สคริปต์เริ่มต้นและปิดเครื่อง
  • lib - ห้องสมุดและชั้นเรียนตามที่อธิบายไว้ด้านล่าง
  • endorsed- ไลบรารีที่แทนที่มาตรฐาน "มาตรฐานที่รับรอง" โดยค่าเริ่มต้นมันขาด

วิธีตรวจสอบ

วิธีที่ง่ายที่สุดในการตรวจสอบสิ่งที่คุณมีCATALINA_BASEและCATALINA_HOMEกำลังทำงานอยู่startup.shเช่น:

$ /usr/share/tomcat7/bin/startup.sh
Using CATALINA_BASE:   /usr/share/tomcat7
Using CATALINA_HOME:   /usr/share/tomcat7

นอกจากนี้คุณยังสามารถตรวจสอบไฟล์ Tomcat ที่ติดตั้งโดยdpkgเครื่องมือดังต่อไปนี้ (Debian / Ubuntu):

dpkg -L tomcat7-common

3

นอกจากจะเป็นวิธีที่ดีที่สุดในการรันสองอินสแตนซ์ Tomcat แล้วยังทำให้การอัพเดตง่ายขึ้น

ฉันใช้การตั้งค่านี้

<!-- language: bash -->

/opt/apache-tomcat-7.0-32
/opt/apache-tomcat-7.0.39
/opt/apache-tomcat-7       (simbolic link to apache-tomcat-7.0.32)

CATALINA_HOME = / opt / Apache Tomcat--7

/srv/user_deploys/tomcat_product_a
/srv/user_deploys/tomcat_product_b

CATALINA_BASE ชี้ไปที่หนึ่งหรืออีกไดเรกทอรีใช้งาน

ไบนารีพื้นฐานและห้องสมุดอยู่ใน/opt/สำเนาเพียงserver.xml, web.xml(และบางไฟล์อื่น ๆ อ่านเอกสารโปรด) และสร้างไดเรกทอรี bin, บันทึก, webapps อุณหภูมิการทำงาน (RTLM, L เป็น lovelly โปรด)

คุณสามารถอัปเดตไบนารี Tomcat ได้โดยแก้ไขไฟล์CATALINA_HOME$ CATALINA_BASE / bin / setenv.sh สำหรับแต่ละอินสแตนซ์หรือคุณสามารถแก้ไขลิงก์สัญลักษณ์อัปเดตไบนารี "ทั่วโลก"

ปรับปรุงได้ง่ายกว่าแม้ว่าคุณจะมีเพียงหนึ่งอินสแตนซ์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.