วันศุกร์ที่ 19 ตุลาคม พ.ศ. 2561

ติดตั้ง Ubuntu Server 18.04.1 เสร็จแล้วต้องลงอะไรเพิ่มบ้าง

ติดตั้ง Ubuntu Server 18.04.1 เสร็จแล้วต้องลงอะไรเพิ่มบ้าง เป็นคำถามที่น่าสนใจ การที่ระบบปฎิบัติการเปลี่ยนแปลงเวอร์ชั่นใหม่ ตำแหน่งของไฟล์คอนฟิกก็เปลี่ยนแปลงไป รวมถึงคำสั่งที่ใช้ในการบริหารจัดการแพ็คเกจก็เปลี่ยนแปลงไปด้วย วันนี้จึงต้องพาไปแนะนำกัน


ขั้นตอนที่ 1 ต้องกำหนดค่าไฟล์คอนฟิกใหม่สำหรับการ์ดแลน ไฟล์นี้ให้เข้าไปแก้ไขที่ /etc/netplan


network:
    ethernets:
        eno1:
            addresses: []
            dhcp4: false
        eno2:
            addresses: []
            dhcp4: true
            optional: true
        eno3:
            addresses: []
            dhcp4: true
            optional: true
        eno4:
            addresses: []
            dhcp4: true
            optional: true
    version: 2
    bridges:
        br0:
            interfaces: [eno1]
            dhcp4: no
            addresses: [192.168.1.31/24]
            gateway4: 192.168.1.1
            nameservers:
                addresses: [8.8.8.8,8.8.4.4]
หลังจากนั้นให้รันคำสั่ง
 #netplan apply

ขั้นตอนที่ 2 เป็นการตั้งค่า Repository ใหม่ ให้เข้าไปแก้ไขไฟล์ sources.list

deb http://archive.ubuntu.com/ubuntu bionic main universe
deb http://archive.ubuntu.com/ubuntu bionic-security main universe
deb http://archive.ubuntu.com/ubuntu bionic-updates main universe

ขั้นตอนที่ 3 เป็นการเปลี่ยนแปลงค่าคอนฟิกของ ssh ใหม่ให้ใช้งานเฉพาะคีย์สาธารณะในการล็อกอิน 

โดยทำการสร้างไฟล์ authorized_keys2  จากนั้นทำการแก้ไขคอนฟิกไฟล์ sshd_config ตามตัวอย่างด้านล่าง

< PubkeyAuthentication yes
> #PubkeyAuthentication yes
< AuthorizedKeysFile    .ssh/authorized_keys .ssh/authorized_keys2
> #AuthorizedKeysFile   .ssh/authorized_keys .ssh/authorized_keys2
< PasswordAuthentication no
> #PasswordAuthentication yes

ขั้นตอนที่ 4 ลงโปรแกรมเซิร์ฟเวอร์เดสท็อปสำหรับรีโมตเข้ามาควบคุมหน้าจอแบบกราฟฟิก โดยใช้ tightvncserver


#apt install xfce4 xfce4-goodies
#apt install tightvncserver

ขั้นตอนที่ 5 ติดตั้งเวอร์ชวลแมชชีนแบบ KVM


#apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager

 รวบรัดตัดความ เนื้อหานี้ค่อนข้างกระทัดรัด เอาเฉพาะส่วนที่สำคัญจริง ๆในการเปิดการใช้งานเซิร์ฟเวอร์ใหม่โดยเฉพาะ ยิ่ง Ubuntu 18.04.1 Server ด้วยแล้ว มีการเปลี่ยนแปลงไปหลายส่วนด้วยกันจากเวอร์ชั่นที่ผ่าน ๆ มา การแนะนำในวันนี้จึงขออนุญาตสั้น ๆ จริง ๆ บริการ gps tracker ต้องใช้งานที่บจก.ไทย พรอสเพอรัส ไอที เท่านั้น


วันเสาร์ที่ 12 พฤษภาคม พ.ศ. 2561

ไม่เคยรีสตาร์ทเครื่องเลยนั้น หากต้องการโคลนไปยังเครื่องเซิร์ฟเวอร์ใหม่จะต้องทำยังไง ?


มาตามกันอย่างต่อเนื่องสำหรับเวบไซต์ s-techthai.com ช่วงนี้มีบทความออกมาถี่ ๆ เพราะอยู่ในช่วงของการปรับเปลี่ยนเวบไซต์ใหม่ สำรองข้อมูลเซิร์ฟเวอร์เป็นประจำทุก ๆ 3 เดือน เนื้อหาในวันนี้ยังไม่พ้นการดูแลเซิร์ฟเวอร์ให้ทำงานได้อย่างเต็มประสิทธิภาพอยู่เหมือนเดิม ล่าสุดเพิ่งจะชัตดาวน์เครื่องเซิร์ฟเวอร์ที่ออนไลน์มากว่า 563 วันหรือปีกว่า ๆ เพื่อเปลี่ยนฮาร์ดดิสก์ชุดใหม่เข้าไป เสียดายสถิติเหมือนกันแต่ทำอย่างไรได้ ถือโอกาสอัพเกรดซอฟต์แวร์ไปในตัว ระบบโอเอสยังเป็น Ubuntu 16.04.4 LTS เหมือนเดิม ยิ่งมาเจอเทคนิคในวันนี้จะหลงรักระบบโอเอสลินุกส์ไปในตัวรับรอง

ตามที่ได้เกริ่นนำไปก่อนหน้านี้แล้ว โอเอสที่ทำงานได้ดีมากและเปิดให้บริการได้ต่อเนื่องมาตลอดปีกว่า ๆ ไม่เคยรีสตาร์ทเครื่องเลยนั้น หากต้องการโคลนไปยังเครื่องเซิร์ฟเวอร์ใหม่จะต้องทำยังไง ? คำถามน่าสนใจมาก  บางคนบอกไม่เห็นยากก็ถอดฮาร์ดดิสก์ไปใช้โปรแกรมโคลนสิพี่ แต่ฮาร์ดดิสก์เราติดตั้งระบบ Raid ไว้ถอดออกข้อมูลก็หายหมด จะทำง่าย ๆแบบนั้นได้อย่างไร เชื่อหรือไม่ว่าในระบบโอเอสของ Ubuntu เองทำได้ง่าย ๆ เพียงแค่ 3 คำสั่งเอง ลองไปดูกันเลย


ขั้นตอนที่ 1 ให้ทำการคัดลอกข้อมูลซอฟต์แวร์ที่ได้ติดตั้งไว้แล้ว ณ เครื่องต้นฉบับก่อน


dpkg --get-selections > installed-software

ขั้นตอนที่ 2 นำข้อมูลซอฟต์แวร์จากขั้นตอนที่ 1 ป้อนเข้าให้โปรแกรม dpkg


dpkg --set-selections < installed-software

ขั้นตอนที่ 3 รันโปรแกรม dselect เป็นอันจบขั้นตอน


dselect 

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

วันอังคารที่ 8 พฤษภาคม พ.ศ. 2561

เกิดอะไรขึ้นเมื่อ MySql ibdata1 มีขนาดใหญ่มากเกินไป( too big)


ฮาร์ดดิสก์เต็ม เซิร์ฟเวอร์ไม่ทำงานเมื่อโปรแกรมฐานข้อมูล MySql เมื่อไฟล์ ibdata1 มีขนาดใหญ่มากเกินไป ข้อมูลในโปรแกรมฐานข้อมูลจะถูกจัดเก็บเป็นไฟล์ขนาดใหญ่มากถึง 100GBytes ส่งผลทำให้เซิร์ฟเวอร์ไม่สามารถทำงานได้ การที่จะจัดการไฟล์ ibdata1 ได้นั้นมีอยู่วิธีเดียวต้องลบข้อมูลออก แต่กลายเป็นว่าทำให้ข้อมูลต้องเสียหายไปด้วย วันนี้จะมาพูดถึงวิธีแก้ไขไฟล์ ibdata1 ที่มีขนาดใหญ่มากเกินไป โดยให้แบ่งเป็นไฟล์ตารางฐานข้อมูลขนาดเล็ก ๆ หลาย ๆ ไฟล์ประกอบกันเแทน มันจะทำให้สามารถแก้ไขหรือวิเคราะห์ว่าทำไมตารางนี้ถึงมีขนาดใหญ่กว่าตารางอื่น ๆ นั่นเอง

ขั้นตอนที่ 1 ให้ทำการสำรองข้อมูลโดยใช้โปรแกรม mysqldump ก่อนคำสั่งที่ใช้ก็คือ

mysqldump -u user -p databasename > databasename.sql

ขั้นตอนที่ 2 เมื่อดำเนินการในขั้นตอนแรกเรียบร้อยแล้ว ให้ลบฐานข้อมูลออก(drop databasename)

ขั้นตอนที่ 3 ให้ทำงานหยุดการทำงานของโปรแกรม MySql


ขั้นตอนที่ 4 ให้ลบไฟล์ ibdata1, ib_logfile0 และ ib_logfile1 ออก


ขั้นตอนที่ 5 ให้เข้าไปแก้ไขไฟล์คอนฟิกของโปรแกรม MySql โดยให้เพิ่มบรรทัดนี้เข้าไป innodb_file_per_table หรือเป็นการกำหนดให้โปรแกรม MySql สร้างไฟล์ของแต่ละตารางขึ้นมา


ขั้นตอนที่ 6 เริ่มการทำงานใหม่ของโปรแกรม MySql


ขั้นตอนที่ 7 จากนั้นสร้างฐานข้อมูลใหม่ และอิมพอร์ตข้อมูลที่สำรองไว้ในขั้นตอนที่ 1 กลับมา เป็นอันจบขั้นตอนทั้งหมด


สรุปขั้นตอนทั้งหมดต้องทำอย่างใจเย็น ๆ อย่าให้พลาดแม้แต่ในขั้นตอนใด ๆ เพราะว่าหากเป็นระบบที่มีลูกค้าใช้งานอยู่อย่างต่อเนื่องด้วยแล้ว การปิดระบบเพียงแค่ 3-5 ชั่วโมงย่อมส่งผลกระทบต่อการให้บริการของเราอย่างแน่นอน นอกจากเรื่องราวเกี่ยวกับการทำงานบนระบบเซิร์ฟเวอร์เล็ก ๆ ที่ผู้เขียนดูแลอยู่แล้วยังมีเวบไซต์ระบบ GPS TRACKER 3G ของผู้เขียนเปิดใหม่ด้วย กำลังสนุกสนานกับการปรับแต่งให้เหมาะสมกับการใช้งาน ฝากประชาสัมพันธ์มาณ โอกาสนี้ด้วย

วันพุธที่ 25 เมษายน พ.ศ. 2561

พลาดไปแล้วหลังจากไปแก้ไขไฟล์ fstab ของระบบ กลายเป็นว่าบูตเครื่องไม่ขึ้น


พลาดไปแล้วหลังจากไปแก้ไขไฟล์ fstab ของระบบ กลายเป็นว่าบูตเครื่องไม่ขึ้น จะต้องทำอย่างไรดีกับ Ubuntu 14.04 LTS หากต้องทำการแก้ระบบแข่งกับเวลาด้วยแล้ว เรื่องนี้ปัญหาใหญ่โตเอาเรื่องทีเดียว


ไฟล์ fstab จะให้สำหรับเม้าท์อุปกรณ์ฮาร์ดดิสก์ที่ใช้รันระบบของโอเอส หากวันดีคืนดีพลั้งมือไปแก้ไข กลายเป็นว่าพอรีสตาร์ทเครื่องใหม่อีกทีคราวนี้ค้างหน้าจอไปไหนต่อไม่ได้ต้องทำอย่างไร หากเกิดเหตุการณ์ที่ว่าก็อย่าเพิ่งตีโพยตีพาย ต้องนิ่งลองค้นหาวิธี มันต้องมีทางออก สักพักเสียงเรียกเข้า "ระบบไม่ทำงาน ค้างอยู่" จากลูกค้าสายแล้วสายเล่านี่จึงเป็นที่มาของการเข้าสู่ single mode เพื่อเข้าไปแก้ไขความผิดพลาดเบื้องต้นของระบบนั่นเอง

ขั้นตอนที่ 1 ขณะเข้าสู่โหมดการบูตให้ทำการกดคีย์ e เพื่อเข้าสู่การแก้ไข

ขั้นตอนที่ 2 ให้หาบรรทัดที่แสดงคำว่า root=/dev/xxx/xxxx จากนั้นให้เพิ่มคำว่า init=/bin/bash เข้าไป

kernel /vmlinuz-2.6.15-27-386 root=/dev/mapper/Ubuntu-root rw init=/bin/bash
kernel /vmlinuz-2.6.15-27-386 root=/dev/mapper/Ubuntu-root rw init=/bin/bash

ขั้นตอนที่ 3 กดคีย์บอร์ด Ctrl+x เพื่อเข้าสู่การบูตระบบแบบ single mode

ขั้นตอนที่ 4 ทำการรีเมาท์โฟลเดอร์ใหม่ เพื่อให้สามารถเข้าไปแก้ไขไฟล์ที่เสียหายได้

# mount -w -o  remount  /

จากนั้นเราจะสามารถเข้าไปแก้ไขไฟล์ที่ผิดพลาดจากการทำงานในครั้งก่อนได้ ไม่จำเป็นต้องฟอร์แมตลงโปรแกรมใหม่เหมือนที่เคยทำ หรือเข้าไปกู้ข้อมูลสำคัญ ๆ ออกมาก่อนก็ยังได้ เนื้อหาเหล่านี้เกิดความผิดพลาดในการแก้ไขเวบเซิร์ฟเวอร์ของบริการ เช่ารถตู้ขับเอง h1 ของทางบริษัทฯนั่นเอง กลายเป็นว่าครึ่งวันช่วงเช้าไม่สามารถเปิดให้บริการได้ กำลังเตรียมการหาข้อมูลสำรองที่ backup ไว้ล่าสุดมาขึ้นแทน ระหว่างรอการขยายไฟล์ออกพบว่ามันยังพอมีทาง และก็หามันจนเจอจริง ๆ

วันศุกร์ที่ 13 เมษายน พ.ศ. 2561

เรื่องวุ่น ๆ กับเวบเซิร์ฟเวอร์ apache2 mod_rewrite



เรื่องวุ่น ๆ กับเวบเซิร์ฟเวอร์ apache2 mod_rewrite หลาย ๆ ครั้่งที่สร้างความปวดเศียรเวียนเกล้ากับการใช้งานเวบเซิร์ฟเวอร์ apache2 ผู้เขียนเองพอเจอปัญหาก็เข้า google ค้นหาสักครู่ก็แก้ปัญหาได้โดยไม่ยาก แต่พอนานวันเข้า ปัญหาเดิมเกิดขึ้นอีกเอาละสิจำไม่ได้ว่าครั้งที่แล้วแก้ยังไง ก็เลยเป็นเรื่องเป็นราวที่มาของ "เรื่องวุ่น ๆ กับเวบเซิร์ฟเวอร์ apache2 mod_rewrite"

หากไม่ได้เปิดใช้งาน mod_rewrite อะไรจะเกิดขึ้น 

หากเปิดใช้งานสำเร็จ เวบไซต์ก็ทำงานปกติ


หลัก ๆ ของการเปิดใช้งานโมดูลที่เรียกว่า mod_rewrite ก็มีอยู่แค่ 3 ขั้นตอนด้วยกันไปเริ่มต้นกันเลยดีกว่าเพื่อไม่ให้เสียเวลา

ขั้นตอนที่ 1 ต้องโหลดโมดูล mod_rewrite ให้เอนจิ้นของเวบ apache2 เองรู้จัก ขั้นตอนนี้ก็คือ


a2enmod rewrite

ขั้นตอนที่ 2 ต้องเข้าไปแก้ไขไฟล์คอนฟิกของตัวเวบเซิร์ฟเวอร์เอง โดยให้เพิ่มบรรทัดต่อไปนี้เข้าไป


<VirtualHost *:80>
    <Directory /var/www/html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    . . .
</VirtualHost>

 ขั้นตอนที่ 3 ก็เป็นการสร้างไฟล์ .htaccess เข้าไปในโฟลเดอร์หลักของเวบเซิร์ฟเวอร์ ส่วนใหญ่ขั้นตอนนี้ผู้เขียนคัดลอกเอาจากไฟล์ตัวอย่างนั่นเอง จากนั้นอย่าลืมโหลดเวบเซิร์ฟเวอร์ใหม่

service apache2 reload

แค่นี้ก็เป็นอันสิ้นสุดวิธีการทำงานกับ apache2 mod_rewrite ผลงานดี ๆ เหล่านี้เป็นส่วนหนึ่งของผลงานจากบจก.ไทย พรอสเพอรัส ไอที นั่นเอง ผู้นำด้านการให้บริการรถเช่าผู้บริหาร มาตรฐานความปลอดภัยสูงสุง


วันศุกร์ที่ 6 เมษายน พ.ศ. 2561

ติดตั้ง macOS High Sierra Version 10.13 บนเครื่องพีซีโดยใช้ Vmware Workstation 12 Player

ผู้เขียนทดลองติดตั้ง macOS มาหลากหลายวิธีแต่ไม่เคยประสบความสำเร็จเลย ความตั้งใจครั้งนี้ทดลองเป็นครั้งสุดท้ายตามตำราของ macOS High Sierra ที่เผอิญค้นหาเจอดูเทคนิคการนำเสนอที่ละเอียดมาก มีภาพประกอบแทบจะทุกขั้นตอน คิดว่าครั้งนี้ไม่น่าพลาด และท้ายที่สุด ติดตั้ง macOS High Sierra Version 10.13 บนเครื่องพีซีโดยใช้ Vmware Workstation 12 Player ก็ประสบความสำเร็จจนได้


เนื้อหาที่จะแนะนำกันในวันนี้เป็นขั้นตอนที่ทำแบบกระชับเน้นผลลัพธ์มากกว่า เพื่อให้สามารถทำความเข้าใจได้ง่าย ๆ ไม่ติดขัด หลังจากได้ macOS ก็จะเป็นการพัฒนา แอพพลิเคชั่นสำหรับ GPS TRACKER บนมือถือแอปเปิลนั่นเองคือความตั้งใจ

ขั้นตอนที่ 1 สำคัญเพราะเป็นการเตรียมความพร้อมของ ฮาร์ดแวร์หรือโน๊ตบุ๊ก ที่ใช้ต้องมีฟีเจอร์  Intel VT-d เทคโนโลยีด้วย ซีพียูที่ใช้เป็น Inter Core I7 แรม 8GBytes สำหรับสิ่งสำคัญในเรื่องนี้ต้องเข้าไปเปิดไบออสอนุญาตให้ใช้ VT-d นั่นเอง

ขั้นตอนที่ 2  สำคัญเพราะเป็นการเตรียมความพร้อมของซอฟต์แวร์ทั้งหมดที่จำเป็นต้องใช้งานสำหรับการติดตั้ง macOS นั่นเอง

2.1 macOS High Siera Final by Techsviewer เป็นอิมเมจที่ใช้สำหรับการติดตั้งโอเอส

2.2 VMware-player-12.5.5-5234757 ซอฟต์แวร์สำหรับรันอิมเมจ เรื่องที่ต้องระวังก็คือห้ามใช้เวอร์ชั่นอื่นที่ใหม่กว่าหรือเก่ากว่านี้ เรื่องนี้ทำให้ผู้เขียนพลาดติดตั้งไม่สำเร็จครั้งที่แล้ว

2.3 unlocker208 ซอฟต์แวร์อีกตัวที่สำคัญเป็นการแก้ให้โปรแกรม VMware-player-12.5 สามารถรู้จัก macOS สำคัญอีกตัวหนึ่ง


ขั้นตอนที่  3 หลังจากเตรียมความพร้อมทางฮาร์ดแวร์เรียบร้อย และมีข้อมูลซอฟต์แวร์ทั้งหมดในกระเป๋า การดำเนินการในขั้นตอนต่อไปก็ทำได้ไม่ยาก ความสำเร็จมาเยือนแล้วกว่า 85 % ให้แตกไฟล์ในข้อ 2.1 ออก


ขั้นตอนที่ 4 ติดตั้งโปรแกรม VMware-player โดยในขั้นตอนที่จะสอบถามเรืองประเภทการใช้งานให้เตรียมอีเมลล์แอคเค้าท์สำหรับการลงทะเบียนให้เรียบร้อย


ขั้นตอนที่ 5 เป็นการแพทโปรแกรม VMware-player ให้รู้จัก macOS ไปแตกไฟล์ในข้อ 2.3 จากนั้นคลิกขวารันในโหมด Administrator ในเลือก win-update-tools ก่อนจากนั้นให้เปลี่ยนมาเป็น win-install เป็นอันสิ้นสุด


 

ขั้นตอนที่ 6 สร้างอิมเมจใหม่จาก VMWare Player ขั้นตอนนี้ให้คงค่าตำแหน่งที่จะติดตั้งให้เหมือนเดิมตามดีฟอลต์ทุกประการเพื่อให้โปรแกรมอื่น ๆ ยังมองเห็นนั่นเอง สาระที่สำคัญคือการตั้งค่า harddisk ขนาด 40GBytes เมมโมรีขนาด 4GBytes เพื่อให้โปรแกรมทำงานได้ราบรื่นขึ้น แต่ยังไม่ต้องเปิดรันใช้งาน


ขั้นตอนที่ 7 ให้ต้้งค่า Harddisk แล้วอิมพอร์ตจากของเดิมมายังไฟล์อิมเมจที่ดาวน์โหลดมาแล้วในข้อ 2.1 เมื่อทำเสร็จเรียบร้อย ยังไม่ต้องเปิดรันไฟล์อิมเมจ

ขั้นตอนที่ 8 เป็นขั้นตอนที่สำคัญคือให้เข้าไปแก้ไขไฟล์คอนฟิกของ VMware-player ในขั้นตอนสุดท้ายให้เพิ่มข้อความบรรทัดสุดท้าย smc.version = "0" ในไฟล์ macOS 10.12.vmx จากนั้นกดจัดเก็บเป็นอันสิ้นสุดขั้นตอน ปรบมือให้ตัวเองได้เลยเรามาได้ไกลกว่า 90 % เหลือเพียงรันโปรแกรมและติดตั้งซอฟต์แวร์ macOS

ขั้นตอนที่ 9 ให้ดำเนินการรันอิมเมจ โดยเปิดโปรแกรม VMware-player เห็นหน้าจอเริ่มทำงานของ macOS ก็สบายใจได้เลย

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

วันพุธที่ 4 เมษายน พ.ศ. 2561

ป้องกันโฟลเดอร์ tmp ระวังไม่ให้มี back door สคริป

กลับมาพบกันอีกครั้งยังมีเรื่องวุ่นวายกับการป้องกันโฟลเดอร์ tmp กัน ระวังไม่ให้มี back door สคริป ทุก ๆ วันจะพบสคริปของแฮกเกอร์ที่โฟลเดอร์ /tmp ในระบบปฏิบัติการ Ubuntu ที่รันเวบเซิร์ฟเวอร์ และจุมล่า เรียกว่าต้องตั้งเวลาลบไฟล์ทิ้งกันทุก ๆ คืนว่ากันได้ ทนอยู่ประมาณ 1-2 ปี กลับมาทบทวนอีกครั้งเราจะไม่มีวิธีการป้องกันหรือไง


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

ขั้นตอนที่ 1 สร้างเวอร์ชวล /tmp ไดร์ฟใหม่ขนาดความจุ 100Mbytes

dd if=/dev/zero of=/dev/tmpFS bs=1024 count=100000
 

ขั้นตอนที่ 2 ทำการฟอร์แมตไดร์ฟที่สร้างขึ้นมา


mke2fs -j /dev/tmpFS

ขั้นตอนที่ 3 กำหนดสิทธิ์ให้โฟลเดอร์ /tmp ใหม่


chmod 1777 /tmp


ขั้นตอนที่ 4 ทำการแก้ไขไฟล์ fstab และสั่งคำสั่ง mount ใหม่


/dev/tmpFS /tmp ext3 loop,nosuid,noexec,rw 0 0
mount -a
  ง่าย ๆ เพียงแค่ 4 ขั้นตอนนี้รับรองว่าตื่นเช้ามาไม่มี back door สคริปมากวนใจแน่นอน ทำให้หวาดระแวงกลัวว่าจะโดน blacklist ในฐานะผู้ให้บริการเวบไซต์ หรืออื่น ๆ อีกมากมายที่จะถูกลงโทษ หากเวบไซต์ถูกโจมตี หลังจากที่ได้อัพเกรดเวบไซต์ GPS ติดตามรถ ใหม่เรื่องราวดี ๆ อีกมากมายจะได้ถูกนำเสนอกัน การป้องกันเวบไซต์ให้มีความปลอดภัยย่อมเป็นหัวใจของผู้ให้บริการอย่างแท้จริง

วันเสาร์ที่ 17 มีนาคม พ.ศ. 2561

เรื่องวุ่น ๆ กับการอัพเดท php5.6 บนเครื่อง Ubuntu server 16.04.4 LTS


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

เซิร์ฟเวอร์ที่ผู้เขียนให้บริการเวบไซต์อยู่นั้นยังคงใช้งานเวบไซต์สำเร็จรูปแบบโอเพ่นซอร์สชื่อดัง นั่นก็คือ Joomla นั่นเอง ครั้งจะอัพเกรดขึ้นไปเป็นเวอร์ชั่นใหม่บนเซิร์ฟเวอร์ลินุกส์เดิมกลับพบปัญหาใหญ่คือไม่สามารถติดตั้ง Joomla 3.xx เวอร์ชั่นล่าสุดได้ หรือมีความต้องการใช้งาน php5.6 เป็นอย่างน้อย ทำยังไงดีละทีนี้ การปรับแต่ง engine โดยเฉพาะ php นับว่าเป็นเรื่องใหญ่ ถึงโหญ่โตมาก เพราะหากลองผิดลองถูกอยู่ละก็ โอกาสเสียมากกว่าได้ จึงเป็นเหตุผลของเครื่องทดสอบ "เรื่องวุ่น ๆ กับการอัพเดท php5.6 บนเครื่อง Ubuntu Server 16.04.4 LTS"


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

ขั้นตอนที่ 1 ตรวจสอบเวอร์ชั่นเดิมที่ติดตั้งไปก่อนหน้านี้ว่าเป็นเวอร์ชั่นอะไรโดยใช้คำสั่ง php -v จากนั้นไปเริ่ม ติดตั้งโปรแกรม php5.6 กันดีกว่า


apt-get install python-software-properties
add-apt-repository ppa:ondrej/php
apt-get update
apt-get install php5.6

ขั้นตอนที่ 2 ปรบมือให้ตัวเองดัง ๆ ในขั้นตอนนี้หากเราเรียกใช้งานคำสั่งตรวจสอบเวอร์ชั่นของ php -v มันจะยังแสดงว่าเป็นเวอร์ชั่นเดิมอยู่ ให้ใช้คำสั่งต่อไปนี้เพื่อเปลี่ยนแปลงไปใช้ php5.6 แทน


#update-alternatives --set php /usr/bin/php5.6


PHP 5.6.34-1+ubuntu16.04.1+deb.sury.org+1 (cli)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

ขั้นตอนที่ 3 เมื่อเวอร์ชั่นบนเทอร์มินอลถูกเปลี่ยนแปลงไปแล้ว แต่อย่าเพิ่งชะล่าใจเพราะเวอร์ชั่นที่ใช้งานบนเวบเซิร์ฟเวอร์ยังไม่เปลี่ยนแปลง เราสามารถทดสอบได้ด้วยการสร้างสคริป phpinfo(); เพื่อตรวจสอบเวอร์ชั่นของ php บนเวบเซิร์ฟเวอร์ก่อน เอาละสิยังเป็นเวอร์ชั่น php7.0 อยู่เลย


ขั้นตอนที่ 4 มาถึงขั้นตอนนี้แล้วไม่ยากเย็นอะไร เพียงแค่ไปบอกเวบเซิร์ฟเวอร์ให้รู้จัก php5.6 แทน php7.0 โดยใช้คำสั่งพื้นฐานง่าย ๆ

#a2dismod php7.0
#a2enmod php5.6
#/etc/init.d/apache2 restart

จากนั้นตรวจสอบดูว่า เวบเซิร์ฟเวอร์ทำงานร่วมกับ php5.6 ได้หรือยัง จากการทดสอบในครั้งนี้ถือว่าโชคดีมาก ผ่านไปอย่างง่ายดาย


ขั้นตอนที่ 5 เป็นการติดตั้งเวบท่าที่ชื่อว่า Joomla 3.5.1 จากนั้นอัพเกรดไปเป็นเวอร์ชั่นล่าสุด 3.8.6 โดยขั้นตอนนี้ให้ติดตั้งแพ็คเกจเพิ่มเติมสำหรับ php5.6 ตามขั้นตอนต่อไปนี้

#apt-get install php5.6-mysql php5.6-curl php5.6-xml


ขั้นตอนที่ 6 ผลการทดสอบ php5.6 กับการติดตั้ง Joomla 3.8.6 รุ่นล่าสุด ณ ปัจจุบัน 


เป็นไงกันบ้างสำหรับขั้นตอนทั้งหมดของการติดตั้ง php5.6 สำหรับรองรับการใช้งานระบบ Joomla 3.8.6 ซึ่งแต่ละขั้นตอนมีความละเอียดอ่อนมาก หากเราต้องทำงานโดยตรงกับเซิร์ฟเวอร์ที่กำลังทำงานอยู่หรือให้บริการอยู่ ความผิดพลาดย่อมไม่สามารถเกิดขึ้นได้เลย


วันศุกร์ที่ 2 กุมภาพันธ์ พ.ศ. 2561

PHP กับการลองใช้งานคลาส Klogger เพื่อบันทึกข้อมูลล็อกไฟล์

กลไกสำคัญอันหนึ่งในการบันทึกขั้นตอนการทำงานของโปรแกรม หรือใช้สำหรับตรวจสอบข้อผิดพลาดของโปรแกรมก็คือการบันทึกล็อกไฟล์(log files) แต่การที่เราจะเริ่มเขียนโปรแกรมเปิดปิดไฟล์ หรือสร้างไดเรคทอรี่ใหม่ หรือเริ่มศึกษากลไกทั้งหมดใหม่ย่อมเป็นเรื่องที่ยุ่งยากและต้องใช้เวลาศึกษาพอสมควร สำหรับวันนี้จะเป็นวิธีง่าย ๆ  ด้วย PHP กับการลองใช้งานคลาส Klogger เพื่อบันทึกข้อมูลล็อกไฟล์


ขั้นตอนที่ 1 ให้สร้างไฟล์ composer.json เพื่อทำการติดตั้งคลาส Klogger กัน


{
    "require": {
        "katzgrau/klogger": "dev-master"
    }
}

ขั้นตอนที่ 2 รันคำสั่งเพื่อติดตั้งโปรแกรม

composer require katzgrau/klogger:dev-master

ขั้นตอนที่ 3 สร้างโค๊ดง่าย ๆ สำหรับทดสอบโปรแกรม

<?php

require 'vendor/autoload.php';

$users = [
    [
        'name' => 'Kenny Katzgrau',
        'username' => 'katzgrau',
    ],
    [
        'name' => 'Dan Horrigan',
        'username' => 'dhrrgn',
    ],
];

$logger = new Katzgrau\KLogger\Logger(__DIR__.'/logs');
$logger->info('Returned a million search results');
$logger->error('Oh dear.');
$logger->debug('Got these users from the Database.', $users);
?>

ขั้นตอนที่ 4 ผลลัพธ์ของโค๊ดทดสอบ

[2018-02-02 19:38:12.418653] [info] Returned a million search results
[2018-02-02 19:38:12.418793] [error] Oh dear.
[2018-02-02 19:38:12.418872] [debug] Got these users from the Database.
    0: array(
        'name' => 'Kenny Katzgrau',
        'username' => 'katzgrau',
    )
    1: array(
        'name' => 'Dan Horrigan',
        'username' => 'dhrrgn',
    )
[2018-02-02 19:38:47.050623] [info] Returned a million search results
[2018-02-02 19:38:47.050779] [error] Oh dear.
[2018-02-02 19:38:47.050879] [debug] Got these users from the Database.
    0: array(
        'name' => 'Kenny Katzgrau',
        'username' => 'katzgrau',
    )
    1: array(
        'name' => 'Dan Horrigan',
        'username' => 'dhrrgn',
    )
ด้วยขั้นตอนง่าย ๆ เพียงแค่นี้เราก็สามารถใช้งานคลาส Klogger ได้อย่างง่ายดาย ที่สำคัญทำงานได้อย่างสะดวก ปราศจากบั๊ก ข้อดีของการใช้งานโปรแกรมรหัสเปิด(open source) ก็เป็นอย่างนี้เอง เรื่องราวดี ๆ อย่างนี้จะสำเร็จลุล่วงไปไม่ได้เลยหากไม่ได้รับการสนับสนุนจาก ไทย พรอสเพอรัส ไอที ผู้นำในการให้บริการ เช่ารถตู้ขับเอง h1 ด้วยรถยนต์หรู Hyundai H1 Deluxe ตัวท็อปสุด ประตูไฟฟ้า พร้อมครุยส์คอนโทรล ลองสัมผัสนวัตกรรมวีไอทีต้องที่นี่เท่านั้น