yum แพ็คเกจบน CentOS 6 ได้มากขึ้นด้วย EPEL

หากเทียบจำนวนชุดโปรแกรม (packages) ที่จัดทำเป็นไฟล์ rpm พร้อมให้ติดตั้งด้วย rpm หรือ yum แล้ว จำนวนไฟล์หรือ packages ของ Fedora จะมีมากกว่า CentOS มาก ยิ่งเวอร์ชั่นใหม่ๆ  ของ Fedora ไม่ว่าเราอยากจะติดตั้งอะไร yum install แทบจะได้หมด โดยไม่จำเป็นต้องติดตั้ง repo เพิ่มเลย

ส่วนผู้ใช้ CentOS หรือ RedHat Enterprise ต้องใช้ความพยายามมากกว่า ในการติดตั้งบางโปรแกรมที่ไม่มีอยู่ในแผ่นดีวีดีติดตั้ง อาจต้องไปดาวน์โหลดไฟล์ rpm จากเว็บไซต์หลายๆ แห่ง

เพื่อช่วยให้งานง่ายขึ้น ทีมงานที่พัฒนา Fedora จึงได้จัดทำ repo ขึ้นมาชื่อว่า EPEL (ย่อมาจาก Extra Packages for Enterprise Linux) สำหรับผู้ใช้ RedHat Enterprise, CentOS  เพื่อให้ผู้ใช้ได้ติดตั้งชุดโปรแกรม หรือ packages ได้มากขึ้น โดยอิงกับชุดโปรแกรมที่มีอยู่ใน Fedora

Continue reading “yum แพ็คเกจบน CentOS 6 ได้มากขึ้นด้วย EPEL”

ว่าด้วยฟังก์ชั่น sort ใน PHP

การเรียงค่าข้อมูลถือเป็นงานหนึ่งของโปรแกรมเมอร์ที่ต้องพบเจอเวลาเขียนโปรแกรมอยู่เสมอ เพื่อให้ผลลัพธ์ที่แสดงออกหน้าจอเป็นไปตามที่ผู้ใช้งานต้องการ

ลองมาดูกันว่าถ้าพัฒนาโปรแกรมด้วย PHP มีฟังก์ชั่น (function) อะไรให้เรียกใช้ ในการเรียงข้อมูลที่อยู่ใน array โดยที่ไม่ต้องไปคิดวิธีการเรียงเอง เผื่อชีวิตจะง่ายขึ้น

ตัวอย่างในบทความนี้ทดสอบกับ PHP 5.3
Continue reading “ว่าด้วยฟังก์ชั่น sort ใน PHP”

เพิ่มประสิทธิภาพการค้นหาข้อมูลใน MySQL ด้วย FULLTEXT SEARCH

หากต้องการค้นหาข้อมูลใน MySQL เราสามารถใช้ WHERE ระบุชื่อคอลัมน์ ตามด้วย LIKE หรือ RLIKE เพื่อค้นหาคำหรือรูปแบบคำที่เราต้องการค้นหา ถ้าฐานข้อมูลหรือตารางของเรามีขนาดไม่ใหญ่มากนัก วิธีนี้ก็สามารถใช้งานได้ แต่ถ้าฐานข้อมูลขนาดใหญ่ การใช้ LIKE หรือ RLIKE อาจทำงานช้า

ขอแนะนำการทำ FULLTEXT SEARCH ใน MySQL เพื่อเพิ่มประสิทธิภาพการค้นหา โดย MySQL จะมีการทำ index คำของคอลัมน์ที่ต้องการค้น คำนวณคะแนน แสดงผลลัพธ์ที่ได้สามารถเรียงตามเนื้อหาที่เกี่ยวข้องได้

Continue reading “เพิ่มประสิทธิภาพการค้นหาข้อมูลใน MySQL ด้วย FULLTEXT SEARCH”

รันคำสั่งแปลงไฟล์ doc เป็น txt ด้วย LibreOffice

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

ช่วงนี้กำลังทำงานด้านเอกสาร คือต้องแปลงไฟล์จากประเภทหนึ่งไปเป็นอีกประเภทหนึ่ง หากใช้วิธีปกติ ก็ต้องเปิดโปรแกรม Office ขึ้นมา แล้วเลือกเมนู Save as ระบุชนิดไฟล์ที่เราต้องการจะแปลง หากมีไม่กี่ไฟล์ก็ไม่เท่าไร แต่ถ้ามีเป็น 100 ไฟล์ คงใช้เวลานาน และค่อนข้างน่าเบื่อกันเลยทีเดียว

เลยหาวิธีการแปลงไฟล์โดยการรันคำสั่งแบบ command line หรือรันเป็นแบตช์ไฟล์ ค้นหาจาก google สักพัก นำมาทดลอง ก็ได้วิธีที่อยู่ใกล้ตัวมาก คือใช้คำสั่ง soffice ของโปรแกรม LibreOffice ตามด้วยออปชั่น ก็สามารถใช้แปลงไฟล์ได้เลย ไม่จำเป็นต้องเปิดโปรแกรมแต่อย่างใด เห็นว่าน่าจะมีประโยชน์เลยนำมาแชร์ แนะนำกัน

Continue reading “รันคำสั่งแปลงไฟล์ doc เป็น txt ด้วย LibreOffice”

ติดตั้ง Drupal บน CentOS 6

Drupal ไม่ได้เป็นแค่โปรแกรม CMS (Content Management system) แต่จัดว่าเป็นประเภท CMF (Content Management Framework) ได้เลย คือเราสามารถนำ Drupal ที่เรียกว่า Core มาพัฒนาต่อยอดให้เป็นเว็บโปรแกรมทำงานด้านอื่นๆ  ได้

เพื่อความง่ายในการติดตั้ง ผู้พัฒนาต่อยอดจะรวบรวมการแก้ไขและ module ต่างๆ ที่ต้องใช้ เป็น Drupal Distribution ในชื่อต่างๆ

ถ้าต้องการศึกษาทดลองใช้ Drupal ในเบื้องต้น ซึ่งในบทความนี้จะแสดงวิธีการติดตั้ง Core ให้ดาวน์โหลด Drupal Core

แต่ถ้าต้องการใช้ชุดโปรแกรมที่พัฒนาต่อยอดมาแล้ว ให้เลือกดาวน์โหลดที่ Distributions ที่ต้องการใช้ได้เลย

ในที่นี้จะทดลองติดตั้ง Drupal บน CentOS 6.3 ที่มี Apache, PHP และ MySQL ติดตั้งอยู่แล้ว

Continue reading “ติดตั้ง Drupal บน CentOS 6”

ดูว่า IP ไหน ใช้เซิร์ฟเวอร์เยอะ ด้วย IPTraf

หลายครั้งที่เรียกใช้งานเซิร์ฟเวอร์ แล้วช้าโดยไม่ทราบสาเหตุ อยากรู้ว่าเป็นเพราะมีการใช้งานมากเกินไปหรือไม่ แล้วถ้าใช้มาก มาจากเครื่องไหน IP อะไร เรียกใช้พอร์ตอะไรอยู่

วันนี้ขอแนะนำ IPTraf เป็นโปรแกรมรันบนคอนโซล เรียกใช้งานง่ายๆ แต่ผลลัพธ์ที่แสดงมีประโยชน์มาก น่าจะช่วยตอบโจทย์ว่ามีใครใช้งานเซิร์ฟเวอร์อยู่บ้าง ใช้เท่าไร

ในที่นี้จะทดสอบบน CentOS 6.3

ล็อกอินด้วย root แล้วรันคำสั่ง iptraf

[root@cent6 ~]# iptraf
-bash: iptraf: command not found

หากขึ้น error แบบนี้ แสดงว่าเครื่องนี้ยังไม่ได้ติดตั้งโปรแกรม iptraf ไว้ ต้องติดตั้งเพิ่ม

ไฟล์ rpm ของ iptraf อยู่ในแผ่นดีวีดีติดตั้ง CentOS 6 อยู่แล้ว

ใช้คำสั่ง mount แล้วติดตั้งด้วยคำสั่ง rpm

[root@cent6 ~]# mount /dev/dvd /mnt/
mount: block device /dev/sr0 is write-protected, mounting read-only

[root@cent6 Packages]# rpm -i iptraf-3.0.1-14.el6.x86_64.rpm

[root@cent6 Packages]# cd ~
[root@cent6 ~]#

หลังการติดตั้ง รันคำสั่ง iptraf อีกครั้ง

[root@cent6 ~]# iptraf

หน้าจอโปรแกรม iptraf แสดงผลผ่านหน้าจอคอนโซล

 

กดปุ่มใดก็ได้ ไปหน้าถัดไป

จะเป็นหน้าจอเลือกโหมดในการทำงาน หากต้องการดูว่า IP ไหน พอร์ตไหน เรียกใช้ เซิร์ฟเวอร์อยู่ ให้เลือก “IP traffic monitor”

 

หน้าจอเลือกพอร์ต (Interface) ที่จะดูแพ็กเกจเข้าออก เช่น eth0

 

ตัวอย่างผลลัพธ์ที่แสดงการดู IP, พอร์ต รวมทั้งจำนวน Packets, ขนาดข้อมูล Bytes รวมทั้ง Flags แสดงสถานะของแพ็กเกจที่เข้าออกพอร์ตด้วย

 

ในหน้าจอนี้สามารถกดปุ่ม S เพื่อเรียงลำดับตาม Packets หรือ Bytes ได้

หากต้องการออกจากโปรแกรม iptraf ก็ให้กดปุ่ม X เพื่อกลับสู่หน้าจอเลือกโหมดการทำงาน แล้วกด x อีกครั้งเพื่อออกจากโปรแกรม

ข้อมูลอ้างอิง

ใช้ awk ดึง 3 ฟิลด์สุดท้ายของแต่ละบรรทัดออกมา

awk วันละคำ(สั่ง) วันนี้เสนอวิธี …

การดึง 3 ฟิลด์สุดท้ายของแต่ละบรรทัดออกมา
Continue reading “ใช้ awk ดึง 3 ฟิลด์สุดท้ายของแต่ละบรรทัดออกมา”

แก้ไขปัญหา BIND DNS ขึ้น named error (network unreachable) resolving

หากต้องการแก้ไขปัญหาการใช้งาน BIND เพื่อรันเซอร์วิสเป็น DNS Server สามารถดูเหตุการณ์หรือข้อผิดพลาด (error) ที่เกิดขึ้นในไฟล์ /var/log/messages โดยจะใช้ชื่อโปรแกรมเป็น named

ปัญหาหนึ่งที่ค่อนข้างกวนใจสำหรับการใช้งาน คือมักจะขึ้นข้อความ error (network unreachable) resolving ตามด้วยชื่อหรือโดเมนที่ต้องการหา แล้วตามด้วยเลข IPv6

Continue reading “แก้ไขปัญหา BIND DNS ขึ้น named error (network unreachable) resolving”

คอนฟิก BIND DNS เซิร์ฟเวอร์ – ตอนที่ 2 เพิ่มโซนโดเมน

หลังจาก ติดตั้งและคอนฟิก BIND DNS เซิร์ฟเวอร์ – ตอนที่ 1 caching only เสร็จเรียบร้อย

ในตอนนี้จะมาดูวิธีการเพิ่มข้อมูลโดเมนใหม่เพื่อแปลงชื่อเป็น IP Address  เช่นไว้ใช้สำหรับภายในองค์กรเอง หรือถ้าเราจดทะเบียนชื่อโดเมนบนอินเตอร์เน็ตแล้ว ต้องการให้บริการแก่คนอื่น วิธีการที่จะแปลงชื่อเช่น www.example.com มาเป็น IP Address ของเครื่องเว็บเซิร์ฟเวอร์ของเรา แทนที่ต้องไปเสียค่าบริการเช่า DNS hosting เพิ่มเติม เรามาคอนฟิกตั้ง DNS Server แล้วชี้ name server มาที่ IP ของเซิร์ฟเวอร์ที่เรากันดีกว่า

Continue reading “คอนฟิก BIND DNS เซิร์ฟเวอร์ – ตอนที่ 2 เพิ่มโซนโดเมน”

ติดตั้งและคอนฟิก BIND DNS เซิร์ฟเวอร์ – ตอนที่ 1 caching only

ความเห็นส่วนตัว DNS Server จัดว่าเป็นโปรแกรมหรือเซอร์วิสที่อยู่เบื้องหลังความสำเร็จของอินเตอร์เน็ตอย่างหนึ่ง คือแทนที่ผู้ใช้จะต้องจำและระบุ IP Address ในการเรียกใช้บริการเซิร์ฟเวอร์เครื่องอื่นๆ ผู้ใช้ก็สามารถใช้ชื่อแทนได้ เช่นแค่ระบุชื่อ www.google.com ก็สามารถเข้าสู่เว็บไซต์ของ google ได้ แทนที่ต้องระบุ IP Address เครื่องเซิร์ฟเวอร์ของ google ซึ่งมีอยู่มากมาย และอาจมีการเปลี่ยนแปลงได้ตลอดเวลา

เรามาลองดูวิธีการติดตั้งและคอนฟิก DNS กัน ผู้เขียนขอเลือกใช้ BIND ซึ่งถือว่าเป็นโปรแกรม DNS Server ที่มีการใช้งานกันมากที่สุดบนโลกอินเตอร์เน็ตนี้ และรองรับคุณสมบัติมาตรฐานของ DNS Server โดยจะทดสอบการติดตั้งบน CentOS 6

ตอนแรกเราจะเริ่มติดตั้ง BIND และคอนฟิกเป็น caching only ความหมายคือ คอนฟิกให้ทำหน้าที่เป็น DNS เซิร์ฟเวอร์ที่ให้บริการเครื่องไคลเอ้นต์ในการถามชื่อแล้วตอบเป็น IP Address ให้ โดยเซิร์ฟเวอร์ที่ทำหน้าที่ caching only นี้ จะทำหน้าที่ไปค้นหาข้อมูล (recursion) โดยการถาม DNS เซิร์ฟเวอร์ตัวอื่นๆ ที่อยู่บนอินเตอร์เน็ต จนกว่าจะได้คำตอบว่า ชื่อที่ไคลเอ้นต์ถามมา มี IP Address เป็นอะไร

Continue reading “ติดตั้งและคอนฟิก BIND DNS เซิร์ฟเวอร์ – ตอนที่ 1 caching only”