Apache Tom Cat – Java Servlet :: Installation

Tomcat เป็น Apache Web Server ที่มีไว้ใช้สำหรับ Run Web Java Servlet โดยเฉพาะ เพราะฉะนั้นเวลาต้องการลง Server ตัวนี้เราก็ต้องลง Java jdk กันก่อนด้วย

มาดูขั้นตอนลงกันเลย

1. ลง java jdk หรือ SE (ถ้าลง SE ได้จะดีมากๆ)

yum -y install sun-java6-jdk

2. Download Tomcat มาจากเว็บของ Tomcat

http://tomcat.apache.org/download-60.cgi

เป็น file .tar.gz เช่น

wget http://mirror.tourismthai.org/apache//tomcat/tomcat-6/v6.0.29/bin/apache-tomcat-6.0.29.tar.gz

3. ทำการแตกไฟล์ .tar.gz

tar xvzf apache-tomcat-6.0.14.tar.gz
4. ย้าย Directory ของ Tomcat ไปไว้ใน /usr/local
mv apache-tomcat-6.0.29 /usr/local/tomcat
5.ตั้งค่าตัวแปร JAVA_HOME โดยประกาศไว้ที่ .bashrc ของ root
vi /root/.bashrc
เพิ่มตำแหน่งของ bin ของตัว Java ลงในบรรทัดสุดท้าย เช่น
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre
6.สร้าง File สำหรับใช้ในการ Start Service
vi /etc/init.d/tomcat
เพิ่มบรรทัด
# Tomcat auto-start
# chkconfig: – 85 15
# chkconfig: - 85 15
# description: Auto-starts tomcat
# processname: tomcat
# pidfile: /var/run/tomcat.pid
export JAVA_HOME=/usr/lib/jvm/jre-1.6.0
case $1 in
start)
       sh /usr/local/tomcat/bin/startup.sh
       ;;
stop)
       sh /usr/local/tomcat/bin/shutdown.sh
       ;;
restart)
       sh /usr/local/tomcat/bin/shutdown.sh
       sh /usr/local/tomcat/bin/startup.sh
       ;;
esac
exit 0
แล้วทำการเปลี่ยนสิทธิในการใช้งาน Script เพื่อให้ Execute ได้
chmod 755 /etc/init.d/tomcat
สร้าง Link ไปยังการ Startup Script หมวดอื่นๆ
ln -s /etc/init.d/tomcat6 /etc/rc1.d/K99tomcat
ln -s /etc/init.d/tomcat6 /etc/rc2.d/S99tomcat
7. ลองทดสอบเว็บ
/etc/init.d/tomcat start

chkconfig tomcat on

แล้วเข้า Browser เปิดไปที่ URL
http://[ip]:8080/
ถ้าเห็นเป็นหน้าของ Tomcat แสดงว่าถูกต้องแล้ว

Custom Error Page บน Bluecoat ProxySG

1. Login เข้าสู่หน้าจัดการ Bluecoat ProxySG

2. เข้าที่ Menu Configuration -> Policy -> Exceptions

3. เข้าไปดู Exception ที่ต้องการเปลี่ยนได้โดยการกดที่ปุ่ม View ในหน้านี้ และทำการ Copy Exception นั้นไว้ (หากเคยแก้ไขมาก่อนแล้วให้ข้ามไปข้อ 4 ได้เลย)

(exception.configuration_error

(contact)

(details “คุณไม่สามารถใช้งาน Proxy ได้ เนื่องจากสาเหตุ : $(quot)$(exception.last_error)$(quot)”)

(format)

(help)

(summary “Appliance Error”)

(http

(code “403″)

(contact)

(details)

(format <<–1b72199a.c9532–

<html>

<head>

<title>$(exception.last_error)</title>

<meta content=”Blue Coat systems”>

<meta content=”Denied Access Policy”>

</head>

<body>

<center>

<p>

<font face=”Arial, Helvetica, sans-serif” size=”3″ color=”Red”><b> IP: $(client.address) Username: $(user.name)</b></font>

<p>

<font face=”Arial, Helvetica, sans-serif” size=”4″ color=”Red”><b>ท่านไม่สามารถใช้งาน Internet ได้

<p>

<font face=”Arial, Helvetica, sans-serif” size=”4″ color=”red”>สาเหตุเนื่องมาจาก $(exception.last_error)

<p>

กรุณาติดต่อฝ่าย Admin โทรศัพท์ 16928</font>

<p>

</center>

</body>

</html>

–1b72199a.c9532–

)

(help)

(summary)

)

)

4. ที่ Drop Down “Install Exception Definations from: ” ให้เลือกเป็น  “Text Editor” และกดปุ่ม Install จะมีหน้าต่างสำหรับแก้ไข Exception แสดงขึ้นมา

5. ให้หา Exception ที่ต้องการแก้ไข โดยสังเกตจากข้อความที่แสดงบนหน้าเว็บ (เช่นเดียวกับข้อ 3) หากไม่มี Exception ที่ต้องการให้ สร้างขึ้นใหม่ โดยสร้างไว้ที่บรรทัดรองสุดท้าย ก่อนเครื่องหมาย ) ตัวสุดท้าย

6. แก้ไขข้อความที่ต้องการแสดงบนหน้าเว็บ โดยการใส่ Code HTML ภายใต้ tag format

(format <<–1b72199a.c9532—

[HTML]

–1b72199a.c9532–

)

ได้ทันที เช่น

(format <<–1b72199a.c9532–

<html>

<head>

<title>$(exception.last_error)</title>

<meta content=”Blue Coat systems”>

<meta content=”Denied Access Policy”>

</head>

<body>

<center>

<p>

<font face=”Arial, Helvetica, sans-serif” size=”3″ color=”Red”><b> IP: $(client.address) Username: $(user.name)</b></font>

<p>

<font face=”Arial, Helvetica, sans-serif” size=”4″ color=”Red”><b>ท่านไม่สามารถใช้งาน Internet ได้

<p>

<font face=”Arial, Helvetica, sans-serif” size=”4″ color=”red”>สาเหตุเนื่องมาจาก $(exception.last_error)

<p>

กรุณาติดต่อฝ่าย Admin โทรศัพท์ 16928</font>

<p>

</center>

</body>

</html>

–1b72199a.c9532–

)

7. เมื่อแก้ไขเสร็จให้กดที่ปุ่ม Install หากไม่มีข้อผิดพลาด จะขึ้นข้อความว่า “The file was successfully Installed” หากผิดพลาดให้แก้ไขให้ถูกต้องตาม Error ที่แจ่งขึ้นมาบนหน้าจอ

8. ทำการทดสอบ Error Page ที่ทำการแก้ไขเสร็จ โดยทำการเข้าใช้งาน Proxy ตามเงื่อนไขที่ระบุ

วิธีการสร้าง Local Repository

REF: คุณ KKE @ thaihosttalk.com

สำหรับท่านที่มีเครื่อง CentOS ภายในองค์กรจำนวนมาก การสร้าง local repo server เหมือนกับของ ku หรือ psu ที่แนะนำไปจะช่วยลดการใช้ BW ไปได้มาก เนื่องจากถึงจะเปลี่ยนมาใช้ repo ในไทยแล้วก็ตามแต่ก็อาจต้องโหลดไฟล์ผ่าน lease line หรือ adsl ซึ่งความเร็วไม่มากเท่ากับเครื่องที่วางไว้ที่ IDC นั่นเอง การสร้าง local repo ก็ง่ายๆหลักการก็คือ copy ไฟล์มาให้ครบตามที่เขามีนั้่นเอง แล้วก็แก้ไขไฟล์ CentOS-Base.repo ของเครื่องในองค์กรมาใช้ url เครื่อง local repo ของเราเอง

ซึ่งก่อนอื่นก็ต้องมีเครื่องที่จะทำหน้าที่นี้โดยเป็นเครื่องที่มี service web server เช่น apache
เมื่อได้เครื่องแล้วก็กำหนด virtual host ขึ้นมาสำหรับเก็บไฟล์ mirror ในที่นี้จะยกตัวอย่างเป็น /var/www/html และเรียกผ่านทาง ip 192.168.1.100

ตัวอย่างต่อไปนี้เป็น CentOS 5.x บน x86_64 หากเป็นเวอร์ชั่นอื่นก็ให้เปลี่ยน 5 กับ x86_64 ให้ตรงกับที่ต้องการเช่น 4 กับ i386 เป็นต้น

1. สร้าง folder สำหรับเก็บไฟล์

mkdir -p /var/www/html/centos/5/os/x86_64/CentOS
mkdir -p /var/www/html/centos/5/updates/x86_64

2. ไฟล์ใน folder /var/www/html/centos/5/os/x86_64/CentOS คือไฟล์ RPMs จาก CD/DVD นั่นเอง ให้ copy ไฟล์ใน CD/DVD มาใส่ให้ครบ หรือจะโหลดผ่าน internet ก็ได้เช่นกัน แต่การ copy จากแผ่น cd/dvd ที่มีอยู่แล้วจะช่วยลดเวลาไปได้มาก ในกรณีที่มีไฟล์ iso อยู่ในเครื่องก็สามารถ mount ไฟล์ iso เพื่อ copy ไฟล์ได้ด้วยคำสั่ง

mkdir /iso
mount -o loop /path/to/centos-cd.iso /iso
ls /iso

จากนั้นสร้าง repo index ด้วยคำสั่ง

createrepo /var/www/html/centos/5/os/x86_64

* หากไม่มีคำสั่งนี้ก็ติดตั้งด้วยคำสั่ง yum install createrepo ซะก่อน
** เมื่อมี CentOS เวอร์ชั่นใหม่ออกมาก็ให้เอาไฟล์ RPMs ในแผ่น CD/DVD เวอร์ชั่นใหม่มาทับของเดิม

3. Download ไฟล์ updates มาจาก mirror ที่ใดที่หนึ่งตาม list ต่อไปนี้ http://www.centos.org/modules/tinycontent/index.php?id=30 (เลือกที่มี rsync)

rsync -avrt rsync://mirrors.kernel.org/centos/5/updates/x86_64 /var/www/html/centos/5/updates/

* ดูเรื่องการใส่ / ปิดท้ายให้ดี อันใหนมี / อันใหนไม่มี / จะมีผลกับไฟล์ที่โหลดมาถูกตำแหน่ง

4. เพิ่มคำสั่ง rsync ตามข้อ 3 ใน crontab เพื่อให้ update เรื่อยๆตามต้องการ เช่นวันละ 1 ครั้ง

#crontab -e
0 4 * * * rsync -avrt rsync://mirrors.kernel.org/centos/5/updates/x86_64 /var/www/html/centos/5/updates/ > /dev/null 2>&1

5. ทำเช่นเดียวกันกับข้อ 3-4 สำหรับ folder: extras centosplus addons fasttrack ตามต้องการ (ข้อ 5 นี้ หากไม่ได้ใช้ก็ไม่ต้องโหลดก็ได้ เลือกเฉพาะที่ต้องการใช้พอ แล้วที่เหลือก็กำหนดไปใช้ repo ในไทยแทน)

rsync -avrt rsync://mirror1.ku.ac.th/centos/5/extras/x86_64 –exclude=debug/ /var/www/html/centos/5/extras/
rsync -avrt rsync://mirror1.ku.ac.th/centos/5/centosplus/x86_64 –exclude=debug/ /var/www/html/centos/5/centosplus/

6. แก้ไขไฟล์ CentOS-Base.repo เพื่อใช้งาน repo ของเราเอง (ไฟล์นี้ก็ทำใส่ไว้ใน local repo เพื่อให้โหลดไปใช้ได้เลย เหมือนกับของ ku กับ psu นั่นแหละ)

vi /etc/yum.repos.d/CentOS-Base.repo

# CentOS-Base.repo

[base]
name=CentOS-$releasever – Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://192.168.1.100/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://192.168.1.100/centos/RPM-GPG-KEY-CentOS-5
# Rpmforge (yum-priority)
# protect=1

#released updates
[updates]
name=CentOS-$releasever – Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://192.168.1.100/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://192.168.1.100/centos/RPM-GPG-KEY-CentOS-5
# Rpmforge (yum-priority)
# protect=1

[addons]
name=CentOS-$releasever – Addons
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
baseurl=http://192.168.1.100/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://192.168.1.100/centos/RPM-GPG-KEY-CentOS-5
# Rpmforge (yum-priority)
# protect=0

#additional packages that may be useful
[extras]
name=CentOS-$releasever – Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://192.168.1.100/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://192.168.1.100/centos/RPM-GPG-KEY-CentOS-5
# Rpmforge (yum-priority)
# protect=0

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever – Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
baseurl=http://192.168.1.100/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://192.168.1.100/centos/RPM-GPG-KEY-CentOS-5
# Rpmforge (yum-priority)
# protect=1

#contrib – packages by Centos Users
[contrib]
name=CentOS-$releasever – Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
baseurl=http://192.168.1.100/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://192.168.1.100/centos/RPM-GPG-KEY-CentOS-5
# Rpmforge (yum-priority)
# protect=0

เพียงเท่านี้เราก็มี local repo ของเราเอง เวลาติดตั้ง CentOS ใหม่ก็เรียก yum update ได้อย่างรวดเร็ว ไม่เชื่อลองดู

วิธีการใช้งาน dig

สำหรับชาว System Administrator คำสั่งเรียกดูข้อมูล DNS นั้น เป็นคำสั่งที่สำคัญเช่นกัน ในขั้นตอนการตั้ง Domain ใหม่ และขั้นตอนการตรวจสอบปัญหา (Troubleshooting) ของระบบ Network และ Domain ที่ต้องการเรียกใช้งาน

บน Linux คำสั่งสำหรับการเรียกดูรายละเอียดของ DNS นั้นคือคำสั่ง dig โดยคำสั่งนี้จะถูกลงพร้อมกับ Package bind ในตัว linux (ก่อนหน้านี้ Linux ใช้คำสั่ง nslookup เช่นเดียวกันกับ Windows แต่ในปัจจุบันได้มีการพัฒนาคำสั่ง dig ขึ้นมาใหม่ให้มีความสามารถมากขึ้น และนำคำสั่ง dig มาใช้แทน คำสั่ง nslookup)

เมื่อเรียกใช้คำสั่ง dig เราจะสามารถเลือกได้ว่าเราจะเลือก query ค่า DNS จาก DNS Server ของเราเอง หรือว่า query จาก DNS Server ตัวอื่น โดยข้อมูลที่ query ออกมาได้ จะเห็น root name servers ของตัว Domain นั้นด้วย

 

ตัวอย่างการใช้คำสั่ง dig มีดังนี้

$ dig google.com
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_4.2 <<>> google.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29558
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 13, ADDITIONAL: 2
;; QUESTION SECTION:
;google.com.                    IN      A
;; ANSWER SECTION:
google.com.             226     IN      A       74.125.19.99
google.com.             226     IN      A       74.125.19.103
google.com.             226     IN      A       74.125.19.104
google.com.             226     IN      A       74.125.19.147
;; AUTHORITY SECTION:
.                       55953   IN      NS      c.root-servers.net.
.                       55953   IN      NS      d.root-servers.net.
.                       55953   IN      NS      e.root-servers.net.
.                       55953   IN      NS      f.root-servers.net.
.                       55953   IN      NS      g.root-servers.net.
.                       55953   IN      NS      h.root-servers.net.
.                       55953   IN      NS      i.root-servers.net.
.                       55953   IN      NS      j.root-servers.net.
.                       55953   IN      NS      k.root-servers.net.
.                       55953   IN      NS      l.root-servers.net.
.                       55953   IN      NS      m.root-servers.net.
.                       55953   IN      NS      a.root-servers.net.
.                       55953   IN      NS      b.root-servers.net.
;; ADDITIONAL SECTION:
i.root-servers.net.     604759  IN      A       192.36.148.17
l.root-servers.net.     208308  IN      AAAA    2001:500:3::42
;; Query time: 58 msec
;; SERVER: 192.168.250.12#53(192.168.250.12)
;; WHEN: Wed May 12 18:06:50 2010
;; MSG SIZE  rcvd: 347
ข้อมูลที่ query ออกมาได้อาจจะเยอะเกินความจำเป็น เราจึงสามารถเลือกดูเฉพาะ a record ได้โดยการใส่ option ดังนี้
$ dig google.com +noauthority +noadditional
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_4.2 <<>> google.com +noauthority +noadditional
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55797
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 13, ADDITIONAL: 2
;; QUESTION SECTION:
;google.com.                    IN      A
;; ANSWER SECTION:
google.com.             42      IN      A       74.125.19.104
google.com.             42      IN      A       74.125.19.147
google.com.             42      IN      A       74.125.19.99
google.com.             42      IN      A       74.125.19.103
;; Query time: 0 msec
;; SERVER: 192.168.250.12#53(192.168.250.12)
;; WHEN: Wed May 12 18:09:54 2010
;; MSG SIZE  rcvd: 347
หากต้องการทราบ MX Record สามารถใช้คำสั่งดังนี้
$ dig MX google.com +short
200 google.com.s9a2.psmtp.com.
300 google.com.s9b1.psmtp.com.
400 google.com.s9b2.psmtp.com.
100 google.com.s9a1.psmtp.com.
หากต้องการ ดู record อื่น ให้แทนค่า MX ด้วยค่าที่ต้องการดู เช่น NS คือ ดู Name Server หรือ ANY คือดูค่าทั้งหมด
option +short คือการสั่งให้แสดงเฉพาะรายละเอียดที่ต้องการดูเท่านั้น
หากต้องการดูค่า SPF Record ให้เรียกคำสั่งดังนี้
$ dig TXT google.com +short

“v=spf1 include:_netblocks.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all”

หากต้องการ ดูค่า reverse DNS จากเลข IP ให้ใช้ option -x เช่น
$ dig -x 74.125.148.13 +short
s9b1.psmtp.com.
หากต้องการ dig โดยดูจาก DNS Server ตัวอื่นให้ใช้คำสั่งดังนี้
$ dig @ns.isp.com google.com
option อื่นๆ ของคำสั่ง dig เราสามารถดูเพิ่มเติมได้โดยการใช้คำสั่ง dig -h ครับ

Install VMWare tools on Linux

จะใช้งาน Interface vmxnet 3 บน Linux ที่ Run บน VMWare เพื่อให้ได้ความเร็วในการส่งข้อมูลที่เร็วขึ้น

แต่ดันไม่สามารถลงตัว VMWare Tool จากคำสั่งบน Menu ขอ VMWare ได้เหมือน Window

จึงต้องหาวิธีลงใน Linux ซึ่งจากการค้นหาก็ได้วิธีตามนี้

1. ก่อน start Virtual Machine ตั้งค่า CD-Rom โดยใช้ ISO Image ที่ชื่อ Linux.iso ดังรูป (ปกติ File นี้จะมีอยู่แล้วใน vmware โดยปกติจะถูกเก็บไว้ที่ C:\Program Files\VMware\VMware Server\linux.iso)

[singlepic id=9 w=320 h=240 float=center]

2. start Virtual Machine ขึ้นมา

3. ทำการ Mount CD-Rom

mkdir /mnt/cdrom

mount /dev/cdrom /mnt/cdrom

4. ลง VMWare Tool ด้วย file rpm จาก CD-Rom ที่ Mount ไว้

cd /mnt/cdrom/

rpm -i /VMwareTools-1.0.2-39867.i386.rpm

5. Run script เพื่อเริ่มการใช้งาน

vmware-config-tools.pl

ปล่อยให้ Run script จนเสร็จ แล้วทำตามคำแนะนำที่แสดงบนหน้าจอ

เท่านี้ก็เสร็จสิ้นและสามารถทำงานได้ในทันที

ปัญหาเปิดเว็บที่มี Flash แล้ว CPU ขึ้นสูงใน Browser ต่างๆ

หลังจากเปลี่ยนมาใช้ Ubuntu ได้ซักพักก็เจอเรื่องหนึ่งที่แปลกใจ คือ เวลาเข้าเว็บที่มี Flash เยอะๆ แล้วเครื่องจะอืดมากๆ พอไปดู CPU Process ก็เห็นชัดเลยว่ามันขึ้นสูงมากจริงๆ

จึงพยายามหาทางแก้ดูโดยการพยายามค้นหาข้อมูลตามเว็บต่างๆ พบว่ายังไม่สามารถแก้ได้ แต่สามารถเลี่ยงการใช้งาน flash ตรงๆ ได้โดยการลง Plugin “flash block” ลงใน Browser ที่เราใช้งานอยู่ได้

Plugin หาไม่ยาก search คำว่า addon flashblock ใน google แล้วจัดการลงได้เลย

การทำงานของมันคือ จะทำให้ flash ในเว็บ ไม่ถูก run ในทันทีที่เปิดหน้าเว็บขึ้นมา แต่จะ run ก็ต่อเมื่อเรากดปุ่ม Play บน flash เท่านั้น

ขึ้นปี 2010 มา ปรากฎว่าลูกค้ามีปัญหาไม่สามารถส่ง E-Mail ได้เนื่องจากติด Blacklist หลังจากตรวจสอบดู พบว่า Score ของ spamassasin ถูกเพิ่มขึ้นมา 3.3 แต้ม เนื่องมาจากการตรวจสอบเวลาของ spamassasin เกิดข้อผิดพลาด

ปัญหานี้สามารถแก้ไขได้โดยการใช้คำสั่ง

sa-update

ใน Mail Server

แล้วตรวจสอบ Directory ใน /var/lib/spamassasin ว่ามีการ update เวลาเป็นปีปัจจุบันแล้วหรือไม่

ls -ld /var/lib/spamassasin

ถ้า update แล้วก็ผ่าน Score ก็จะไม่ถูกเพิ่มเข้าไปอีก 3.3 แต้มแล้ว

เมื่อ update เสร็จเช็คด้วยว่ามี service อะไร stop ไปบ้าง เช่น ของผม amavisd stop ไำป

ก็ให้ start ขึ้นมาใหม่ด้วย

/etc/init.d/amavisd start

วิธี set class path บน Windows

Reference : http://www.jhelp.net/Article.aspx?id=10035

โดย default ถ้าเราไม่กำหนดค่าของ class path ค่า default ของ class path จะเป็น directory ปัจจุบัน ซึ่งจะทำให้ Java compiler หรือ Java VM หา class เฉพาะใน directory ปัจจุบันเท่านั้น แต่ถ้าเราต้องการให้ Java compiler หรือ Java VM หา class ใน directory อื่นด้วย จะต้องทำอย่างไร ?

Solution

วิธี set class path บน Windows ทำได้สองวิธี ดังนี้

1. set CLASSPATH environment variable

วิธีระบุ class path แบบนี้ เป็นวิธีแบบดั้งเดิมตั้งแต่จาวา version แรก ๆ โดยเรากำหนด environment variable ที่ชื่อว่า CLASSPATH ขึ้นมา พร้อมกับระบุค่า class path ที่ต้องการ การ set environment variable แบบนี้ ก็ทำได้สองแบบ คือ

1.1 set CLASSPATH เป็น system variable โดยเลือกที่ My Computer แล้ว click ขวาเลือก Properties  เลือกที่ Advanced tab แล้วกดที่ปุ่ม Environment Variables หน้าต่าง Environment Variables จะแสดงขึ้นมา ในส่วนของ System variables เราก็เลือก New เพื่อเพิ่ม variable ตัวใหม่ เข้าไป โดยตั้งชื่อว่า CLASSPATH พร้อมกับระบุค่าของ class path ที่เราต้องการ อย่างเช่น ถ้า class file ของโปรแกรมเราอยู่ที่ c:\java\classes และ directory ปัจจุบัน เราก็ใส่เป็น c:\java\classes;. (สังเกตว่าบน Windows เราจะใช้ “;” คั่นรายชื่อ path  บน Unix จะใช้ “:”)

1.2 เราจะ set CLASSPATH เป็น variable สำหรับเฉพาะ console หนึ่ง ๆ เท่านั้นก็ได้ โดยตัวแปร CLASSPATH นี้จะมองเห็นได้เฉพาะใน console นั้น ๆ วิธี set ก็ทำโดยใช้คำสั่ง set ที่ command prompt ในหน้าจอ console นั้น ๆ อย่างเช่น

ถ้าต้องการ set ตัวแปร CLASSPATH
set CLASSPATH=c:\java\classes;.

ถ้าต้องการ clear ตัวแปร CLASSPATH
set CLASSPATH=

ถ้าต้องการดูค่าของตัวแปรทั้งหมดที่มีก็ใช้ค่ำสั่ง set
set

วิธีการระบุ class path โดยใช้ CLASSPATH environment variable แบบนี้ ไม่ค่อยเป็นที่นิยมกันเนื่องจาก การรันโปรแกรมจาวาทุกโปรแกรมในเครื่องจะ ใช้ class path ร่วมกัน ซึ่งอาจทำให้เกิดปัญหาในการโหลด class ได้ อย่างเช่น โปรแกรม P1 ต้องการโหลด class A version 1 แต่ โปรแกรม B ต้องการโหลด class A version 2 ดังนั้น ถ้าต้องการระบุ class path จะแนะนำให้ใช้วิธีที่สองมากกว่า คือระบุผ่าน option -classpath หรือ -cp ของคำสั่ง java

2. ระบุ class path โดยใช้ -classpath หรือ -cp option ของคำสั่ง java

เราสามารถระบุ class path สำหรับการรันโปรแกรมจาวาครั้งนั้น ๆ ได้ โดยใช้ -cp หรือ -classpath ของคำสั่ง java อย่างเช่น

java -cp c:\java\classes HelloWorld (สมมุติว่า class file ของ HelloWorld อยู่ใน directory c:\java\classes) หรือ
java -classpath c:\java\classes HelloWorld

วิธีนี้เป็นวิธีที่ แนะนำให้ใช้กัน เนื่องจาก class path ของแต่ล่ะโปรแกรมที่เรารัน จะแยกกัน ไม่เกี่ยวข้องกัน ทำให้ไม่สับสนเวลาที่เราต้องระบุ class path ของโปรแกรมจาวาหลาย ๆ โปรแกรมบนเครื่องเดียวกัน

หลายคนคงสงสัยว่า ถ้ามีการระบุ class path ทั้งโดย CLASSPATH environment variable และ -classpath -cp option ของคำสั่ง java ในเวลาเดียวกัน แล้ว ค่าที่ใช้จะเป็นตัวไหนกันแน่ คำตอบคือ จะใช้ค่าที่ระบุโดย -classpath หรือ -cp option ของคำสั่งจาวาก่อนเสมอ แบบนี้ทำให้เราสามารถระบุค่าของ class path สำหรับโปรแกรมเราได้ โดยไม่ต้องห่วงว่า CLASSPATH environment variable มีการกำหนดไว้หรือไม่

YUM ผ่าน PROXY

ถ้าหากหน้า linux ที่ใช้งานอยู่ มี Proxy ขวางอยู่ไม่ให้ออกเน็ตได้ ให้ใช้คำสั่งนี้ในการ set ค่า http proxy สำหรับอนุญาตให้ออกเน็ตได้

กรณีที่ไม่ต้อง login ก่อนใช้งาน proxy

export http_proxy=”http://[proxy domain/IP]:[proxy port]/”

กรณีที่ไม่ต้อง login ก่อนใช้งาน proxy

export http_proxy=”http://[username]:password]@[proxy domain/IP]:[proxy port]/”

เสร็จแล้วให้ลองทำการ yum ได้เลยทันที