Linux Console Command Part1

Posted by AnnoMundi on August 08, 2008

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

คำสั่งแรกเลย history

history

จะเป็นการลิสท์คำสั่งต่างๆที่เราเคยเรียกใช้งานไปแล้วทั้งหมด

history 10

จะเป็นการลิสท์คำสั่ง 10 คำสั่งสุดท้ายออกมา
เราสารถใช้คำสั่ง ! เพ่ือทำการรันคำสั่งนั้นอีกครั้ง เช่น

annomundi@develone:~$ history
55  history
56  pwd
57  ls
58  cd ~
59  history
annomundi@develone:~$ !57
ls
MyThread.class  mbox  rails-projects  sources  www
annomundi@develone:~$

จะเห็นว่าคำสั่ง !57 จะสั่งรันคำสั่ง ls นอกจากนี้เราสามารถใช้คำสั่ง

!!

เพื่อรันคำสั่งก่อนหน้านี้
นอกจากนี้ก็มีคำสั่ง !$ จะหมายถึงข้อความที่ตามหลังคำสั่งที่แล้ว เช่น

ls /etc/hosts
vi !$

คำสั่งหลังก็คือคำสั่ง vi /etc/host นั่นเอง
คำสั่ง !<start of command> เป็นการรันคำสั่งหลังสุดที่ขุึ้นต้นด้วย <start of command> เช่น

pwd
ls -la
cd www
!ls

คำสั่ง !ls จะเป็นการรันคำสั่ง ls -la อีกครั้งนึงนั่นเอง
คำสั่ง !-<number> จะเป็นการรันคำสั่งที่ <number> ก่อนหน้านี้ เช่น

pwd
ls -la
cd www
!ls
!-4

คำส่ัง !-4 จะเป็นการรันคำสั่ง pwd อีกครั้งนึง

สำหรับคำสั่งพวกนี้บางคนอาจคุ้นเคยแล้ว แต่ผมเองเคยเห็นเพื่อนๆใช้กันแกต่ไม่ค่อยได้จำและเอามาใช้สักที เลยต้อง search หาเอามาใช้ซะหน่อยจะได้ประหยัดเวลาการพิมพ์คำสั่งบนคอนโซล ^^ ไว้อาจมีต่อภาค 2 เพราะผมยังไม่แม่นเรื่อง command parameter เท่าไหร่

Ubuntu 7.04 : วิธีสร้าง Self-Signed Certs สำหรับเว็ปไซต์

Posted by AnnoMundi on June 18, 2007

วิธีการสร้าง Self-Signed Certificate สำหรับเว็ปไซต์บนเครื่องที่ใช้ Ubuntu
Feisty Fawn สำหรับบทความนี้ผมขอไม่กล่าวถึงการลง Apache2, PHP5 และ
MySQL นะครับ จะกล่าวถึงเฉพาะการสร้าง Self-Signed Certificate เท่านั้น

  1. ถ้า Apache ที่ลงไว้แต่ยังไม่ได้ Enable mod_ssl ก็ให้เปิดใช้งานด้วยคำสั่ง
    sudo a2enmod ssl
  2. เริ่มด้วยการสร้าง Private Key สำหรับเครื่องเซิร์ฟเวอร์ หรือเครื่องที่เรารัน
    เว็ปเซิร์ฟเวอร์

    $ sudo openssl genrsa -des3 -out server.key 1024

    เมื่อโปรแกรมให้เราใส่ pass phrase ซึ่งเราจะใส่หรือไม่ใส่ก็ได้

  3. จากนั้นก็สร้าง Certificate File ขี้นมาด้วยคำสั่ง
    $ sudo openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out server.crt

    ซึ่งมันจะถาม Pass Phrase ที่เราตั้งไว้ในขึ้นตอนที่แล้วและให้เราใส่ชื่อโดเมนที่
    เราต้องการจะใช้งาน SSL ตอนที่โปรแกรมให้เราใส่ Common Name ในที่นี้ผม
    จะใส่เป็น *.mydomainname.com เผื่อไว้ใช้กับsubdomain ได้ด้วย

  4. ให้ทำการสร้างไดเร็กทอรี่ /etc/apache2/ssl แล้วคัดลอกไฟล์ทั้งสองไปยัง
    ไดเร็กทอรี่ที่สร้างขึ้น

    $ sudo mkdir /etc/apache2/ssl
    $ sudo mv *.crt /etc/apache2/ssl
    $ sudo mv *.key /etc/apache2/ssl
    $ sudo chmod 400 /etc/apache2/ssl/*.key
  5. ถ้าในขั้นตอนแรกเรากำหนด Pass Phrase ไปด้วย ทุกครั้งที่ทำการ
    restart apache จะมีการถาม pass phrase ทุกครั้ง ดังนั้นเพื่อให้เราไม่ต้องเสีย
    เวลาใส่ pass pharse ก็ให้้เราสร้างไฟล์ /etc/apache2/ssl/password.sh
    ขึ้นมา แล้วแก้ไขไฟล์โดยพิมพ์คำสั่งตามด้านล่างลงไป แต่ให้เปลี่ยน password
    เป็น pass pharse ที่เราได้ระบุไว้นะครับ

    #!/bin/bash
    echo "password";

    จากนั้นก็ให้แก้ไขไฟล์ /etc/apache2/mods-enabled/ssl.conf ให้มองหา
    บรรทัดตามด้านล่างนี้

    SSLPassPhraseDialog  builtin

    แล้วแก้เป็น

    SSLPassPhraseDialog  exec:/etc/apache2/ssl/password.sh

    ที่ทำแบบนี้เพื่อแทนที่ apache จะรอถาม pass pharse ทุกครั้งที่ start/restart
    ก็ให้มันไปรัน script ที่เราสร้างไว้แทน

  6. จากนั้นให้เราทำการแก้ไขไฟล์ /etc/apache2/ports.conf ตามด้านล่าง
    Listen 80
    Listen 443

    แล้วจึงแก้ไขไฟล์คอนฟิกของเว็ปไซต์ในที่นี้ของผมจะอยู่รวมกันในไฟล์
    /etc/apache2/sites-available/default ซึ่งบางคนอาจแยกคอนฟิกของแต่ล่ะ
    เว็ปเป็นไฟลๆ์แยกกัน ก็ให้เปิดแก้ไขคอนฟิกเว็ปที่ต้องการใช้งาน SSL โดยแก้ไข
    คอนฟิกดังนี้

    <VirtualHost *:443>
            ...
            SSLEngine on
            SSLCertificateFile /etc/apache2/ssl/server.crt
            SSLCertificateKeyFile /etc/apache2/ssl/server.key
            ...
    </VirtualHost>

    และในตอนต้นไฟล์ /etc/apache2/sites-available/default ต้องมีคำสั่งตาม
    ด้านล่างด้วยนะครับ

    NameVirtualHost *:80
    NameVirtualHost *:443

    จากนั้นก็สั่ง restart apache ได้เลย

    sudo /etc/init.d/apache2 restart

เสร็จแล้ว เราก็จะสามารทดสอบและพัฒนาเว็ปซึ่งจำเป็นต้องมีส่วนที่ใช้งานผ่าน SSL ได้

เอกสารอ้างอิง : Creating Self-Signed Certs on Apache 2.2

วิธีแปลงฟอร์แมทไฟล์วิดีโอบนลินุกส์

Posted by AnnoMundi on May 31, 2007

ช่วงนี้หลังจากหลับมาใช้ลินุกส์ ก็มีพวกไฟล์วิดีโอที่เก็บๆไว้มันเป็นฟอร์แมท WMV
ซึ่งมีปัญหาภาพมันจะเละๆเวลาเลื่อแถบเวลาไปยังตำแหน่งที่ต้องการจะดู เลยต้อง
หาวิธีแปลงฟอร์แมทไปเป็น avi ซึ่งที่เคยใช้ก็คือโปรแกรม mencoder ซึ่งเป็นโปรแกม
Command line ที่เราต้องเปิด Shell/Terminal ขึ้นมาพิมพ์คำสั่งเรียกใช้ ซึ่งที่ใช้
ถ้าใครไม่ได้ลงโปรแกรมนี้ไว้ ถ้าใช้ Ubuntu ก็จัดการลงก่อนครับ

sudo apt-get install mencoder

จากนั้นวิธเรียกใช้โปรแกรมเพ่อเปลงฟอร์แมตแบบง่ายๆก็คือ

mencoder inputfile.wmv -ofps 23.976 -ovc x264 -oac mp3lame -o outputfile.avi

ซึ่งจะแปลงไฟล์ฟอร์แมท WMV เป็น AVI โดย encode video/audio codec
เป็น H.264 และ mp3

แต่ถ้าใครชอบแปลงไฟล์โดยใช้โปรแกมแบบ GUI ก็มีเหมือนกันครับคือ avidemux
ก็จัดการลงโปรแกรมด้วยคำสั่ง

sudo apt-get install avidemux

หน้าตาของโปรแกรมจะเป็นแบบนี้ครับ
Avidemux
โดยโปรแกรม avidemux นี่นอกจากแปลงฟอร์แมทไฟล์ได้แล้วยังใช้ตัดไฟล์
ได้ด้วย โดยเลือกช่วงหนังที่เราต้องการตัดและก็เซฟ

ส่วนถ้าใครอยากศึกษาเพิ่มเติมเกี่ยวกับ Mencoder ก็ลองดูตามลิ้งก์ด้านล่างเลยครับ

Mencoder
HOWTO Mencoder Introduction Guide
HOWTO Rip DVD mencoder

ปัญหาการใช้งาน Drupal หลังลง mod_security

Posted by AnnoMundi on October 30, 2006

พอดีวันก่อนผมได้ทำการลง mod_security บนเครื่อง Colocated Server ซึ่งใช้ Gentoo
ซึ่งก็คิดว่าคงเรียบร้อย แต่วันนี้เข้าใช้งานเว็ปและต้องโพสท์กระทู้ กลับมีปัญหาคือไม่สามารถ
โพสท์ได้ เลยลองเซ็ค Log ของ apache ดูก็พบ error ตามด้านล่าง

mod_security: Access denied with code 500. Pattern match "multipart/form-data" at HEADER

ผมถึงได้รู้ว่าบาง Rules ของ mod_security เป็นสาเหตุทำให้ไม่สามารถโพสท์หรือแก้ไข content
ซึ่งผมไม่แน่ใจว่าเว็ปอื่นๆบนเครื่องจะมีปัญหาหรือเปล่า อย่างเว็ปที่ใช้ Joomla แต่ผมก็ได้ทำการ
แก้ไข ไฟล์ /etc/apache2/modules.d/99_mod_security.conf โดยแก้ไข rule ตรง
SecFilterForceByteRange เป็นดังด้านล่าง

SecFilterForceByteRange 1 255

และยกเลิก Rule หรือแก้ไขด้านล่างนี้ ถ้ายกเลิก ก็ใส่ # ด้านหน้าบรรทัดซะ

SecFilterSelective "HTTP_CONTENT_TYPE" multipart/form-data

หรือถ้าไม่ยกเลิก็ทำการแก้ไขให้ rule เป็นดังด้านล่างนี้ (ควรเปลี่ยนมากว่ายกเลิก)
SecFilterSelective HTTP_Content-Type "!(^$|^application/x-www-form-urlencoded$|^multipart/form-data;)"

ทั้งนี้ถ้าไม่สามารถแก้ไขไฟล์ 99_mod_security.conf ได้เองเพราะไม่ได้เป็น Admin
ก็ให้แก้ขในไฟล์ .htaccess ใน htdocs หรือ public_html ถ้าเว็ปนั้นเปิดใช้ mod_rewrite
เว็ปก็จะกลับมาใช้งานได้ตามปกติ

VHCS2 Web Hosting Control Panel

Posted by AnnoMundi on June 26, 2006

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

จนกระทั่งเมื่อ 3-4 วันที่แล้ว ผมได้ตัดสินใจลองลงดูบนเครื่อง colocated server ของผม
โดยอาศัยวิธีการจาก Link ด้านล่างนี้ ซึ่งก็จะทำให้ลงบน Gentoo ได้แต่อาจมีปัญหาบางอย่าง
ให้ตามแก้ซึ่งก็ต้องอาสัยการ search หาวิธีการแก้ปัญหาจากบอร์ดของ VHCS เอาเอง
Gentoo Howto – The Second

HowTo Maia-Mailguard, Amavis, ClamAV und Spamassassin f?r VHCS

Regenerate configs

ซึ่งการลงตามขั้นตอนใน Link นั้นจะดีที่สุดถ้าทำตอนเพิ่งลง Gentoo เสร็จใหม่ แต่ถ้าเคยเซ็ตอัพ
อะไรต่อมิอะไรไว้แล้วก็อาจต้อง unmerge บางโปรแกรมแล้ว emerge ใหม่ ไม่งั้นอาจมีปัญหา
หลังจากผมแก้ปัญหาส่วนใหญ่หมดไปแล้วตอนนี้ยังเหลือบักอีกอย่างคือมันไม่แสดงข้อมูลของ
FTP ว่ามีการใช้ Bandwidth ไปเท่าไหร่ แต่ก็ไม่ใช่ปัญหาใหญ่ รวมๆแล้วตอนนี้การเพิ่มเว็ป
เข้าเครื่องเพิ่ม email บนเครื่องผมก็ทำได้ง่ายกว่าเดิมที่ต้องใช้วิธี ssh เข้าไปจัดการซึ่งค่อนข้าง
ยุ่งยากพอสมควร

สำหรับใครที่กำลังมองหา Web Hosting Control Panel ไว้ใช้น่าจะลอง VHCS2 ดูนะครับ
เพราะใช้งานค่อนข้างง่ายไม่ซับซ้อนเพียงพอกับความต้องการ เข้ากับนโยบายเศรษฐกิจพอเพียง ^^