การติดตั้ง Tomcat 7.0

Hardware ที่ใช้ในการติดตั้ง Tocmat ในที่นี้เป็นคอมพิวเตอร์โน้ตบุค CPU Intel Core i5 – 2520M 2.5 GHz หน่วยความจำ 8 GB ฮาร์ดิสก์ขนาด 500 GB ไม่มีการ์ดจอภายนอก ใช้ชิป Intel Graphic 3000 ระบบปฏิบัติการเป็น windows 7 รุ่น Professional 64 bit service pack 1               

Tomcat หรือ เรียกชื่อเต็มคือ  Apache Tomcat เป็น  HTTP Server ที่มีความสามารถนำภาษาจาวามาใช้งานได้  สามารถใช้เทคโนโลยีของภาษาจาวาที่เรียกว่า Java Servlet  และ Java Server Page (JSP)  Tomcat เป็นโปรแกรม Open-Source  อยู่ภายใต้การดูแลของ Apache Software Foundation  (ซึ่งเป็นผู้สร้าง Apache HTTP Server ที่เป็นที่นิยมใช้กันอย่างแพร่หลาย)  สามารถอ่านรายละเอียดของ Tomcat ได้ที่  http://tomcat.apache.org  โดยเลือกหัวข้อ “ Documentation”  และเลือก “Tomcat 7.0” ขั้นตอนการติดตั้ง Tomcat เรียงลำดับดังนี้

Download  Tomcat

ไปที่ เว็บไซต์  http://tomcat.apache.org   เลือกหัวข้อ  “Download” >> “Tomcat 7.0”>> ”7.0.xx”>>“Binary Distributions”>>“Core”>>“Zip”>> “apache-tomcat-7.0.xx.zip”


จากภาพเป็นการเข้าถึงเว็บไซต์เมื่อวันที่ 2 มกราคม พ.ศ. 2555  Tomcatจะเป็นรุ่น  7.0.23  

ดาวน์โหลด apache-tomcat-7.0.xx.zip มาเก็บไว้ที่เครื่อง   แนะนำให้เลือกที่เป็น zip file ไม่เลือกตัวที่เป็น installer เพราะ เราสามารถแตก zip file เก็บไว้ในโฟลเดอร์ใดโฟลเดอร์หนึ่ง เมื่อไม่ต้องการใช้งานหรือไม่ต้องการศึกษาอีกต่อไป ก็สามารถลบทิ้งได้เลยโดยไม่ต้องทำการ  uninstall  ซึ่งต้องไปเกี่ยวข้องกับ registry ของวินโดว์ให้มันวุ่นวายไปเปล่า ๆ

ติดตั้ง Tomcat

สร้างโฟลเดอร์ ชื่อ WebProject  ไว้ที่ไดรว์ใดก็ได้ ( ในที่นี้คือ c:\WebProject) แตกไฟล์ apache-tomcat-7.0.xx.zip ในโฟลเดอร์นี้  ไฟล์ต่าง ๆ ของ Tomcat จะอยู่ภายใต้  “c:\WebProject\apache-tomcat-7.0.23”  เพื่อความง่ายในการพิมพ์และอ้างถึง จึงเปลี่ยนขื่อโฟลเดอร์ให้สั้นลงดังนี้ “c:\WebProject\tomcat7” ใส่เลข 7 หลัง tomcat เพื่อให้รู้ว่าเวอร์ชันที่ใช้อยู่นี้คือรุ่นที่ 7 ในอนาคตเพื่อจะติดตั้งเวอร์ชัน 8 หรือ 9  หรือจะติดตั้งเวอร์ชันย้อนหลังก็สามารถที่จะใส่ไว้ในโฟลเดอร์เดียวกันนี้ได้

กำหนดสภาพแวดล้อมให้่Tomcat Server

  • จัดการให้ Tomcat รู้จักกับโปรแกรม Java  โดยกำหนดค่า Environment variable ชื่อ JAVA_HOME
    1. ทดสอบว่าในระบบปฏิบัติการวินโดว์ของเรามี ตัวแปรชื่อ JAVA_HOME หรือยัง โดยไปที่ CMD Shell ดังนี้

      กดปุ่ม windows (ปุ่มที่มีรูป logo เป้น windows) + ปุ่ม R  พร้อม ๆ กัน  พิมพ์ “cmd” (เป็นคำย่อของ Command)  แล้วคลิก OK

      ที่หน้าต่าง  CMD shell  ให้พิมพ์คำว่า  set  JAVA_HOME

      ถ้าผลลัพธ์ออกมาเป็น Environment variable JAVA_HOME  not defined แสดงว่าในเครื่องคอมพิวเตอร์ของเรายังไม่มีตัวแปรชื่อ JAVA_HOME ในระบบ

    2. การตั้งค่าตัวแปร JAVA_HOME  ให้คลิกเมาส์ปุ่มขวาที่ไอคอน Computer ที่อยู่บน desktop  คลิกที่ Properties

    3. จะมีหน้าต่าง ที่มีคอลัมน์ด้านซ้ายมือเป็น Control Panel Home  ให้คลิกที่ Advanced system setting

      ที่หน้าต่าง System Properties คลิกที่ปุ่ม “Advanced” >> “Environment Variable..”

      ที่หน้าต่าง Environment Variables  เลือก System variables  คลิกที่ปุ่ม New…

      จะมีหน้าต่าง New System Variable   ในช่องชื่อตัวแปร Variable name ให้ตั้งชื่อเป็น JAVA_HOME  ในช่องVariable value ให้พิมพ์ตำแหน่งที่เก็บโปรแกรมภาษาจาวา ให้สอดคล้องกับตำแหน่งในเครื่องของเราเอง ในเครื่องของผู้เขียน โปรแกรมจาวาจะอยู่ที่ C:\Program Files\Java\jdk1.7.0.01

      ควรใช้วิธี copy และ paste ชื่อโฟลเดอร์ เพื่อป้องกันความผิดพลาดที่เกิดจากการพิมพ์  (โดยใช้ exploer คลิกไปที่ program Files >> Java >> jdk1.7.0_01 >>bin คลิกขวาที่โฟลเดอร์ bin )
    4. ทดสอบดูว่า ระบบของเรามีชื่อตัวแปรที่ชื่อว่า JAVA_HOME หรือยัง  โดยเข้าไปที่ CMD Shell อีกครั้ง (ถ้าหน้าต่าง CMD Shell เดิมยังไม่ปิด ให้ปิด เสียก่อน แล้วเข้าไปที่ CMD Shell ใหม่อีกครั้ง หรือ Restart CMD Shell)

  • set ตัวแปร CATALINA_HOME เพื่อให้วินโดว์และโปรแกรมอื่น ๆ รู้ว่า เก็บ Tomcat Server ไว้ที่ใด
    Tomcatรุ่นก่อน เวอร์ชัน 7 จะต้อง set ตัวแปร CATALINA_HOME ด้วย แต่ในรุ่น 7 นี้ไม่จำเป็นต้องทำ

กำหนดค่าเริ่มต้นให้แก่ Tomcat (Server  Configuration)

เมื่อเข้าไปดูที่โฟลเดอร์ tomcat7 จะพบว่ามีโฟลเดอร์ย่อย ดังนี้


โฟลเดอร์ ย่อยต่าง ๆ  สำหรับเก็บไฟล์แต่ละชนิดดังนี้

    • bin  เป็นที่เก็บ binary executable files ต่าง ๆ
    • conf  เป็นที่เก็บไฟล์กำหนดค่าต่าง ๆ (configuration files) ของ Tomcat  เช่นกำหนด port ที่ใช้ในการเชื่อมต่อ  กำหนดโฟลเดอร์ที่เก็บ web application  กำหนด password
    • lib เก็บไฟล์ชนิด class และ jar (Java Archive)
    • log เก็บ log file ที่รวบรวมข้อผิดพลาดและคำเตือนต่าง ๆ ระหว่างใช้งาน server
    • temp ใช้เก็บไฟล์ชั่วคราว (temporary file)
    • webapps  เป็นโฟลเดอร์ที่เก็บ  web application ต่าง ๆ  ไฟล์ hmtl และ jsp จะถูกเก็บอยู่ภายใต้โฟลเดอร์นี้
    • work เป็นโฟลเดอร์ทำหน้าที่คล้ายกระดาษทด ใช้เก็บไฟล์ชั่วคราวต่าง ๆ ขณะที่ server ทำงาน   ไฟล์ชั่วคราวจะถูกลบทิ้งไป เมื่อ server ประมวลผลงานนั้นเสร็จสิ้น

ไฟล์ที่เราจะเข้าไป config หรือกำหนดค่า จะอยู่ภายใต้โฟลเดอร์ conf  มีอยู่ 3 ไฟล์ คือ  server.xml, web.xml และ context.xml

การกำหนดค่าให้ server.xml

 ใช้ text editor อาจจะเป็น notepad หรือ editplus หรือ notepad++  หรือ textPad  เปิดไฟล์ server.xml

กรณีที่ต้องการแก้ไข TCP port : เราสามารถเปลี่ยนตัวเลขพอร์ต ที่ใข้ในการเชื่อมต่อกับ server เป็นเลขอื่น โดยปกติโปรแกรมจะเซตค่าไว้ที่พอร์ต 8080  เราอาจเปลี่ยนเป็น พอร์ต 80 ถ้า web server ของเรามีแค่ tomcat เพียง server เดียว ปกติพอร์ต 80 นี้ใช้กับ Apache web server  หรือ IIS ของไมโครซอฟต์ ซึ่งจะเป็น  web server หลัก
ตัวเลขพอร์ต จะต้องไม่ไปชนกับพอร์ตของอุปกรณ์อื่น ๆ ยึดครองใช้อยู่ เพื่อความปลอดภัย เรามักจะใช้เลขพอร์ตที่มีค่าระหว่าง 1024 ถึง 65535 ซึ่งรับประกันได้ว่าไม่ไปชนกับพอร์ตของอุปกรณ์ใด (ในการติดตั้งครั้งนี้ เราจะยังคงใช้พอร์ต 8080 ตามที่ค่าที่กำหนดไว้ เพราะจะติดตั้ง Apache web server ซึ่งใช้พอร์ต 80 ด้วย จึงไม่ต้องแก้ไขสิ่งใดในไฟล์ server.xml นี้)



กรณีที่ต้องการเปลี่ยน  web application directory:

To do another time

กำหนดค่าให้ web.xml 

กรณีต้องการให้ แสดง รายการของ directory เป็นแบบ list  ถ้าโฟลเดอร์นั้นไม่มี welcome fie (index.html, index.jsp) server จะแสดงชื่อไฟล์ต่าง ๆ ที่มีอยู่ในไดเรกทอรีนั้น  แต่มีคำเตือนเขียนไว้ใน web.xml ว่าการเปิดใช้งานกรณีนี้จะทำให้ server ทำงานช้าลงและสิ้นเปลืองทรัพยากรของระบบ

เข้าไปเปลี่ยนที่ “listings”  เปลี่ยนค่าจาก false เป็น true

กำหนดค่า context.xml

ในระหว่างการศึกษาหรือทดลอง เราอาจต้องเปลี่ยนแปลงค่าใน  Web.xml   เช่น เพิ่มโปรแกรม  class file หรือเพิ่ม servlet เข้าไปในระบบ การทำเช่นนี้แต่ละครั้งจะต้องให้ Tomcat server รับทราบการเปลี่ยนแปลง ทำได้โดย restart server ใหม่ทุกครั้งที่มีการเปลี่ยนแปลง ทำให้ไม่สะดวกในการทำงาน  เราจึงกำหนดให้ Tomcat รับรู้การเปลี่ยนแปลงโดยอัตโนมัติและให้ทำการ reload ตัวมันเอง โดยที่เราไม่ต้องไป restart ใหม่  โดยการแก้ไขคุณสมบัติ reloadable จาก false เป็น true


Start Tocat Server

  1. เปิดใช้งานCMD shell (ใช้ปุ่มวินโดว์ + R  แล้วพิมพ์คำว่า cmd  และกด Enter)  พิมพ์คำสั่งต่อไปนี้
  2.  เปลี่ยนตำแหน่งโฟลเดอร์ให้มาอยู่ที่ root directory ของไดรว์ C โดจใช้คำสั่ง "cd\"
    "C:\>cd  WebProject\Tomcat7\bin"    ไปที่โฟลเดอร์ bin ซึ่งเก็บ executable file ของ Tomcat
    "C:\>WebProject\Tomcat7\bin\startup"   เริ่มต้น start เซิร์ฟเวอร์

    จะมีหน้าต่างชื่อ Tomcat  แสดงให้เห็นว่า server กำลังถูกเปิดใช้งาน  ในหน้าต่างจะมีข้อความแจ้งอยู่หลายข้อความ ที่น่าสนใจคือ จะบอกตำแหน่งที่เก็บ web application directory  บอกพอร์ตที่ใช้ในการเชื่อมต่อกับ server และบอกเวลาที่ใช้ในกา start server

    หมายเหตุ

    ในการ start tomcat  ต้องพิมพ์คำสั่งใน CMD  shell หลายขั้นตอน สามารถนำมาเขียนเป็น  batch file วางไว้ที่หน้า desk top เพื่อสะดวกในการทำงาน  คำสั่งต่าง ๆ ที่พิมพ์ลงใน text editor มีดังนี้

    จากนั้น save เก็บไว้ในชื่อ StartTomcat.bat  วางไว้บน desktop  เมื่อต้องการ start server  ก็เพียง double click ที่ icon ของ StartTomcat

  3. เปิด browser จะเป็น  IE หรือ FireFox หรือ Chrome หรืออะไรอื่นก็ได้ พิมพ์ URL เป็น http://localhost:8080

                จะได้หน้าจอมีลักษณะดับรูป

คำว่า localhost  หมายถึง ชื่อ server ที่ติดตั้งอยู่ในเครื่องคอมพิวเตอร์ของเรา มีค่า IP address คือ 127.0.0.1  และเราใช้ browser ที่มีอยู่ในเครื่องนี้ ติดต่อกับ server  เรียกว่า local loop-back testing  ถ้าเราติดตั้ง tomcat ที่คอมพิวเตอร์เครื่องอื่น ผ่านเครือข่ายอินเตอร์เน็ต ต้องเปลี่ยน IP address  หรือ DNS (Domain Name Server— เช่น www.abc.com) ให้สอดคล้องกับเครื่องคอมพิวเตอร์นั้น ๆ  และต้องใส่เลขพอร์ตที่จะติดต่อด้วย เพราะถ้าไม่ใส่จะถือว่าพอร์ตนั้นเป็นค่า default  คือ พอร์ต 80 รูปแบบการเชื่อมต่อกับ Tomcat serverโดยทั่วไปเขียนได้เป็น http://HostnameOrIPAddress:PortNumber

ปิดการทำงาน Tomcat (Shutdown server)

ทำได้ 2 วิธีดังนี้

    • วิธีที่ 1 ไปที่ Command shell (ใช้ปุ่มวินโดว์ + R  แล้วพิมพ์คำว่า cmd  และกด Enter)  พิมพ์คำสั่งต่อไปนี้
    • C:\.....\ cd \

      C:> cd WebProject\Tomcat7\bin

      C:>WebProject\Tomcat7\bin\shutdown

    • วิธีที่ 2 เปิดหน้าต่าง Tomcat  กดปุ่ม Control + ปุ่ม C   (หรือ กด Control + break) server จะปิดการทำงาน ทันที

ไม่ควรคลิกที่ปุ่มกากบาทที่อยู่มุมขวาบนของหน้าต่าง Tomcat  หรือใช้คำสั่ง “Close” ซึ่งเป็นการ kill process  ทำให้ Tomcat สิ้นสุดการทำงานกลางคัน

สร้างเว็บเพจ HTML เพื่อทดลองใช้กับ Tomcat( Develop and Deploy a Web Application)

เริ่มต้นด้วยการตั้งชื่อ web application ที่เราจะสร้างขึ้น  เพราะเป็นครั้งแรกที่เพิ่งรู้จัก จึงทักทายกันก่อน  จะเรียกชื่อ web application นี้ว่า “greeting”

  • สร้างโฟลเดอร์ greeting อยู่ภายใต้โฟลเดอร์ webapps   เป็น  context root หรือ document base directory ของเว็บแอพพลิเคชันของเรา  จะเก็บไฟล์นามสกุล html, jsp, css, images หรือ scripts ต่าง ๆ ที่ผู้ใช้งานผ่านอินเตอร์เน็ตสามารถเข้าถึงได้
  • สร้างโฟลเดอร์ย่อย ชื่อ WEB-INF  (ชื่อเป็นอักษรตัวใหญ่ทั้งหมด ไม่มีช่องว่าง ตรงกลางนั้นเป็น dash ไม่ใช่ underscore) เป็นโฟลเดอร์ที่เก็บ configuration files ต่าง ๆ เช่น web.xml  ผู้ใช้งานผ่านอินเทอร์เน็ตไม่สามารถมองเห็นโฟลเดอร์นี้
  • สร้างโฟลเดอร์ย่อย ชื่อ classes  อยู่ใต้โฟลเดอร์ WEB-INF อีกที(เป็นอักษรตัวเล็กทั้งหมด และเป็นพหูพจน์)  ใช้เก็บ class file หรือ servlet ที่ใช้กับ เว็บ แอพพลิเคชันนี้  โครงสร้างของโฟลเดอร์จะมีลักษณะดังภาพ
  • เขียน Greeting page  แล้ว save เก็บไว้ภายใต้โฟลเดอร์ greeting  ชื่อ hello.html  ข้อความที่พิมพ์ลงใน text editor มีดังนี้
  • <html>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <head><title> Welcome to my Hompage </title></head>
    <body>
          <h2> Hello, This is my first  Hompage </h2>
          <h2> ทดสอบภาษาไทย </h2>
          <h3> เป็นมนุษย์ สุดประเสริฐ เลิศคุณค่า <br/>
          กว่าบรรดา ฝูงสัตว์ เดรัจฉาน<br/>
          จงฝ่าฟัน พัฒนา วิชาการ<br/>
          อย่าล้างผลาญ ฤาเข่นฆ่า บีฑาใคร<br/>
          ไม่ถือโทษ โกรธแช่งซัด ฮึดฮัดด่า<br/>
          หัดอภัย เหมือนกีฬา อัชฌาศัย<br/>
          ปฎิบัติ ประพฤติกฏ กำหนดใจ<br/>
          พูดจาให้ จ๊ะๆ จ๋า น่าฟังเอย
          </h3>
    </body>
    </html>

  • เปิด browser พิมพ์  http://localhost:8080/greeting/hello.html  จะได้หน้าตาของเว็บเพจ ที่เราเขียนดังนี้

                ต้องระวังในการพิมพ์ URL   ถ้าพิมพ์ http://www.localhost:8080/greeting/hello.html  จะไม่ถูกต้อง ต้องไม่มี www นำหน้า localhost
ถ้าพิมพ์เป็น http://localhost:8080/greeting/  จะแสดงชื่อไฟล์ hello.html ให้เราคลิกอีกครั้ง  ตามที่เรากำหนดค่าไว้ใน web.xml

สร้างเว็บเพจ JSP เพื่อทดลองใช้กับ Tomcat

  • พิมพ์ข้อความต่อไปนี้ โดยใช้ text editor แล้ว save เก็บไว้ในโฟลเดอร์ greeting  ให้ชื่อว่า hello.jsp
<html>
<%@ page contentType="text/html; charset=UTF-8" %>
<head> <title> my First JSP Homepage </title> </head>
<body>
      <h1> Homepage created with JSP </h1>
      <%  out.println("Hello, World");  %>
      <br/>
      <% out.println("สวัสดี ชาวโลก"); %>
</body>
</html>

  • เปิด browser พิมพ์  http://localhost:8080/greeting/hello.jsp  จะได้เห็นเว็บเพจ ที่เราเขียนดังนี้

จะเห็นว่าในไฟล์ hello.jsp จะมี code ของภาษาจาวา แฝงอยู่ใน code ของ Html  โดยจะอยู่ระหว่างเครื่องหมาย <% และ %>  ข้อความที่อยู่ระหว่าง  <% และ %> นี้เรียกว่า scriplet  ตัวอย่างเช่น

<%@ page contentType="text/html; charset=UTF-8" %>   เป็นการบอกว่าเอกสารนี้ encoding ภาษาเป็นรหัส UTF-8

<%  out.println("Hello, World");  %>และ<% out.println("สวัสดี ชาวโลก"); %> เป็นการใช้เมธอด prinln ของ object  “out”  พิมพ์ข้อความ”Hello, World” และ “สวัสดี ชาวโลก” บนเว็บเพจ โดยเซิร์ฟเวอร์จะส่งข้อความนี้ผ่านไปยัง Browser  เพื่อแสดงผลให้เราเห็นบนจอภาพ<

ข้อพึงระวัง

  • Tomcat server นั้นมีคุณสมบัติเป็นcase sensitive  หมายถึงอักษรตัวใหญ่และตัวเล็กจะมองเห็นแตกต่างกัน เช่น "http://localhost:8080/testServle" กับ "http://localhost:8080/TestServlet"  จะมองเห็นแตกต่างกัน เพราะ test กับ Test ถึงแม้จะต่างกันเพียงเป็นตัวอักษรตัวใหญ่และตัวเล็ก server จะมองเห็นไม่เหมือนกัน
  • การกดปุ่ม F5 เป็นการ refresh หน้าจอ บางครั้ง browser นำผลลัพธ์ที่ได้จาก cache มาแสดง ถ้าต้องการให้ browser ดาวน์โหลดข้อมูลจากเว็บไซต์ใหม่จริง ๆ  ให้กดปุ่ม Ctrl + F5
  • ถึงแม้เราจะแก้ไข reloadable=true ใน context.xml แล้วก็ตาม บางครั้งเราควร restart server และควรปิด browser แล้วเปิดใหม่ เพื่อล้าง cache ของบราวเซอร์ด้วย

REFERENCES & RESOURCES

  1. Apache Tomcat site

กลับหน้าแรกโฮมเพจฟิสิกส์ราชมงคล