พระราชดำรัส

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

(พระราชทานแก่ผู้บังคับบัญชาลูกเสือ 9 กรกฎาคม 2514 )

สั่ง Yum ผ่าน proxy

เมื่อต้องทำการ update package ด้วยคำสั่ง yum  และต้องกำหนดให้ผ่าน proxy  นั้นสามารถใช้คำสั่งต่อไปนี้เพื่อกำหนดให้ผ่าน proxy

#export http_proxy=http://username:password@proxy:8080

หลังจากนั้นจึงใช้คำสั่ง yum  ตามปกติ

มีผู้แนะนำให้เพิ่มคำสั่งต่อไปนี้ที่ .bashrc และเรียกใช้คำสั่ง proxy เมื่อต้องการ

function proxy() {
 echo -n "username:"
 read -e username
 echo -n "password:"
 read -es password
 export http_proxy="http://$username:$password@proxy: port/"
 export ftp_proxy="http://$username:$password@proxy: port/"
}

ในหลวงทรงเตือนบ้านเมืองใกล้ล่มจมเพราะใช้เงินไม่ระวัง

“ในหลวง” พระราชทานพระบรมราโชวาทแก่ผู้ว่าฯ ธปท.และคณะที่เข้าเฝ้าฯ ทรงขอให้บริหารเงินไม่ให้หมดประเทศ ทรงขอบใจที่เหน็ดเหนื่อยเรื่องการเงิน ซึ่งเป็นงานหนัก และสามารถปฏิบัติงานด้านการเงินเป็นที่เรียบร้อย ไม่ให้บ้านเมืองล่มจม แม้ตอนนี้ใกล้ล่มจมแล้ว ซึ่งอาจเพราะใช้เงินไม่ระวัง
       
        คลิกที่นี่ เพื่อฟัง พระบาทสมเด็จพระเจ้าอยู่หัว พระราชทานพระบรมราโชวาทแก่ผู้ว่าฯ ธปท.และคณะที่เข้าเฝ้าฯ 
       
       เมื่อเวลา 17.31 น.วันที่ 20 สิงหาคม 2551 พระบาทสมเด็จพระเจ้าอยู่หัว เสด็จฯออก ณ พระตำหนักเปี่ยมสุข วังไกลกังวล อำเภอหัวหิน จังหวัดประจวบคีรีขันธ์ พระราชทานพระบรมราชวโรกาส ให้ นางธาริษา วัฒนเกส ผู้ว่าการธนาคารแห่งประเทศไทย พร้อมด้วยคณะผู้บริหารธนาคารแห่งประเทศไทย และคณะกรรมการบริหารสมาคมธนาคารไทย เฝ้าทูลละอองธุลีพระบาท ทูลเกล้าทูลกระหม่อมถวายเงิน ซึ่งเป็นรายได้ส่วนเกินจากการเปิดให้ประชาชนแลกซื้อธนบัตรที่ระลึกเฉลิมพระเกียรติ เนื่องในโอกาสมหามงคลเฉลิมพระชนมพรรษา 80 พรรษา 5 ธันวาคม 2550 ชนิดราคา 16 บาท ในราคาแลกซื้อ 100 บาท เพื่อทรงใช้สอยตามพระราชอัธยาศัย
       
       ในการนี้ พระบาทสมเด็จพระเจ้าอยู่หัว พระราชทานพระบรมราโชวาทแก่คณะที่เข้าเฝ้าฯ ความว่า “ขอขอบใจที่ท่านได้ทำงานอย่างเข้มแข็ง ได้ทำงานมากในงานของการธนาคาร ขอให้งานธนาคารที่ท่านทำเป็นผลดีสำเร็จ แต่ก่อนเงิน 10 บาท ก็รู้สึกว่าเป็นเงินมาก เดี๋ยวนี้ สิบบาทร้อยบาทพันบาท หรือหมื่นบาทก็ยังน้อย ทำไมมันน้อย แม้ล้านบาทก็ยังน้อย
       
       เมื่อครั้งไปขอเงินสมเด็จพระพันวษา ขอเงิน 1 บาท ท่านให้ พอกำแหงหน่อยขอ 5 บาท ก็ยังให้ ต่อมาขอท่าน 10 บาท ก็ยังให้ แต่มาถึง 50 บาท ท่านบอกไม่มี ถามว่า งั้น 100 บาทมีไหม ท่านบอกว่า มี แต่ต้องตัดบัญชีที่มีอยู่ อยากใช้เท่าไรก็ได้
       
       ท่านสอนว่าเราไม่ควรจะถลุงเงิน แม้ 100 บาท ท่านไม่ให้ แต่วันนี้เป็นพันบาทหมื่นบาทแสนบาทล้านบาทท่านก็ให้ ร้อยล้านท่านก็ให้ สมัยนี้เปลี่ยนไป แต่ก่อน 100 บาท ท่านไม่ให้ แต่สมัยนี้ ร้อยพันหมื่นแสนท่านก็เอามาให้ ต้องขอบใจท่านที่มีน้ำใจ เพราะว่าสมเด็จย่าท่านบอกว่า ถ้าให้ก็หมด หมดก็ไม่ให้แล้ว ตอนนี้ท่านให้มาเป็นจำนวนมาก หวังว่าท่านบริหารได้พันล้านหมื่นล้าน ขอให้ท่านทั้งหลายบริหารเงินไม่ให้หมด เพื่อให้ประเทศชาติมีเงินใช้ ขอขอบคุณที่มีความตั้งใจบริหารเงินของชาติไม่ให้หมดไป ให้มีใช้
       
       ขอบใจที่เหน็ดเหนื่อยเรื่องการเงิน ซึ่งเป็นงานหนัก และสามารถปฏิบัติงานด้านการเงินเป็นที่เรียบร้อยไม่ให้บ้านเมืองล่มจม แม้ตอนนี้ใกล้ล่มจมแล้ว ซึ่งอาจใช้เงินไม่ระวัง เพราะใช้เงินไม่ระวัง
       
       ขอบใจที่ท่านระวังเรื่องการดำเนินด้านการเงิน ขอให้สำเร็จใจการบริหารการเงินของประเทศชาติ ขอบใจท่านที่เหน็ดเหนื่อยเรื่องการเงิน เรารู้ว่าท่านเหน็ดเหนื่อย ลำบากใจ นอกจากเหน็ดเหนื่อยแล้วยังถูกหาว่าทำไม่ได้ดี ทำไม่ถูกต้อง ขอบใจทุกคนที่มาในวันนี้ และยังทำงานอย่างเข้มแข็ง เพื่อให้บ้านเมืองมีเงินใช้ ใครที่บริหารการคลังควรรู้ว่าเป็นสิ่งที่สำคัญของชาติบ้านเมือง
       
       ขอบทุกท่านที่ปฏิบัติงานเพื่อความสำเร็จของชาติบ้านเมือง ขอให้มีความสุขในการงานขอให้สำเร็จ”

ที่มา:http://www.manager.co.th/Home/ViewNews.aspx?NewsID=9510000098629

Preventing image hotlinking

เราสามารถป้องกันไม่ให้โดนขโมยใช้แบนด์วิทโดยใช้ Rewrite  โดยเพิ่มข้อความต่อไปนี้ที่ไฟล์ .htaccess
ตัวอย่างนี้ป้องกันไม่ให้เว็บ test.com และ kapeek.com มา hotlink รูปภาพจากเรา 

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://(.+.)?test.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+.)?kapeek.com/ [NC]
RewriteRule .*.(jpe?g|gif|bmp|png)$ - [F]
ที่มา: 

php.ini sections

เราสามารถเพิ่ม section ใน php.ini เพื่อให้กำหนดค่า config ที่ต้องการต่อโดเมน หรือต่อไดเรกทอรีได้ (เพิ่มใน PHP เวอร์ชัน 5.3.0 เป็นต้นไป)  ตัวอย่างเช่น

[HOST=dev.site.com]
error_reporting = E_ALL
display_errors = On
[PATH=/home/site/public/secure]
auto_prepend_file=security.php

PHP Error Handling

สำหรับ production servers ให้สร้างไฟล์ .htaccess และใส่ข้อมูลต่อไปนี้ (แก้ไขตามสมควร)

# PHP error handling for production servers
php_flag display_startup_errors false
php_flag display_errors false
php_flag html_errors false
php_flag log_errors true
php_flag ignore_repeated_errors false
php_flag ignore_repeated_source false
php_flag report_memleaks true
php_flag track_errors true
php_value docref_root 0
php_value docref_ext 0
php_value error_log /home/path/public_html/domain/PHP_errors.log
php_value error_reporting 999999999
log_errors_max_len 0

<Files /home/path/public_html/domain/PHP_errors.log>
 Order allow,deny
 Deny from all
 Satisfy All
</Files>

สำหรับ development servers ให้สร้างไฟล์ .htaccess และใส่ข้อมูลต่อไปนี้ (แก้ไขตามสมควร)

# PHP error handling for production servers
php_flag display_startup_errors true
php_flag display_errors true
php_flag html_errors true
php_flag log_errors true
php_flag ignore_repeated_errors false
php_flag ignore_repeated_source false
php_flag report_memleaks true
php_flag track_errors true
php_value docref_root 0
php_value docref_ext 0
php_value error_log /home/path/public_html/domain/PHP_errors.log
php_value error_reporting 999999999
php_value log_errors_max_len 0

<Files /home/path/public_html/domain/PHP_errors.log>
 Order allow,deny
 Deny from all
 Satisfy All
</Files>

ที่มา: http://perishablepress.com/press/2008/01/14/advanced-php-error-handling-via-htaccess/

การเปลี่ยนโดเมนของบล็อกที่ใช้ wordpress

เนื่องด้วยผมมีเหตุจำเป็นที่ต้องเปลี่ยนโดเมนบล็อกที่ใช้ wordpress จาก abc.com เป็น abc.net  แต่หลังจากที่ได้แก้ไขค่าต่างๆ ของเว็บเซิร์ฟเวอร์แล้วพบว่า เมื่อเปิด abc.net ก็ยังคง redirect กลับไปที่ abc.com เช่นเดิม

ในที่สุดก็พบว่าจะต้องเข้าไปแก้ไขที่ฐานข้อมูลของ wordpress โดยตรง  เพื่อไม่ให้ redirect ไปที่ชื่อโดเมนเดิม  ซึ่งตารางที่จะต้องทำการแก้ไขคือ wp_options  โดยต้องแก้ไข siteurl และ home ให้เป็นชื่อเว็บใหม่

จากของเดิมที่เป็น  http://www.abc.com ต้องแก้ไขเป็น http://www.abc.net ครับ

😉

การย้าย Mailman: ติดตั้งโดยใช้ rpm package(ภาค 2)

สืบต่อจากเรื่อง การย้าย Mailman และปรับแต่งให้รองรับภาษาไทย ก่อนหน้านี้  วันนี้ระบบ mailing list มีปัญหาหลังจากการ upgrade OS โดยอีเมลอะไรก็ตามที่ส่งเข้า mailing list จะหายสาบสูญไปเลย โดยไม่มีอีเมลแจ้งบอกทั้งผู้ส่งและ moderator

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

# yum install mailman

หลังจากติดตั้งแล้วพบว่า โครงสร้างไดเรกทอรีของ mailman กระจายอยู่ตามที่ต่างๆ ได้แก่

  • /usr/lib/mailman เก็บตัวโปรแกรมหลักและไฟล์ที่ใช้ปรับแต่งระบบ
  • /var/lib/mailman เก็บข้อมูลของ mailing list ต่างๆ
  • /etc/mailman เก็บไฟล์ aliases ของ mailing list ต่างๆ
เมื่อโครงสร้างเปลี่ยนไปทำให้ต้องมีการตามปรับค่า config ต่างๆ ใหม่ไปด้วย
สำหรับวิธีการเพิ่มภาษาไทยนั้น ก็ยังจำเป็นจะต้องแก้ไขไฟล์ /usr/lib/mailman/Mailman/Defaults.py เช่นเดิม โดยให้เพิ่มบรรทัดต่อไปนี้ ที่กลุ่มคำสั่งเพิ่มภาษาต่างๆ  ซึ่งจะอยู่ที่บริเวณท้ายสุดของไฟล์
add_language('th',    _('Thai'),    'tis-620')
หลังจากนั้นแก้ไขไฟล์ /usr/lib/mailman/Mailman/mm_cfg.py ดังนี้
DEFAULT_URL_HOST   = 'list.domain.com' //ปรับแก้ไขค่าเดิม
DEFAULT_EMAIL_HOST = 'list.domain.com' //ปรับแก้ไขค่าเดิม
DEFAULT_CHARSET = 'tis-620' //พิมพ์เพิ่มเติม VERBATIM_ENCODING = ['tis-620'] //พิมพ์เพิ่มเติม DEFAULT_SERVER_LANGUAGE = 'th' //พิมพ์เพิ่มเติม

และเนื่องจาก alias ไฟล์ของ mailman อยู่ที่ /etc/mailman/aliases และ /etc/mailman/aliases จึงต้องแก้ไขไฟล์ /etc/postfix/main.cf ด้วย

alias_maps = hash:/etc/aliases, hash:/etc/mailman/aliases alias_database = hash:/etc/aliases, hash:/etc/mailman/aliases

หลังจากนั้นก็ทำการย้ายข้อมูลเดิมไปไว้ที่ /var/lib/mailman/archives, /var/lib/mailman/data และ /var/lib/mailman/lists ตามลำดับ แล้วก็ต้องตรวจสอบค่า permission โดยใช้คำสั่ง

/usr/lib/mailman/bin/check_perm -f

สิ่งที่สำคัญอีกประการหนึ่งคืออย่าลืมตรวจสอบว่า  mailman service  ได้ทำงานแล้วหรือไม่  และควรกำหนดให้เริ่มทำงานโดยอัตโนมัติทุกครั้งด้วย

ท้ายที่สุดก็จะต้องปรับแต่งค่าในไฟล์ /etc/httpd/conf.d/mailman.conf ให้เหมาะสมด้วยครับ

จัดการภาษาไทย (UTF-8) ด้วย Multibyte String Functions

UTF-8 ใช้พื้นที่ 3 ไบต์ ในการเก็บข้อมูลภาษาไทย 1 อักขระ  ดังนั้นจึงไม่สามารถใช้ฟังก์ชัน เช่น strlen() และ substr() กับภาษาไทยที่เป็น UTF-8 ได้ เช่น

$string = "ที่นี่abcd1234";
echo 'strlen() return: '.strlen($string);
ผลลัพธ์ที่ได้คือ
strlen() return: 26

ตัวเลข 26 มาจาก ภาษาไทย 6×3 = 18, ภาษาอังกฤษ 4 และตัวเลข 4 ตัว

ดังนั้นเพื่อให้นับจำนวนตัวอักขระได้อย่างถูกต้องจะต้องใช้ฟังก์ชัน multibyte  string  เช่น จากตัวอย่างข้างต้น จะต้องใช้ฟังก์ชัน mb_strlen() แทน strlen()

Continue reading จัดการภาษาไทย (UTF-8) ด้วย Multibyte String Functions