วันอาทิตย์ที่ 12 มีนาคม พ.ศ. 2560

การติดตั้งและแชร์ไฟล์ผ่าน SAMBA ให้กับ Ubutntu server

เขียน เว็บด้วย php มานาน ไหนๆ ก็มาทางนี้แล้ว มาทดลองทำเซิฟเวอร์ใช้เองเลยดีกว่า ด้วย Ubuntu Server ของฟรี ดีดี ยังมีอีกเยอะครับ อันนี้เป็นการติดตั้ง samba เป็นโปรแกรมสำหรับแชร์ไฟล์บน linux นะครับ ไปดูกันครับ ง่ายๆ

1. เปิด Terminal ขึ้นมา  ด้วยการกด Ctrl + Alt + t

      2. ให้ทำการ Update และ Upgrade Server ให้มีความเป็นปัจจุบันก่อน

  •     การ Update จะใช้คำสั่ง  $ sudo apt-get update  จากนั้นใส่รหัสผ่านลงไป
  •     การ Upgrade จะใช้คำสั่ง $ sudo apt-get upgrade จากนั้นใส่รหัสผ่านลงไป

ผลจากการ Update Upgrade เสร็จ

      3. ติดตั้ง SAMBA ด้วยแพ็คเกต samba โดยการใช้คำสั่งดังต่อไปนี้  $ sudo apt-get install samba  ดังรูป

ผลการติดตั้งเสร็จ



      4. ตรวจสอบการทำงานของ SAMBA โดยการใช้คำสั่งดังต่อไปนี้ $ netstat –tan จะพบว่ามี Service NetBIOS ทำงานอยู่ที่พอร์ต 139  และService Microsoft-DS ทำงานอยู่ที่พอร์ต  445 ดังรูป


     5. แก้ไขไฟล์คอนฟิกของ SAMBA ที่มีชื่อว่า smb.conf ซึ่งเก็บไว้ที่ /etc/samba/  โดยใช้คำสั่งดังต่อไปนี้
$ sudo gedit /etc/samba/smb.conf  ดังรูป

      6. บรรทัดที่ต้องทำการแก้ไขมีดังต่อไปนี้
workgroup = ชื่อ workgroup ที่ต้องการ
server string = ชื่อ samba server ที่ต้องการให้ client มองเห็น
security = กำหนดเป็น share หรือ user  
/* กรณีที่เป็น share คือ ไม่ต้องมีบัญชีผู้ใช้อยู่ในระบบก็สามารถใช้งาน SAMBA ได้
กรณีที่เป็น user คือ ต้องทำการล็อกอินเพื่อเข้าใช้งาน SAMBA โดยจะต้องใช้บัญชีผู้ใช้ที่มีอยู่ในเครื่อง Server เท่านั้น */
encrypt passwords = true หรือ false //เป็นการกำหนดว่าจะให้มีการเข้ารหัส  password หรือไม่
#===================== Share Definitions ===================
ในส่วนต่อไปนี้คือ เป็นการกำหนดให้ผู้ใช้ที่มีบัญชีอยู่ในระบบสามารถใช้บริการของ  SAMBA ได้ โดย Directoryหลักจะอยู่ที่  Home Directory ของผู้ใช้ที่ทำการ Login เข้าใช้บริการของ SAMBA  
 การใช้บริการ SAMBA ในส่วนนี้ สามารถเข้าใช้บริการโดยผ่านการอ้างอิงในช่อง Address Bar ของ Explorerดังนี้  \\Server IP\User Account on Server  เช่น  \\192.168.107.144\redcrow
[homes] //เป็นชื่อ Share Directory ที่ต้องการให้ผู้ใช้มองเห็น
            comment = Home Directories  //comment
browseable = yes หรือ no /* เป็นการกำหนดว่าจะให้มองเห็น directory นี้ได้หรือไม่  ถ้าเป็น yes คือมองเห็น  และใช้งานได้
แต่ถ้าเป็น no คล้ายๆกับเป็นการซ่อนไฟล์  คือ มองไม่เห็น  แต่ยังสามารถใช้งานได้  */
read only = yes หรือ no  /* เป็นการกำหนดว่าจะให้อ่านข้อมูลได้อย่างเดียวหรือแก้ไขได้ด้วย */
            create mask = 0700 //เป็นการกำหนด Permission ให้กับ file ที่อยู่ใน homes directory
directory mask = 0700  /* เป็นการกำหนด Permission ให้กับ directory ที่อยู่ใน homes directory */
            valid user = %S หรือ บัญชีผู้ใช้ที่ต้องการให้สามารถเข้าใช้บริการของ SAMBA ได้
/* กรณีที่กำหนดเป็น %S คือ ผู้ใช้คนใดก็ตามที่มีบัญชีอยู่ในระบบ สามารถเข้าใช้บริการของ SAMBAได้
กรณีที่กำหนดเป็นบัญชีผู้ใช้ เช่น peter,redcrow,pat คือการกำหนดระบุเฉพาะบัญชีผู้ใช้ที่ได้รับอนุญาตให้เข้าใช้บริการของ SAMBA ได้เท่านั้น */
               
และให้เพิ่มคอนฟิกต่อไปนี้ต่อท้ายไฟล์ smb.conf  ซึ่งในตอนแรกจะไม่มี  ให้เราเพิ่มเข้าไปเอง ดังนี้
[share] //เป็นชื่อ Share Directory ใหม่ที่ต้องการให้ผู้ใช้มองเห็น
            comment = Server Share //comment
            path = path ที่ต้องการจะ share  // เช่น /home/PShare/
read only = yes หรือ no  /* เป็นการกำหนดว่าจะให้อ่านข้อมูลได้อย่างเดียวหรือแก้ไขได้ด้วย */
            create mask = 0700 //เป็นการกำหนด Permission ให้กับ file ที่อยู่ใน homes directory
directory mask = 0700  /* เป็นการกำหนด Permission ให้กับ directory ที่อยู่ใน homes directory */
guest ok = yes หรือ no /* หากมีการกำหนดเป็น yes  จะหมายถึงการ share directory นั้นเป็นแบบ Public คือทุกคนสามารถใช้บริการได้ โดยไม่จำเป็นต้องมีชื่อผู้ใช้อยู่ใน Server */
valid user = %S หรือ บัญชีผู้ใช้ที่ต้องการให้สามารถเข้าใช้บริการของ SAMBA ได้
/* กรณีที่กำหนดเป็น %S คือ ผู้ใช้คนใดก็ตามที่มีบัญชีอยู่ในระบบ สามารถเข้าใช้บริการของ SAMBAได้
กรณีที่กำหนดเป็นบัญชีผู้ใช้ เช่น peter,redcrow,pat คือการกำหนดระบุเฉพาะบัญชีผู้ใช้ที่ได้รับอนุญาตให้เข้าใช้บริการของ SAMBA ได้เท่านั้น*/
               
    
       7. ทดลองกำหนดค่าดังนี้

workgroup = WORKGROUP
server string = SAMBA SERVER
security = user  
encrypt passwords = true 

 
 
#===================== Share Definitions ===================
[homes]
            comment = Home Directories 
browseable =  no
read only = no  
            create mask = 0700
directory mask = 0700  
            valid user = %S 

 
[share]
            comment = Server Share
            path = /home/PShare
read only = no
            create mask = 0777
directory mask = 0777  
guest ok = yes  

 
จากนั้น Save ไว้เหมือนเดิม

      8. สร้าง User สำหรับ SAMBA
                เรามีบัญชีผู้ใช้ของระบบ (Server)  อยู่แล้ว  แต่บัญชีนั้นยังไม่สามารถเข้าใช้บริการของ SAMBA ได้  เราจะต้องทำการ อนุญาตให้สามารถใช้งาน SAMBA ได้ก่อน ด้วยการกำหนด password การเข้าใช้งาน โดยการใช้คำสั่งดังต่อไปนี้  $ sudo smbpasswd –a user_account  ดังรูป

      9. จากนั้น Restart การทำงานของ Service SAMBA โดยใช้คำสั่งดังต่อไปนี้ $ sudo smbd –D  และ
$ sudo nmbd –D ดังรูป

     10. เมื่อกำหนดค่าคอนฟิกเสร็จแล้ว ให้ทำการสร้าง directory ที่จะแชร์ขึ้นมาและกำหนด permission  เป็น 777  ตามที่ได้ตั้งค่าคอนฟิกไว้ว่า path = /home/PShare,  create mask = 0777  และ directory mask = 0777  จากนั้นใช้คำสั่งดังต่อไปนี้  $ sudo mkdir /home/PShare/  แล้วตามด้วย
$ sudo chmod 777 /home/PShare/  ดังรูป

      11. เมื่อทำการตรวจสอบใน  /homeโดยพิมพ์คำสั่ง $ ls – l /home จะพบว่ามี directory “PShare” ถูกสร้างขึ้น และมี  permission เป็น777 ดังรูป

      12. ทดสอบการเข้าใช้บริการ SAMBA ผ่านคอมพิวเตอร์อีกเครื่อง (Windiws 7) แต่ก่อนอื่นจะทำการตรวจสอบ IP ของเครื่อง Server ก่อน โดยการพิมพ์คำสั่งดังต่อไปนี้ที่ Server  $ sudo ifconfig ดังรูป

      13. ที่เครื่อง Client (Windows 7) จะมี Share File แสดงขึ้นมาในหน้าต่าง Network Explorer  ดังรูป

      14. ลองเข้าไปข้างใน Share File (UBUNTU) นั้นด้วยการดับเบิ้ลคลิกที่ “UBUNTU” จะพบว่ามีเพียง directory “share” เพียง directoryเดียวเท่านั้นที่เราสามารถมองเห็นได้ เนื่องจาก directory “homes” เราตั้งค่าคอนฟิกเป็น browseable = no จึงไม่สามารถมองเห็นได้  แต่ยังสามารถใช้งานได้  ดังรูป

หากมีการตั้งค่าคอนฟิกใน directory “homes” เป็น browseable =  yes จะทำให้สามารถมองเห็นได้ดังรูป

      15. ทดลองเข้าใช้งานใน directory “share”
ด้วยการดับเบิ้ลคลิกที่ directory “share”  หากใน directory “share” ได้มีการแชร์ ไฟล์ไว้  เมื่อเราเปิดเข้าไปก็จะพบไฟล์ที่ได้แชร์ไว้ ดังรูป



      16. ทดลองเข้าใช้งานใน directory “homes”   
                 เนื่องจาก directory “homes” ถูกซ่อนไว้ไม่ให้มองเห็น ด้วยคอนฟิก  broweable = no  แต่ไม่ได้หมายความว่าเข้าใช้ไม่ได้  การเข้าใช้งานทำได้ดังนี้  พิมพ์  \\Server IP\User Account in Server เช่น \\192.168.107.144\redcrow  ลงในช่อง Address Bar ของ Explorer ดังรูป
 
      17. จะมีไดอะล็อกถามชื่อผู้ใช้กับรหัสผ่านแสดงขึ้นมา  ก็ให้ทำการกรอกลงไป  จากนั้นกดปุ่ม OK

      18. สามารถเข้าใช้งานได้ดังรูป

ติดตั้ง linux ด้วย usb flash drive ง่ายฟุดๆ

การติดตั้ง linux ด้วย usb flash drive มีขั้นตอนง่ายๆ ต้องบอกว่าง่ายมากๆ ครับ ไปเจอมาจากเว็บไซต์ชื่อดัง หุหุ ขอเก็บไว้เป็นความรู้นะครับ รายละเอียดดังนี้ครับ

หลังจากที่ลองทำ Multiboot OS setup มาหลายตัว หลายวิธี จนมาพบกับวิธีที่ง่ายแสนง่าย ไม่ต้องตั้งค่าอะไรทั้งนั้น คลิก ๆ เลือก ๆ Next ๆ จบ

Let's Go !!



สิ่งที่ต้องเตรียม :
1. โปรแกรม Yumi http://www.pendrivelinux.com/downloads/YUMI/YUMI-2.0.0.5.exe
2. Flashdrive 8GB+ หรือจะ 16GB ไปเลยก็ได้
3. ไฟล์ .ISO ไม่ว่าจะ Windows Linux Hiren’s boot ฯลฯ จัดมาเลยยย

เตรียมครบ 3 อย่างแล้ว ลุยกันเลยยย !

วิธีทำ :
1. เปิดโปรแกรม Yumi คลิก I Agree


2. เลือก drive ที่ต้องการนำมาทำ Multiboot
** ถ้าเลือก Show All Drives ระวังจะเลือก drive ผิดนะ เดี๋ยวงานเข้า


3. เลือกระบบที่ต้องการนำมาทำ Multiboot (ถ้า flashdrive มีข้อมูลอยู่แล้ว แนะนำเลือก Format … Drive ด้วย)
** ในที่นี้จะทำแค่ XP / 7 / Ubuntu
** ถ้าทำ 2+ รอบแล้ว ไม่ต้อง Format นะครับ


4. เลือกไฟล์ .ISO ที่มี ให้ตรงกับที่เลือกไว้ใน Step 2


5. คลิก Create จะขึ้นหน้าต่างแจ้งเตือน ว่าสั่งให้ทำอะไรไปบ้างตรวจเช็คดูอีกที ถ้าชัวร์แล้วก็ Yes ไป


6. รอ รอ รอ


7. คลิก Next


8. จะขึ้นถามว่า ต้องการจะเพิ่ม ISO บน drive … อีกหรือไม่ ต้องการก็ Yes ไป พอแล้วก็ No
8.1 Yes กลับไปทำ 2-4 ใหม่
8.2 No นำไปบูตใช้งานได้

9. เย้ เสร็จแล้ว



Enjoy !

* ผิดพลาดประการใด ต้องขออภัยด้วยนะครับ

User : 999298


Ref. http://pantip.com/topic/32230350

webheaven บริการทำเว็บไซต์ ราคาถูก !!

phplike เรียน php ที่นี่

gosook วาไรตี้เพื่อความสุข

สอน java gui + mysql

Config XAMPP ให้เข้าถึงได้เฉพาะ IP ที่กำหนด

1. เปิด xampp control panel ->Apache Actions -> Config -> Apache(httpd-xampp.conf) จะเปิดไฟล์ config ขึ้นมาด้วยโปรแกรม Notepad นะครับ
2. ในไฟล์ notepad ให้หาข้อความ <LocationMatch จะเจอบล็อคข้อความดังภาพนะครับ ให้แก้ไขเป็น ดังนี้
 <LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
    Order deny,allow
    Allow from ::1 127.0.0.1 \ 192.168.1.188 \ 192.168.1.104
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>
3. ส่วนของ Allow from ::1 127.0.0.1 \ 192.168.1.188 \ 192.168.1.104 บรรทัดนี้ผมได้กำหนดไว้ว่าจะให้เครื่องที่มี IP ดังกล่าว เข้ามาใช้งานได้เท่านั้นครับ ดังนั้นเครื่องอื่นๆ ที่ IP ไม่ตรงจะเข้ามาไม่ได้

ทำ USB Flash Drive ไว้ Boot Hiren's BootCD

          ข้อมูลด้านล่างนี้ทั้งหมดคัดลอกมาจากเว็บ http://itamusing.com/smf/index.php?topic=73.0 นี้นะครับ เพื่อเก็บไว้เป็นความรู้ครับผม ตามไปอ่านกันได้ครับ
ทำ USB Flash Drive ไว้ Boot Hiren's BootCD

Hiren's BootCD From USB Flash Drive

1 Format USB Flash Drive ภายใต้ Windows ก็ได้ครับ แต่ต้องเป็น FAT 32 นะครับ
ไม่ต้องใช้ USB Disk Storage Format หรือเครื่องมือพิเศษใดๆในการ Format ก็ได้
ผมลองใช้ Quick Format จาก Windows 8.1 ตามรูปครับ




คลิก Start แป๊บเดี่ยวก็ขึ้น Format Complete แล้ว ก็ Quick Format ไง

2 ตอนนี้ต้องใช้ grub4dos สร้าง Boot Partition ถ้าไม่มีก็ Download  grub4dos.zip ที่นี่เลย
แตกไฟล์ออกมาแล้วจะเห็นมีหลายไฟล์ และมี grubinst_gui.exe ด้วย ดับเบิ้ลคลิกเลยครับ
จะเป็น Grub4Dos Installer 1.1  ตามรูป



จะเห็นว่างๆอยู่ เริ่มจากเลือก disk แล้วคลิก Dropdown ถ้าไม่เห็นอะไรลองคลิก Refresh ดู
หา Flash Drive เจอแล้วเลือกเลยครับ ถ้าไม่รู้ตัวไหนก็ดูขนาดประมาณ Flash Drive ของเรา (อย่าผิดตัวนะ)



ต่อไปคลิก Refresh ที่ Part List แล้วคลิก Dropdown เลือก Whole disk (MBR)



เสร็จแล้วคลิก Install ข้างล่าง



เห็นไหมครับ มันบอกว่า successfully installed แล้ว



ให้ Press Enter ก็ทำไป ก็เป็นการสร้าง Boot Partition เสร็จแล้วครับ

3 Copy Hiren's BootCD ทุกไฟล์ ไปไว้ใน Flash Drive
ถ้าชอบใช้ Ghost ก็จะมีใน Version 10.6 เป็น Version สุดท้าย
ส่วนผมชอบใช้ Hiren's.BootCD 11.0 Restored Edition (Version 11.0 ของแท้ไม่มี Ghost)
แต่มีผู้อยากใช้ของเก่าที่ตัดออกไป (พวก Ghost และอื่นๆ) เลยทำ Restored Edition ออกมา

สุดท้าย Copy ไฟล์ grldr กับ menu.lst จาก grub4dos.zip ที่แตกไฟล์ไว้ หรือจะเอาจาก Hiren's BootCD ก็ได้
ซึ่ง grldr กับ menu.lst ก็มีอยู่ใน HBCD folder ของ Hiren's BootCD ทุกรุ่นอยู่แล้วครับ
Copy ไว้ที่ root directory ของ Flash Drive ก็สำเร็จเสร็จสิ้นแล้ว เอาไปลอง Boot ดู

Environment ที่ใช้ทดสอบ
ใช้ Windows 8.1 ในการ Format Flash Drive ให้เป็น FAT 32 และใช้ Quick Fromat ก็ OK
ใช้ Flash Drive รุ่น DataTraveler 100 G2 Kingston ขนาด 32 GB.
เคยได้ยินว่า Flash Drive ใหญ่ๆ รุ่นใหม่ใช้ไม่ได้ เลยทดสอบ 32 GB. ใช้ได้ดี
จริงๆหา Flash Drive ที่เล็กที่สุดมาใช้ก็พอ เพราะใช้เนื้อที่ไม่เกิน 512 MB. เอง

เครดิต http://www.hiren.info/pages/bootcd-on-usb-disk

แนะนำไฟล์ MobaLiveUSB_0.2.exe ใช้ทดสอบภายใต้ Windows
โดยยังไม่ต้อง Boot จาก Flash Drive จริง
วิธีใช้ก็ Copy ไปใส่ใน Flash Drive แล้ว Run as administrator ดู



คลิก Oui มันคงแปลว่า Yes แล้วจะเห็นเหมือนตอนเอา Flash Drive ไป Boot จริงๆเลย



ลองเลือก Norton Ghost 11.5.1 จากหมวด Dos Programs





ถ้าใช้ได้ตามรูปก็เอา Flash Drive ไป Boot ใช้จริงได้เลยครับ



เครดิต จากคุณ microsoft จาก Web VarietyPC.net ลองตามไปดู

http://www.varietypc.net/forum/

เพิ่มเติมอีกนิด "อยากเรียนรู้เกี่ยวกับ grub4dos ลองไปดูที่"

http://ipowerthailand.wordpress.com/2010/06/27/%E0%B8%A1%E0%B8%B2%E0%B8%A3%E0%B8%B9%E0%B9%89%E0%B8%88%E0%B8%B1%E0%B8%81-grub4dos-%E0%B8%81%E0%B8%B1%E0%B8%99%E0%B9%80%E0%B8%96%E0%B8%AD%E0%B8%B0-boot-loader-%E0%B8%97%E0%B8%B5%E0%B9%88%E0%B8%A1/

ถ้าจะลองหา grub4dos ตัวใหม่ๆ ไปดูที่นี่

https://code.google.com/p/grub4dos-chenall/downloads/list

ประมาณรุ่น  grub4dos-0.4.6a-2014-01-17.7z แต่ยังไม่เคยใช้ ก็อันเดิมมันใช้ได้ดีอยู่แล้วนี่นา...

วิธีแก้รหัสผ่าน BIOS ลบรหัส BIOS ง่ายๆ

                วันนี้ดีใจ สบายใจ โลงใจสุดๆ ฮ่าๆๆๆ มาเขียนบทความแบ่งปันเพื่อนๆ เผื่อใครจะเจอปัญหาเดียวกันกับผมครับ พอดีน้องเอาโน็ตบุคมาให้ลง windows ใหม่ครับ อืม ไม่น่ายาก เปิดเครื่องเข้า bios ปุ๊ปป๊าปป มาแล้ว bios ขึ้นให้ใส่รหัสผ่าน อ่าวน้องรหัสผ่านอะไร หนูจำไม่ได้เหมือนกัน ตอนนั้นหนูตั้งมั่ว -*- ห๊าาา อะไรนะ เอาแล้วไง งานเข้า google แล้ว หาข้อมูลอยู่หลายวันเลยแหละ ทั่วๆไปก็เคลียร์ cmos ด้วยโปรแกรม ถอดถ่าน cmos แล้วก็แก้ด้วยคำสั่ง dos อยู่แถวๆ นี้แหละ เหมือนกันเกือบทุกเว็บ จนแล้วจนรอดก็แก้ไม่ได้ครับ ก็เลย flash bios แม่มเลย เรียบร้อย ฮ่าๆๆๆๆๆ ผลก็คือ ยังติดรหัสผ่านเหมือนเดิม อะไรฟ่ะ!!!! จะทำไงหละเนี่ย!!!
               หาหาหาหาหา หาข้อมูลต่อไปเรื่อยๆ และแล้วก็ไปเจอจนได้ เว็บอะไรจำไม่ได้แล้วครับ เขาบอกว่าให้ใส่รหัสมั่วๆ ไปเลย จะได้ CODE มา 5  ตัวแล้วเอาโค้ดนั้นไปถอดรหัส หุหุ มันถอดรหัสได้ด้วยแหะ เอาหละมั่วเลยเรา !@#$ !@#$ !@#$


มั่วไป 3 รอบจะได้ code แบบนี้
อ่าาาา พอได้มาแล้ว เราก็จดไว้แล้วไปเข้าเว็บไซต์นี้ http://bios-pw.org/
จากนั้นเอา code ที่ได้ ไปใส่ แล้วกดปุ่ม get password แล้วเว็บเข้าก็จะถอดรหัสออกมาให้ สำหรับ bios แต่ละตัวครับ
            อย่างของเครื่องผมเป็น bios ของ phoenix โน็ตบุครุ่น acer aspire 4741z ครับ ผมก็ใช้รหัส Generic Phoenix อันแรกเลยที่เว็บเค้าบอก ลองไปเข้า bios แล้วใส่รหัสตามเว็บครับ ก็เข้าได้เลย เป็นอันเรียบร้อยครับ ทีนี้จะทำอะไรต่อก็สบายหละครับ ฮ๋าๆๆๆๆๆๆ

ONVIF เทคโนโลยีการติดต่อสื่อสารมาตรฐานกล้องวงจรปิด กับ PHP โปรแกรมมิ่ง

อันนี้รวมข้อมูลแหล่งที่ใช้ศึกษา และ Lib ต่างๆ


สองอันแรกนี่เห็นว่าได้รางวัลซะด้วย
https://github.com/ltoscano/ponvif
http://hubpages.com/technology/onvif-programming-revealed


นี่อีกอัน
https://github.com/mapbuh/onvif-client-php

PHP Class
https://www.phpclasses.org/package/7996-PHP-Control-network-video-devices-with-ONVIF-protocol.html


อันนี้ไว้ส่ง SMS รู้สึกมีแผน
http://frontend.thaibulksms.com/api

แยก WiFi Subnet ระหว่างพนักงาน และลูกค้า ด้วย Access Point TP-Link รุ่น EAP120

โจทย์มีอยุ่ว่า ปัจจุบัน AccessPoint ต่อไปขอเรียก AP มีความสามารถมากขึ้นเรื่อยๆ ที่เห็นกันชัดๆ AP ตัวเดียวแบ่งแยก SSID ได้มากมายแล้วแต่รุ่น ยี่ห้อ ความต้องการลูกค้าคือ ต้อง AP ที่ติดตั้งทั่วสำนักงาน ให้แสดง SSID เดียวกันทั้งหมด โดยแต่ละตัวจะมี 2 SSID คือ สำหรับลูกค้าและพนักงาน โดยที่ SSID ของลูกค้าและพนักงานจะต้องแยก Subnet กันด้วย แล้วก็แยกเน็ตกันด้วย

อุปกรณ์ที่ใช้มีดังนี้
AccessPoint : TP-Link EAP120
Switch : Cisco SF300
สำหรับตัวอุปกรณ์บางท่านจัดได้ดีกว่านี้ อาจมีรุ่นที่ติดตั้งง่ายกว่านี้ครับ แต่ที่ผมต้องจัดแบบนี้เพราะเกิดความผิดพลาดนิดหน่อย ฮ่าๆๆๆๆ ไม่เป็นไรแก้ปัญหากันไปครับ

แผนผังเครือข่ายคร่าวๆ จะเป็นประมาณนี้นะครับ
เริ่มตั้งค่ากันเลยครับ อันดับแรกตั้ง ค่า Access Point ด้วย EAP Controller สำหรับ EAP Controller เดี๋ยวมาอธิบายการใช้งานให้วันหลังนะครับ หาอ่านตาม google ไปก่อนนะครับ ขอเขียนอันนี้ก่อนเดี๋ยวลืม
มี AP ทั้งหมด 5 ตัวซึ่งแต่ละตัวจะมี 2 SSID โดยมี VLAN แตกต่างกัน
SSID : EMP
VLAN : 100

SSID : GUEST
VLAN : 200

ในตัวอย่างไม่ได้ตั้ง Security ในการใช้งานจริงต้องตั้งค่าด้วย เลือกใช้ที่สะดวก


เนื่องจากตัว AccessPoint TP-Link EAP120 นั้นไม่มี DHCP Server ในตัวการจะแยก Subnet ได้นั้นจำเป็นต้องอาศัยอุปกรณ์ที่สามารถแจก IP คนละ Subnet ได้ เช่น Mikrotik RouterOS หรือ Router ที่สามารถทำ 2WAN ได้ สำหรับการทดลองของผมจะใช้ Router บ้านธรรมดา 2 ตัว ต่อเข้ากับ Switch Cisco SF300-24PP และใช้เจ้า Cisco เป็นตัวจัดการ VLAN แทน โดยตั้งค่าดังนี้

Port 1-5 ต่อกับ AccessPoint
Uplink GE1 ต่อกับ Router1 (192.168.100.1/24)
Uplink GE2 ต่อกับ Router2 (192.168.200.1/24)

ตั้งค่า VLAN ที่ Cisco ดังนี้
VLAN Management
VLAN Settingsสร้าง VLAN ตามภาพ VLAN ID และ VLAN Name ตั้งเองได้ตามสะดวก


จะมี VLAN ทั้งหมด 3 อัน ดังภาพ
Interface Settingsเปลี่ยน Interface VLAN Mode ของพอร์ตที่ต่อกับ Router ทั้ง 2 พอร์ตให้เป็น Access ตามภาพ

Port to VLAN
เลือก VLAN ที่สร้างขึ้นมาแล้วทำการ Tagged พอร์ตที่ Access Point ต่ออยู่ทั้งหมด และ Untagged พอร์ตที่ต่อเข้ากับ Router ของ VLAN นั้น
ทำแบบเดียวกันนี้กับ VLAN อื่นๆ ที่ต้องการ

ต่อ ไปเนื่องจาก AccessPoint เราสามารถกำหนด IP Address ได้แค่ชุดเดียว ดังนั้นจำเป็นจะต้องให้ Swicth ทำหน้าที่กำหนดเส้นทางให้แต่ละ VLAN ไปรับ DHCP Server อย่างถูกต้อง โดยใช้ DHCP Relay ไปตั้งค่าที่นี่

IP Configuration


DHCP Snooping/Relay


Properties
DHCP Relay = Enable
Add IP Address ของ DHCP Server ในที่นี้คือ Router ทั้งสองตัว

Interface Settings
เพิ่ม รายการ VLAN เข้าไป และตั้งค่า DHCP Relay = Enable , DHCP Snooping = Enable

DHCP Snooping Trusted Interfaces
ตั้งค่า Trusted Interface ของพอร์ตที่ให้ AccessPoint ผ่าน
เสร็จเรียบร้อย เพียงเท่านี้เราก็สามารถแยก Subnet ของ SSID ที่ต่างกันได้แล้ว
เจ้า TP-Link ตัวนี้ยังมีความสามารถอีกมากนะครับ เดี๋ยวจะมาเขียนต่อว่าเวลาสรุปงานแล้วจะเอามันไปใช้ในลักษณะใดบ้างครับ

โมเดล-วิว-คอนโทรลเลอร์(MVC)

โมเดล-วิว-คอนโทรลเลอร์

        Model-View-Controller (MVC) คือ สถาปัตยกรรมซอฟต์แวร์ชนิดหนึ่ง ซึ่งในขณะนี้ถือว่าเป็นแบบแผนสถาปัตยกรรม (architectural pattern) ที่ใช้ในสาขาวิศวกรรมซอร์ฟแวร์ รูปแบบ MVC ใช้เพื่อแยกส่วนซอฟต์แวร์ในส่วน ตรรกะเนื้อหา (domain logic) ได้แก่ความเข้าใจในระบบของผู้ใช้ และส่วนการป้อนข้อมูลและแสดงผล (GUI) ซึ่งช่วยให้การพัฒนา การทดสอบ และการดูแลรักษาซอฟต์แวร์ แยกออกจากกัน

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

วิว (View) แสดงผลค่าในโมเดลในรูปแบบที่เหมาะสมต่อการปฏิสัมพันธ์กับผู้ใช้ ในแต่ละโมเดลสามารถมีวิวได้หลายแบบ เพื่อใช้ในจุดประสงค์ที่ต่างกัน

คอนโทรลเลอร์ (Controller) รับข้อมูลจากผู้ใช้เข้ามา แล้วดำเนินการตอบสนองต่อข้อมูลนั้น โดยเรียกใช้ logic ต่างๆจากอ็อบเจกต์ในโมเดล และส่งข้อมูลผลลัพย์นั้นกลับไปยังส่วนแสดงผล เพื่อตอบกลับไปยังผู้ใช้ได้อย่างถูกต้อง
แอปพลิเคชันที่ใช้ MVC อาจจะเป็นกลุ่มของ โมเดล/วิว/คอนโทรลเลอร์ โดยแต่ละกลุ่มใช้ในงานต่างกันไป
MVC มักจะพบได้ในเว็บแอปพลิเคชันโดย วิว จะเป็น HTML หรือ XHTML ที่สร้างโดยแอปพลิเคชันนั้น ส่วนคอนโทรลเลอร์รับค่า GET หรือ POST เข้ามา แล้วเลือกติดต่อกับโมเดลในส่วนที่เกี่ยวข้องเพื่อตอบสนอง โมเดลซึ่งมี business rules จะทำการจัดการตามคำร้องขอนั้นๆ

ประวัติ

MVC ได้ถูกอธิบายครั้งแรกในปีคศ. 1979  โดย Trygve Reenskaug ซึ่งในระหว่างนั้นได้ทำงานเกี่ยวกับภาษา Smalltalk ที่บริษัท Xerox PARC. การนำไปใช้แบบดั้งเดิม ได้ถูกอธิบายอย่างละเอียดในเปเปอร์ที่สำคัญชื่อ "Applications Programming in Smalltalk-80: How to use Model–View–Controller".
หลังจากนั้นได้มีรูปแบบของ MVC แยกย่อยออกมาหลายแบบด้วยกัน ตัวอย่างเช่น Model View Presenter ถูกนำไปใช้ใน .NET Framework แต่ MVC แบบมาตรฐานก็ยังคงเป็นที่นิยมอยู่

Overview

แม้ว่า MVC จะมีรูปแบบต่างกันไป แต่ control flow มันจะเป็นดังนี้:
  1. ผู้ใช้ทำการตอบโต้ กับ user interface ในทางใดทางหนึ่ง (ยกตัวอย่างเช่น กดปุ่มเมาส์)
  2. คอนโทรลเลอร์ จัดการ event ที่เกิดขึ้นจาก user interface มักจะโดย handler ที่ได้สร้างเอาไว้ หรือ callback แล้วแปลง event เป็นการกระทำของผู้ใช้ที่เหมาะสม ซึ่งเข้าใจได้ด้วยโมเดล
  3. คอนโทรลเลอร์ แจ้งโมเดลถึงการกระทำของผู้ใช้ เช่นอาจจะทำให้เกิดการเปลี่ยนสถานะในโมเดล (ยกตัวอย่างเช่น คอนโทรลเลอร์ปรับปรุงตะกร้าสินค้าของผู้ใช้)
  4. วิว ถามโมเดลเพื่อที่จะสร้างการแสดงผลที่เหมาะสมแก่ผู้ใช้ (ยกตัวอย่างเช่น วิวแสดงรายการสินค้าในตะกร้าสินค้า) โดยวิวได้ข้อมูลมาจากโมเดล ในบางรุปแบบของ MVC คอนโทรลเลอร์อาจจะให้คำสั่งแก่วิวด้วย หรือบางรูปแบบ วิวจะได้รับการบอกจากโมเดลถึงการเปลี่ยนแปลง
  5. user interface รอการปฏิสัมพันธ์จากผู้ใช้ ซึ่งจะกลับเข้าสู่วงจรในขั้นแรก
ในบางรูปแบบของ MVC เช่นใน W3C XForms ใช้หลักการของ dependency graph เพื่อให้เกิดการปรับปรุงวิวโดยอัติโนมัติ เมื่อข้อมูลในโมเดลเปลี่ยนแปลง
ด้วยการแยกโมเดลและวิวออกจากกัน MVC ช่วยให้ความซับซ้อนในการออกแบบลดลง และเพิ่มความคล่องตัวและการนำโค้ดกลับมาใช้ใหม่ (Code reuse)

วันพุธที่ 8 มีนาคม พ.ศ. 2560

วิธีการตรวจสอบ OpenGL บน Ubuntu

หลายๆ คนอาจจะสงสัยว่า OpenGL คืออะไร ถ้าเรารู้จัก DirectX บนระบบปฎิบัติการวินโดวส์ ซึ่งถ้าไม่ลง DirectX ก็เล่นเกมส์ไม่ได้ ตัวโปรแกรม OpenGL ก็ทำหน้าที่แบบนั้นในระบบปฎิบัติการ Linux เช่นกันครับ ผมจึงได้นำเสนอบทความเกี่ยวกับ การรู้จักและใช้งาน OpenGL บน Ubuntu Linux กันครับ
OpenGL ก็คือโปรแกรมที่หน้าที่เป็น ชุดคำสั่งด้านกราฟิก 2D หรือ 3D เพื่อส่งคำสั่งควบคุมการวาดภาพไปยังอุปกรณ์ฮาร์ดแวร์การประมวลผลภาพ ซึ่ง OpenGL จึงเปรียบเสมือนตัวกลางสำหรับโปรแกรมทีีจะเข้ามาควบคุมภาพกราฟฟิค ซึ่งตรงนี้ก็คือสิ่งที่จำเป็นจะต้องมี เพราะถ้าไม่เช่นนั้นแล้ว ก็จะเป็นการยากที่นักพัฒนาซอฟแวร์ จะต้องใช้เวลานับแรมเดือนแรมปีในการเขียนโปรแกรมเพื่อควบคุมกราฟฟิคเอง จะทำให้ต้นทุนในการพัฒนาซอฟแวร์สูงขึ้น ใช้เวลามากขึ้นและการบริหารจัดการระบบจะทำได้ยาก จึงมีผุ้ที่คิดว่าจะต้องมีตัวกลางในการบริหารจัดการกราฟฟิค และนักพัฒนาเข้าไปเชื่อมต่อกับตรงนั้นเพียงจุดเดียว จึงได้มีแนวคิดในการทำ OpenGL สำหรับประมวผลในด้านกราฟฟิค ซึ่งในระบบปฎิบัติการวินโดวส์ หลายๆ คนก็จะรู้จัก DirectX เพราะถ้าไม่ลง DirectX ก็จะไม่สามารถเล่นเกมส์ได้ หลายๆ คนรู้แค่นี้ แต่หลายๆ คนไม่ได้รู้ว่า OpenGL ก็เคยทำหน้าที่ตรงนี้มาก่อน หลายๆ ค่ายเกมส์ ได้ใช้ OpenGL เป็นฐานสำหรับการพัฒนาเกมส์ แต่ต่อมาทางบริษัทไมโครซอฟต์ได้พัฒนา DirectX ขึ้นมาทำหน้าที่แทน OpenGL ให้นักพัฒนา ให้เป็นมาตรฐานกลางให้นักพัฒนาเกมส์ ได้พัฒนาเกมส์บนวินโดวส์ขึ้นมา แต่ต่อเมื่อเมื่อโลกเปลี่ยนแปลง Linux ได้รับความนิยมมากขึ้น OpenGL จึงได้ถูกพัฒนาให้เป็นรุ่นใหม่ๆ เพื่อให้เกมส์สามารถทำงานบน Linux ฉะนั้น ดังนั้นเราจึงเห็น OpenGL รุ่นใหม่ๆ ที่ถูกพัฒนาออกมาดีขึ้น มีประสิทธิภาพมากขึ้น และถูกนำมาใช้บน Linux และปัจจุบันเราก็เห็นว่าค่ายๆ เกมส์ต่างๆ เริ่มหันมาสนใจ Linux มากขึ้น
ทีนี้เราจะรู้ได้อย่างไรว่า OpenGL ที่เราใช้อยู่บน Linux สามารถใช้การได้ดี ผมเองจึงจะมาแนะนำวิธีการตรวจเช็คบน Ubuntu Linux กันครับ ให้เราเปิดโปรแกรมที่ชื่อว่า terminal แล้วเรียกใช้งานโดยอาศัยคำสั่งดังนี้
sudo apt-get install mesa-utils
ซึ่งจะเป็นการติดตั้งชุดคำสั่งสำหรับตรวจสอบ OpenGL และถ้าหากว่าเราจะตรวจเช็ค OpenGL ของเราใช้ version ใหน ก็จะให้สั่งดังนี้
glxinfo | grep "OpenGL version"
ซึ่งเครื่องของผมเองได้ การ์ดจอ รุ่น Nvidia ก็เลยแสดงผลดังข้อความด้านล่าง
ouychai@Ouychai-Linux:~$ glxinfo | grep "OpenGL version"
OpenGL version string: 3.3.0 NVIDIA 310.44
ouychai@Ouychai-Linux:~$
แล้วถ้าเราจะทดลองการ์ดอเราสามารถแสดงผลได้หรือไม่ ก็ให้ทดลองใช้คำสั่ง
glxgear
ก็จะปรากฎโปรแกรมดังรูปที่ 1

รูปที่ 1
แต่ถ้าเรายังไม่แน่ใจว่าประสิทธิภาพการ์ดจอเราทำงานได้จริงๆ หรือไม่ ก็ให้ลองกับของจริงๆ เลยครับ โดยทดลองเล่นเกมส์ ทีใช้ OpenGL ก็คือ
โดยการเปิดโปรแกรม ubuntu software center แล้วพิมพ์ chromium ก็จะปรากฎว่าพบเกมส์ chromium-bsu ดังรูปที่2

รูปที่ 2
จากนั้นให้เรากดปุ่ม install ก็จะมีช่องให้กรอก password ดังรูปที่ 3

รูปที่ 3
หรือถ้าเราไม่ใช้โปรแกรม ubuntu software center เราก็สามารถเรียกใช้คำสั่งดังนี้
sudo apt-get install chromium-bsu
จากนั้นให้เราพิมพ์ชื่อโปรแกรม chromium ก็จะปรากฎเกมส์นี้ขึ้น
ก็จะปรากฎว่ามีเกมส์ขึ้นดังรูปที่ 4

รูปที่ 4

รูปที่ 5
มาถึงขึ้นนี้ผมคงจะต้องไม่ต้อง Review สอนการเล่นเกมส์แล้วนะครับ เราสามารถทดลองเล่นได้เลยครับ ถ้าหากว่ามีการใส่ Driver การ์ดจอ และมีโปรแกรม OpenGL แล้ว เกมส์นี้จะไม่กระตุกเลยครับ เพราะเกมส์นี้ผมเคยทดลองเล่นตั้งแต่สิบปีที่แล้ว ตั้งแต่สมัยที่ผมทดลองสร้างชุมชนผู้ใช้งาน Linux ขึ้นมาครั้งแรกที่หมู่บ้านของผมเอง เคยทดลองเล่นเกมส์โดยไม่ติดตั้ง Driver การ์ดจอ ปรากฎว่าเกมส์กระตุกมากๆ แต่พอได้ใส่ Driver การ์ดจอ ปรากฎว่าเกมส์ใหลลื่น ฉะนั้นจึงคิดว่าการ์ดจอรุ่นใหม่ๆ รองรับเกมส์นี้ได้สบายๆ
หรือถ้าคิดว่าเกมส์ 2D ยังไม่สะใจพอที่จะทดสอบ ก็ลองหาเกมส์จำพวก 3D มาเล่นดูนะครับ ผมเคยลองมาแล้วก็รู้ว่าใหลลื่นได้เช่นกัน แล้วคุณก็จะรู้ความจริงว่า Linux สามารถเล่นเกมส์ได้ โดยไม่จำเป็นต้องอาศัยระบบปฎิบัติการวินโดวส์แต่ประการใด

Laravel

  Laravel Framework คือ PHP Framework ตัวหนึ่งที่ถูกออกแบบมาเพื่อพัฒนาเว็บแอพพลิเคชั่นต่างๆ ในรูปแบบ MVC (Model Views Controller) ซึ่งมีการแ...