หนังสือหลายๆเล่ม สอนมากมายเกี่ยวกับวิธี
ถูกบ้างผิดบ้าง แล้วก็รันไม่ได้ บ้าง
มาลองดูวิธีง่ายๆกัน กับ Tomcat5.5 ที่ผมค้นพบ
วิธีนี้สำหรับ Windows ครับ
แล้ววิธีนี้ก็ใช้ในกรณีที่เราไม่ได้ ติดตั้ง Tomcat เป็น Service
เพียงแค่ Download Tomcat มาแล้วแตกไฟล์ไว้ที่เครื่องของเราเอง
ตัิวอย่างประมาณนี้ครับ
D:\tomcat55\bin>set JAVA_HOME=c:\Program Files\Java\jdk1.7.0_03
D:\tomcat55\bin>version.bat
Using CATALINA_BASE: D:\tomcat55
Using CATALINA_HOME: D:\tomcat55
Using CATALINA_TMPDIR: D:\tomcat55\temp
Using JRE_HOME: c:\Program Files\Java\jdk1.7.0_03
Using CLASSPATH: D:\tomcat55\bin\bootstrap.jar
Server version: Apache Tomcat/5.5.35
Server built: Jan 6 2012 11:20:07
Server number: 5.5.35.0
OS Name: Windows XP
OS Version: 5.1
Architecture: x86
JVM Version: 1.7.0_03-b05
JVM Vendor: Oracle Corporation
D:\tomcat55\bin>startup.bat
Using CATALINA_BASE: D:\tomcat55
Using CATALINA_HOME: D:\tomcat55
Using CATALINA_TMPDIR: D:\tomcat55\temp
Using JRE_HOME: c:\Program Files\Java\jdk1.7.0_03
Using CLASSPATH: D:\tomcat55\bin\bootstrap.jar
D:\tomcat55\bin>
สรุปง่ายๆคือ set java_home ก่อน แล้วตามด้วย version.bat แล้วตามด้วย startup.bat เป็นอันจบ
หลังจากนั้น ระบบจะเปิด หน้าจอ console สีดำๆึขึ้นมาใหม่อีกหน้าจอ รอรับ sequest
และทำหน้าที่เป็น server รอรับ HTTP Request ที่ port มาตรฐานของ Tomcat คือ 8080 ครับ
นั่นก็คือที่ http://localhost:8080/
tu blog , programming C#,PHP,Java,VB.NET,VB,HTTP,Protocol
11 August 2012
ลบข้อมูลบรรทัดว่าง ด้วย autoIT
สร้างและ run script สำหรับ ลบ บรรทัดว่าง
เช่นข้อมูล บน notepad
A B C
D E F
G H I
๋๋J K L
จะมีบรรทัดว่างอยู่
ให้เปิด autoITv3 Editor ขึ้นมา พิมพ์ดังนี้
Send("!{TAB}") ; ALT-TAB
local $i
for $i = 1 to 3
Send("{DEL}")
Send("{DOWN}")
Next
แล้วสวิชกลับไปที่ notepad เอาเมาส์คลิกให้ cursor อยู่ที่่บรรทัดว่างใต้ตัว A เหนือตัว D
แล้ว กด ALT-TAB เพื่อสวิชกลับไปที่ autoIT
แล้วกด ปุ่ม F5
ซึ่งมันจะทำงานดังนี้ คือ
สวิชกลับไปที่ notepad
ลบบรรทัดว่าง ระหว่าง A กับ D ผลคือ cursor อยู่ที่ D
จำลองการกดปุ่ม ลูกศรลง แล้วจะไปอยู่ที่ บรรทัดว่างระหว่าง D กับ G
ลบบรรทัดว่าง ระหว่าง D กับ G ผลคือ cursor อยู่ที่ G
จำลองการกดปุ่ม ลูกศรลง แล้วจะไปอยู่ที่ บรรทัดว่างระหว่าง G กับ J
ลบบรรทัดว่าง ระหว่าง G กับ J ผลคือ cursor อยู่ที่ J
ผลลัพธ์ คือ
A B C
D E F
G H I
๋๋J K L
=== ใช้งานด้วยความระมัดระวังนะครับ ===
=== การรันโปรแกรม ควบคุม keyboard/mouse แบบนี้ ===
=== อาจทำให้เครื่องคุณ โดนลบข้อมูล ไฟล์เสียหาย ===
=== หรือหนักกว่านั้นได้เลย เช่นต้อง Format เครื่องใหม่ ===
เช่นข้อมูล บน notepad
A B C
D E F
G H I
๋๋J K L
จะมีบรรทัดว่างอยู่
ให้เปิด autoITv3 Editor ขึ้นมา พิมพ์ดังนี้
Send("!{TAB}") ; ALT-TAB
local $i
for $i = 1 to 3
Send("{DEL}")
Send("{DOWN}")
Next
แล้วสวิชกลับไปที่ notepad เอาเมาส์คลิกให้ cursor อยู่ที่่บรรทัดว่างใต้ตัว A เหนือตัว D
แล้ว กด ALT-TAB เพื่อสวิชกลับไปที่ autoIT
แล้วกด ปุ่ม F5
ซึ่งมันจะทำงานดังนี้ คือ
สวิชกลับไปที่ notepad
ลบบรรทัดว่าง ระหว่าง A กับ D ผลคือ cursor อยู่ที่ D
จำลองการกดปุ่ม ลูกศรลง แล้วจะไปอยู่ที่ บรรทัดว่างระหว่าง D กับ G
ลบบรรทัดว่าง ระหว่าง D กับ G ผลคือ cursor อยู่ที่ G
จำลองการกดปุ่ม ลูกศรลง แล้วจะไปอยู่ที่ บรรทัดว่างระหว่าง G กับ J
ลบบรรทัดว่าง ระหว่าง G กับ J ผลคือ cursor อยู่ที่ J
ผลลัพธ์ คือ
A B C
D E F
G H I
๋๋J K L
=== ใช้งานด้วยความระมัดระวังนะครับ ===
=== การรันโปรแกรม ควบคุม keyboard/mouse แบบนี้ ===
=== อาจทำให้เครื่องคุณ โดนลบข้อมูล ไฟล์เสียหาย ===
=== หรือหนักกว่านั้นได้เลย เช่นต้อง Format เครื่องใหม่ ===
ดึงข้อมูล HTTP ด้วย ภาษา Scala และ Library Java
การ ดึงข้อมูล HTTP จากหน้าเว็บไซต์ เช่น port 80
ซึ่งก็อาจใช้ในการ ทดสอบโปรแกรมระบบ ได้เช่นกัน
ตัวอย่าง batch file สำหรับ set classpath
ข้อมูล batch เป็นดังนี้
ซึ่งก็อาจใช้ในการ ทดสอบโปรแกรมระบบ ได้เช่นกัน
ตัวอย่าง batch file สำหรับ set classpath
Directory of D:\scala-2.9.2 08/11/2012 01:12 AM <dir> . 08/11/2012 01:12 AM <dir> .. 08/11/2012 01:12 AM <dir> bin 04/13/2012 05:25 AM <dir> doc 08/08/2012 12:02 AM <dir> lib 04/13/2012 05:25 AM <dir> man 04/13/2012 05:25 AM <dir> misc 08/11/2012 12:06 AM 152 setpath.bat 04/13/2012 05:25 AM <dir> src
ข้อมูล batch เป็นดังนี้
set path=%PATH%;c:\Program Files\Java\jdk1.7.0_03\bin; set path=%PATH%;D:\scala-2.9.2\bin; set JAVA_HOME=c:\Program Files\Java\jdk1.7.0_03\binSource Code get_http.scala
import java.net.URL import java.net.HttpURLConnection val url = new URL("http","localhost",80,"/apt") val con = url.openConnection.asInstanceOf[HttpURLConnection] con.setRequestProperty("Header","Value") con.connect() val ips = con.getInputStream() for( i <- 1 to ips.available ){ print( ips.read.asInstanceOf[Char] ) }
เป็นการแสดงตัวอย่าง Source Code ภาษา Scala ซึ่งเรียกใช้ object/method ของ java
โดยสร้าง URL ระบุ protocol , host , port , path หรือ ไฟล์
แล้วเปิดคอนเนคชัน และ cast type เป็น HttpURLConnection
ลองส่ง Property ไปเล่นๆ
เปิด connection จริง
ดึงข้อมูล ImputStream ใส่ตัวแปร pointer ips
วนรอบเท่าจำนวนตัวอักษรที่อ่านได้ (ips.available)
แล้ว อ่านทีละตัวอักษรซึ่งจะเป็นเลข interger แล้ว CastType ไปเป็น Char
แล้ว พิมพ์ออกทางหน้าจอ
ตัวอย่างผลลัพธ์
scala> :load get_http.scala
Loading get_http.scala...
import java.net.URL
import java.net.HttpURLConnection
url: java.net.URL = http://localhost:80/apt
con: java.net.HttpURLConnection = sun.net.www.protocol.http.HttpURLConnection:ht
tp://localhost:80/apt
ips: java.io.InputStream = sun.net.www.protocol.http.HttpURLConnection$HttpInput
Stream@3dd423
NO Screen Info !
redirect to $http://localhost/apt/index.php/unmanage/check_d
redirect to $http://localhost/apt/index.php/unmanage/check_d
evice_res/
scala>
จะเห็นว่ามีการดึงข้อมูลได้ ถูกต้อง แต่มีการแสดง Source Code ด้วยเพื่อ ตรวจสอบข้อผิดพลาด
หากต้องการให้ไม่แสดง Source Code ให้ใช้คำสั่ง :silent แล้วโหลด code มารันด้วย :load
ดังนี้
scala> :silent
Switched off result printing.
scala> :load get_http.scala
Loading get_http.scala...
NO Screen Info !
redirect to $http://localhost/apt/index.php/unmanage/check_d
redirect to $http://localhost/apt/index.php/unmanage/check_d
evice_res/
scala>
อ้างอิงจาก
http://docs.oracle.com/javase/1.4.2/docs/api/java/net/HttpURLConnection.html
http://tutorials.jenkov.com/scala/for.html
http://www.codecommit.com/blog/scala/scala-for-java-refugees-part-1
http://tutorials.jenkov.com/scala/for.html
http://www.codecommit.com/blog/scala/scala-for-java-refugees-part-1
10 March 2012
สร้าง user บน pure-ftpd (ubuntu )
ใน pure-ftpd จะมีคำสั่งสร้าง user
และระุบุให้ผูกกับ user ของ OS
ดังนี้
http://support.real-time.com/open-source/pureftpd/index.html
โดยห้าม ใช้ uid OS ซีึ่งเป็น "root" และ "gid" เป็น root
ทำให้ต้องมีการ สร้าง user ของ OS ใหม่
การสร้าง user ใหม่ ใน ubuntu
ลองสร้างดูด้วย วิธีนี้
useradd ซับซ้อนหน่อย ต้องระบุ path ให้ แล้วต้องมากำหนด password ด้วย "passwd" อีกครั้ง
adduser เหมือนมี text gui มาช่วยให้ป้อนค่าต่างๆง่ายมากๆ
http://www.howtogeek.com/howto/ubuntu/add-a-user-on-ubuntu-server/
หรือหากจะสร้าง ด้วย gui ก็ตามนี้ครับ
http://blog.it.kmitl.ac.th/it51070105/2008/07/10/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-user-%E0%B9%83%E0%B8%99-ubuntu/
สมมุติ สร้าง user ของ OS ชื่อ tu2 มาแล้ว
ขั้นตอนที่จะสร้าง user ของ pure-ftpd ก็จะทำตามเอกสารนี้
http://download.pureftpd.org/pub/pure-ftpd/doc/README.Virtual-Users
แต่จะปรับเปลี่ยนเล็กน้อย คือ
ที่ path
root@root: /etc/pure-ftpd#
รันคำสั่งดังนี้
#groupaddd ftpgroup
#useradd -g ftpgroup -d /home/ftpuser -s /etc ftpuser
#pure-pw useradd tu2 -u ftpuser -d /home/ftpuser/joe
ใส่พาสเวิร์ด สองครั้ง
เป็นการผูก user:OS tu2 เข้ากับ user (อ่านรีบๆเดาว่าน่าจะเป็น) แบบ virtual user "ftpuser"
และกำหนดให้ path ของ directory เป็น /home/ftpuser/joe
แต่ว่าใส่ผิด ชื่อไม่ตรง คือใส่ joe ต้องการ ลบ user นี้ออกจาก ftp เพื่อจะเปลี่ยน folder ที่เก็บ
#pure-pw userdel tu2
#pure-pw useradd tu2 -u ftpuser -d /home/ftpuser/tu2
ใส่ password สองครั้ง
จะทำให้ สามารถ logon จาก core FTP ( windows )
ได้ โดย ใช้ user tu2
ซึ่งเป็นการ เปิด จาก port 21
ถ้าจะใ้ห้ ปลอดภัยขึ้นควร ใช้ SSH แทน ซึ่งเป็น port 22 จะปลอดภัย มีการเข้ารหัสข้อมูล
ซึ่ง port 21 แบบ FTP นี้ ไม่มีการเข้ารหัสข้อมูลใดๆ ทั้งสิ้น
แต่ในที่นี้ สอน การใช้งานแบบง่ายๆ ในหน่วยงาน หรือ สำหรับ Test Server
หรือ ใช้ ภายใน VMware / VirtualBox เป็นหลัก ( ผมก็ ใช้เพื่อการนี้แหละ ... แบบ Host - Only ด้วย )
------------------------
ผลลัพธ์ หลังจากลองแบบ รีบด่วนแล้ว
พบว่า login ftp ได้ที่ /home/tu2
ซึ่งก็พบว่า ใช้ CoreFTP (windows ) โหลด ไฟล์จาก Pure-ftpd (Ubuntu ) ได้
และยังสามารถ ส่งไฟล์จาก CoreFTP (windows ) ไปยัง Pure-ftpd (Ubuntu ) ได้ ด้วย
โดยจะส่งไปวางไว้ที่ /home/tu2
ซึ่งก็จะเป็นวิธีการ รับส่งไฟล์แบบง่ายๆ ในสภาพแวดล้อมที่ มีความเสี่ยงต่ำ
ระหว่าง linux กับ windows
... อืม ... อาจมีวิธีง่ายกว่านี้ แต่นึกไม่ออก น่ะ :D
และระุบุให้ผูกกับ user ของ OS
ดังนี้
http://support.real-time.com/open-source/pureftpd/index.html
โดยห้าม ใช้ uid OS ซีึ่งเป็น "root" และ "gid" เป็น root
ทำให้ต้องมีการ สร้าง user ของ OS ใหม่
การสร้าง user ใหม่ ใน ubuntu
ลองสร้างดูด้วย วิธีนี้
useradd ซับซ้อนหน่อย ต้องระบุ path ให้ แล้วต้องมากำหนด password ด้วย "passwd" อีกครั้ง
adduser เหมือนมี text gui มาช่วยให้ป้อนค่าต่างๆง่ายมากๆ
http://www.howtogeek.com/howto/ubuntu/add-a-user-on-ubuntu-server/
หรือหากจะสร้าง ด้วย gui ก็ตามนี้ครับ
http://blog.it.kmitl.ac.th/it51070105/2008/07/10/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87-user-%E0%B9%83%E0%B8%99-ubuntu/
สมมุติ สร้าง user ของ OS ชื่อ tu2 มาแล้ว
ขั้นตอนที่จะสร้าง user ของ pure-ftpd ก็จะทำตามเอกสารนี้
http://download.pureftpd.org/pub/pure-ftpd/doc/README.Virtual-Users
แต่จะปรับเปลี่ยนเล็กน้อย คือ
ที่ path
root@root: /etc/pure-ftpd#
รันคำสั่งดังนี้
#groupaddd ftpgroup
#useradd -g ftpgroup -d /home/ftpuser -s /etc ftpuser
#pure-pw useradd tu2 -u ftpuser -d /home/ftpuser/joe
ใส่พาสเวิร์ด สองครั้ง
เป็นการผูก user:OS tu2 เข้ากับ user (อ่านรีบๆเดาว่าน่าจะเป็น) แบบ virtual user "ftpuser"
และกำหนดให้ path ของ directory เป็น /home/ftpuser/joe
แต่ว่าใส่ผิด ชื่อไม่ตรง คือใส่ joe ต้องการ ลบ user นี้ออกจาก ftp เพื่อจะเปลี่ยน folder ที่เก็บ
#pure-pw userdel tu2
#pure-pw useradd tu2 -u ftpuser -d /home/ftpuser/tu2
ใส่ password สองครั้ง
จะทำให้ สามารถ logon จาก core FTP ( windows )
ได้ โดย ใช้ user tu2
ซึ่งเป็นการ เปิด จาก port 21
ถ้าจะใ้ห้ ปลอดภัยขึ้นควร ใช้ SSH แทน ซึ่งเป็น port 22 จะปลอดภัย มีการเข้ารหัสข้อมูล
ซึ่ง port 21 แบบ FTP นี้ ไม่มีการเข้ารหัสข้อมูลใดๆ ทั้งสิ้น
แต่ในที่นี้ สอน การใช้งานแบบง่ายๆ ในหน่วยงาน หรือ สำหรับ Test Server
หรือ ใช้ ภายใน VMware / VirtualBox เป็นหลัก ( ผมก็ ใช้เพื่อการนี้แหละ ... แบบ Host - Only ด้วย )
------------------------
ผลลัพธ์ หลังจากลองแบบ รีบด่วนแล้ว
พบว่า login ftp ได้ที่ /home/tu2
ซึ่งก็พบว่า ใช้ CoreFTP (windows ) โหลด ไฟล์จาก Pure-ftpd (Ubuntu ) ได้
และยังสามารถ ส่งไฟล์จาก CoreFTP (windows ) ไปยัง Pure-ftpd (Ubuntu ) ได้ ด้วย
โดยจะส่งไปวางไว้ที่ /home/tu2
ซึ่งก็จะเป็นวิธีการ รับส่งไฟล์แบบง่ายๆ ในสภาพแวดล้อมที่ มีความเสี่ยงต่ำ
ระหว่าง linux กับ windows
... อืม ... อาจมีวิธีง่ายกว่านี้ แต่นึกไม่ออก น่ะ :D
Subscribe to:
Posts (Atom)