บทความนี้เราจะมาติดตั้ง Web Server แบบง่ายๆ ด้วยคำที่คุ้นหู คือ LAMP (หลอดไฟๆๆๆๆๆ) เริ่มกันเลย

L ตัวแรกคือ Linux , A คือ Apache หรือ httpd, M คือ MySQL หรือ MariaDB สุดท้าย P คือ PHP ครับ

0. ทำการ Update Package list จาก Repository ก่อนแล้วกันครับ

[root@server ~]#yum update -y

1. ทำการติดตั้ง HTTP Server ด้วย httpd package และคำสั่งให้เปิด Service ดังนี้

[root@server ~]#yum install -y httpd[root@server ~]#systemctl start httpd[root@server ~]#systemctl enable httpd

ตรวจสอบ httpd services

[root@server ~]#systemctl status httpd● httpd.service — The Apache HTTP ServerLoaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)Active: active (running) since Thu 2017–03–09 01:51:52 ICT; 1min 56s agoDocs: man:httpd(8)man:apachectl(8)Main PID: 2158 (httpd)Status: “Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec”CGroup: /system.slice/httpd.service├─2158 /usr/sbin/httpd -DFOREGROUND├─2159 /usr/sbin/httpd -DFOREGROUND├─2160 /usr/sbin/httpd -DFOREGROUND├─2161 /usr/sbin/httpd -DFOREGROUND<br>├─2162 /usr/sbin/httpd -DFOREGROUND└─2163 /usr/sbin/httpd -DFOREGROUNDMar 09 01:51:52 server01.thaiops.com systemd[1]: Starting The Apache HTTP Serv….Mar 09 01:51:52 server01.thaiops.com systemd[1]: Started The Apache HTTP Server.Hint: Some lines were ellipsized, use -l to show in full.[root@thaiops01 ~]#[root@thaiops01 ~]# ss -tlnState Recv-Q Send-Q Local Address:Port Peer Address:PortLISTEN 0 128 *:22 *:*LISTEN 0 128 :::80 :::*[root@thaiops01 ~]#

ทดสอบการใช้งานโดยเปิด Web Browser แล้วพิมพ์ช่อง URL เป็น http://IP-Address-Server

Read More

ถึงแม้ว่าคอมพิวเตอร์จะพัฒนาไปไกล จนถึงระดับ 64 บิตแล้วก็ตาม สิ่งหนึ่งที่ยังเป็นที่นิยม ยังมีใช้อยู่ทั่วไปก็คือ พอร์ตอนุกรม โดยเฉพาะในโลก Embedded system แล้ว หากคุณต้องการที่จะรับส่งข้อมูลระหว่างอุปกรณ์ภายนอก และโปรแกรมภายในคอมพิวเตอร์แล้ว พอร์ตอนุกรม หรือ Serial Port ก็ยังเป็นที่นิยมอยู่ ด้วยความที่มันติดต่อกันในรูปแบบที่ไม่ซับซ้อน สามารถเข้าใจได้ง่าย ช่วยให้งานจบได้เร็ว จึงทำให้ทุกวันนี้ เรายังพบเห็นโปรแกรมที่รับส่งข้อมูลทางพอร์ตอนุกรมอยู่ ถึงแม้่ว่าคอมพิวเตอร์บางเครื่องจะไม่มีพอร์ตอนุกรมแล้วก็ตาม เราก็ยังสามารถที่จะใช้ตัวแปลง USB to Serial ทำงานได้เหมือนๆ กัน

C# ติดต่อโลกภายนอกด้วย  SerialPort Class

Read More

ใช้งาน MySQL ผ่าน xampp บน Windows มาตลอด ก่อนหน้านี้ ก็ใ่ช้ phpmyadmin สำหรับสำรองฐานข้อมูล แต่ข้อมูลเริ่มใหญ่มากขึ้นจนรู้สึกว่าการสั่ง export / import เริ่มช้ามากขึ้นเรื่อยๆ

ตอนนี้ย้ายไปใช้งาน Linux เต็มตัว เลยต้องย้ายฐานข้อมูลไปด้วย แต่ว่าขนาดไฟล์ใหญ่มาก นึกขึ้นได้ว่าสมัยตอนหัดเรียนรู้เขียนเว็บโปรแกรมมิ่งแรกๆ เคยผ่านตาว่าการสำรองข้อมูลใน MySQL มันสามารถทำงานผ่าน command line ได้ เลยไปค้นๆ วิธี แล้วจดบันทึกไว้กันลืม เพราะตอนแรกงงๆ ทำแล้ว error ตลอด กว่าจะเข้าใจว่าต้องทำยังไง

Read More

หลายๆท่านคงจะพบปะสังสรรค์ปัญหาเกี่ยวกับวันที่กันบ้างพอสมควร ไม่ว่าจะเป็นเรื่องของ Y2K ซึ่งฝรั่งตาน้ำข้าวมันหลอกชาวโลกทั้งหลายให้หลงคารมมาแล้ว แต่ บ่ มีอะในกอ ไก่ ขอ ไข่ มีแต่เสียตัง โดยส่วนตัว Y2K หรืออะไรพวกนี้ถ้าเรากำหนดการป้อน ปี เป็นแบบ 4 หลักแล้วปัญหาก็ไม่มี เราจะใช้คำสั่งกำหนด ปีเป็น 4 หลัก ดังนี้

     SET CENTURY ON

แต่ประเด็นที่เราจะมาดูกันคือ จะทำอย่างไรกับฟิลด์วันที่ดี แล้วอยากจะให้วันที่เป็นแบบที่เราต้องการ (ผู้เขียนต้องการต่างหาก)

อยากให้ฟิลด์วันที่ แสดงเป็น วันที่แบบ ไทยๆ เช่น 10 กันยายน 2543 (วันครบรอบ 2 ขวบ ของ web site  ไวเหมือนใจนึก)
เมื่อเข้าไปป้อนอยากป้อนสั้นๆ แค่ 10/09/2543
แล้วถ้าผู้ใช้ป้อน เป็น 2000 ก็ให้แปลงมาเป็น 2543 ให้ด้วยก็ดี
พอป้อนเสร็จก็ให้แสดงกลับเป็นอย่างเก่า 10 กันยายน 2543
และสิ่งที่ขาดมิได้คือตรวจสอบการป้อนวันที่ว่าถูกต้องหรือเปล่า

Read More

ฉันจะทำอย่างไรดี ตอนสร้างฟอร์มแล้วกำหนด ตารางฐานข้อมูลใน DataEnviroment แล้วต่อมาต้องทำการย้ายฐานข้อมูลไปอยู่ directory อื่น?

เมื่อเผลอไป zap ข้อมูลอันเป็นสุดที่รัก (โอ้ลัลลลล…ล้าาาา) จ๊ากๆๆๆๆ

 

สร้างฟอร์มแล้วกำหนด ตารางฐานข้อมูลใน DataEnviroment แล้วต่อมาต้องทำการย้ายฐานข้อมูลไปอยู่ directory อื่น?

สำหรับท่านที่สร้างฟอร์มโดยใช้ DataEnvironment เพื่อกำหนดตาราง วิว และความสัมพันธ์ต่างๆ เพื่อใช้ในฟอร์ม ตอนสร้างมันจะจำ path ของ directory นั้นไว้เมื่อเรานำโปรแกรมที่สร้างเสร็จแล้วไปแจกจ่ายแล้วเปลี่ยน directory เป็นชื่อใหม่ หรือเขียนโปรแกรมบน Drive C: แล้วเปลี่ยนใจอยากจะทำระบบเป็นแบบ Client Access โดย ก๊อบปี้เฉพาะฐานข้อมูลไปไว้ที่ LAN ส่วนโปรแกรมก็ไว้ที่ Drive C: ซึ่ง directory ตอนแรกกับหลังจากย้ายแล้วไม่ตรงกันเป็นต้น หรือทำอย่างไรก็ได้ ที่ทำให้มันเกิด error ตามภาพด้านล่างนี้

c1101.gif (2948 bytes)

แสดงว่าฟอร์มนั้นหา ฐานข้อมูลชื่อ mydatabase.dbc ไม่เจอ …. แล้วเราจะจัดการกับมันอย่างไรดีล่ะ?

Read More

Window API เป็นฟังก์ชันภายนอกชนิดหนึ่งที่มีมาพร้อมกับระบบปฎิบัติการ Windows ที่เราใช้กันอยู่อย่างแพร่หลายในขณะนี้ ซึ่งก็คล้ายๆกับฟังก์ชันของ Visual FoxPro อันที่จริงแล้วฟังก์ชันภายนอกต่างๆนั้นมีอยู่มากมายที่ถูกสร้างขึ้นมา ไม่ว่าจะเป็น Active X Control, ฟังก์ชันที่สร้างขึ้นโดยใช้ภาษา C แล้ว Compile เป็นไฟล์ .DLL (Dynamic Link Library) , Visual FoxPro External Library ไฟล์ .FLL   ซึ่งทั้งหมดที่กล่าวมานี้เราจะเรียกฟังก์ชันหรือโปรแกรมเหล่านั้นว่า API (Application Programming Interface) ทั้งสิ้น

มีความจำเป็นด้วยหรือที่เราจะต้องใช้คำสั่ง Window API ?

ในการเขียนระบบงานหรือโปรแกรมขึ้นนั้นเราไม่จำเป็นต้องเรียกใช้งานฟังก์ชันของ Window API ก็ได้ แต่เพื่อเป็นการเพิ่มประสิทธิภาพของโปรแกรมหรือเมื่อโปรแกรมของคุณต้องมีการติดต่อระหว่างระบบปฎิบัติการ คุณก็สามารถทำการเรียกใช้งานฟังก์ชันต่างๆเหล่านั้นได้ตามความเหมาะสม

Read More

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

ในสมัยก่อนนั้นเราใช้งาน Foxbase รุ่นแรกๆ เราก็ทำการสร้างองค์ประกอบต่างๆเช่น โปรแกรม ฐานข้อมูล รายงาน เมนู กันเองซึ่ง Foxbase รุ่นแรกๆไม่มีเครื่องมื่อในการจัดการ บางท่านก็ใช้วิธีการสร้าง sub-directory เพื่อทำการการจัดหมวดหมู่ แยกแยะว่ากลุ่มนี้เป็น ข้อมูล กลุ่มนี้เป็นโปรแกรม เป็นต้น ต่อมาพอมาถึง รุ่นที่เป็น FoxPro ก็เกิดสิ่งอำนวยความสะดวกนี้ขึ้นมา ซึ่งก็เรียกว่า catalog manager ผมเข้าใจว่าคงเรียนแบบ dBASE IV มากกว่า ต่อมาใน Visual FoxPro ก็มีเหมือนกันแต่เป็นชื่อเสียใหม่เป็น Project Manager ผมว่าชื่อนี้แหละเหมาะสมดี   ซึ่งตัวนี้แหละเป็นตัวจัดการในการทำงานของเราตั้งแต่เริ่มต้น จนจบถึงขั้นสร้างระบบงานแล้วนำมันไปแจกจ่ายใช้งาน

Read More

ส่วนช่วยเหลือ(Help) เป็นส่วนหนึ่งที่ได้ถูกพัฒนามาอย่างต่อเนื่อง ในยุคแรกที่ยังใช้ DOS เป็นระบบปฎิบัติการจะเป็นแบบ .DBF-Style Help พอเริ่มเข้ามาสู่ในยุคของ Windows ก็ได้เปลี่ยนมาเป็นแบบ Graphical Help ครั้นเข้าสู่ยุคของ Internet ก็ได้เกิดมี HTML Help ซึ่งก็คือ help ที่สร้างโดยใช้ภาษา HTML(Hypertext Markup Language) สำหรับหนังสือเล่มนี้จะอธิบายการสร้างส่วนช่วยเหลือในแบบ HTML Help

ก่อนที่ท่านจะทำการสร้างส่วนช่วยเหลือได้นั้นจำเป็นจะต้องมีโปรแกรมที่ใช้ในการสร้างก่อน ซึ่งเราไม่สามารถสร้างโดยใช้โปรแกรม Visual FoxPro ได้โดยตรง สำหรับโปรแกรมที่เราจะใช้มีชื่อว่า HTML Help Workshop

Read More

รายงานถือเป็นส่วนที่สำคัญที่สุดอีกส่วนหนึ่งของระบบงาน การสร้างโปรแกรมสำหรับพิมพ์รายงานโดยหลักทั่วๆไปแล้วจะประกอบไปด้วยส่วนประกอบ 3 ส่วนคือ

1. ส่วนของการรับข้อมูล ส่วนนี้ส่วนใหญ่จะเป็นฟอร์มที่จะรอรับข้อมูลที่ผู้ใช้งานป้อนเข้าไปตามเงื่อนไขที่กำหนด เพื่อที่จะนำข้อมูลที่ป้อนไปประมวลผลในการออกรายงาน
2. ส่วนของการประมวลผลข้อมูล ในส่วนนี้จะเป็นการนำข้อมูลที่ผู้ใช้ป้อนข้อมูลจากฟอร์ม มาประมวลผลเพื่อให้ได้ข้อมูลตามต้องการ
3. ส่วนของรายงาน เป็นการนำข้อมูลที่ได้จากการประมวลผลแล้วแสดงออกมาในรูปแบบต่างๆตามที่ต้องการ เช่นแสดงที่จอภาพ ,เครื่องพิมพ์ หรือ เก็บเป็นแฟ้มข้อมูล

จากที่กล่าวมาข้างต้นรายงานบางแบบอาจมีวิธีการนอกเหนือจากนี้ก็ได้

Read More

โปรแกรม Visual FoxPro ได้มีการพัฒนามาอย่างต่อเนื่อง ซึ่งไม่ว่าจะเป็นรุ่นใดก็ตามจะบรรจุชุดคำสั่ง Structure Query Language (SQL) ไว้ด้วยเสมอ อันที่จริงแล้วคำสั่ง SQL เริ่มมีมาตั้งแต่ FoxPro ซึ่งเป็นรุ่นบน ดอส(DOS)  ซึ่งก็ขอยกประโยชน์ให้กับ IBM ที่ได้คิดค้นภาษานี้ขึ้นมาเมื่อช่วงกลากทศวรรษที่ 1970 ที่ห้องวิจัยของไอบีเอ็ทเมือ San Jose รัฐ แคลิฟอร์เนีย ตอนนั้นใช้คำว่า SEQUEL ต่อมาในปี 1980 ได้เปลี่ยนมาเป็นคำว่า SQL และก็ใช้กันมาจนถึงปัจจุบันนี้   คำสั่ง SQL เป็นคำสั่งที่ง่ายต่อการทำความเข้าใจ เพราะเป็นภาษาเขียนที่คล้ายๆกับภาษาอังกฤษทั่วๆไป   ช่วยลดการเขียนโปรแกรมจากเดิมลงไปได้อย่างมากซึ่งถ้าเราเขียนคำสั่งด้วย Visual FoxPro ก็ต้องเขียนกันหลายบรรทัดหลายคำสั่งซึ่งอาจจะเกิดข้อผิดพลาดขึ้นได้ง่าย ดังตัวอย่างต่อไปนี้

Read More