Archive for the ‘server’ Category
Dymanic subdomain
วันนี้นั่งครึ้มๆอีกแล้ว ก็เลยจะปรับ FBMALL ให้มีเว็บเพื่อให้ Google เข้ามาเก็บข้อมูล แล้วมีผู้คนทั่วไปเห็นสินค้ากับ Fb mall มากขึ้น ตามแผนที่วางไว้ เลยต้องทำ fbmall.com ขึ้นมา
แต่ก็มีอุปสรรคจนได้ คือ FBMall.com ไม่ว่าง ติดต่อซื้อบอกว่า $2500 ให้ตายเถอะ (คิดในใจว่า จำไว้เลยนะ มีตังค์กูไปซื้อแน่) ก็เลยจด fbmalls.com มา
สิ่งที่จะทำก็คือ ให้แต่ละคนสามารถตั้ง subdomain เองได้แล้ว ก็จะได้ subdomain นั้นไปใช้งานภายใต้ xxx.fbmalls.com
เราเองก็รู้ว่ามันต้องทำ 2 ส่วนคือ domain เราต้องปรับให้ทุกๆ sub มาที่นี่แหละ แล้วก็ปรับ apache ให้รับว่าไปรันที่ใหน แต่.. มันทำยังไงหว่า นั่ง งมไปงมมากับ apache config ตั้งนาน เลยคิดคำนึงได้คือ ”Dymanic subdomain apache” เอาไป search โอ้ว เจอด้วย
เจอจาก forums นึงคุยกันเรื่อง dynamic subdomain บน apache พอดีเลย จัดไป(สูบอีกแล้ว)
โดยหลักการก็ตามที่คิดไว้
> 1) add a wildcard A record to BIND (*.domain.tld)
Yes.> 2) add a wildcard virtual domain (*.domain.tld) to my http.config file
Yes. Point it to your main root (main domain “home page”) directory.
เราก็ อ่อ….. มัน wildcard ได้ เราก็จัดซะ ไป add A record ใน control panel เลยว่า * ให้ไปที่ IP ของเรา
จากนั้นก็ไปทำ VirtualHost เพิ่มขึ้นมา ว่าให้ไปรันที่ใหน แค่นี้จบ 555 ง่ายดีจริงๆ ต่อไปก็เอา script แยกเอา
<VirtualHost 122.155.17.152:80>ServerName www.fbmalls.comServerAlias *.fbmalls.comServerAdmin webmaster@fbmalls.comDocumentRoot [Path to program]……
ผมเองไม่ต้องการ แยก file หรือ code ให้เป็น folder อะไร ก็ไม่ต้องทำอะไรต่อ เอาไปรันแสดงผลอย่างเดียว เด่วเจอกัน
override form of symfony model
อันนี้จดไว้กันเหนียวเฉยๆ นะเพราะปกติก็คงรู้ๆ กันอยู่แล้ว แค่ว่า มันนึกยาก ช่วงหลังๆ เหมือนจะแก่ๆ ยังไงไม่รู้ หลงๆ ลืมๆ
การ ที่ symfony generate form ให้เรานั้น จะมี baseXXXXForm ออกมา แล้วก็ XXXXFrom ออกมา XXX ก็หมายถึง model นั่นเอง ทีนี้ถ้สเราไปแก้ base Form เวลาที่เราแก้ model ไปแล้ว propel:build-form ใหม่ base มันจะ generate ใหม่ เพราะฉนั้น อย่าโง่ไปเปลี่ยน หรือ แก้ไขใน base Form นะครับ (เค้าทำออกมาให้อย่างดีอย่าทะลึ่ง)
ให้ไปทำ ที่ XXXForm นะครับ
การ override form ตอนสร้าง from เพื่อแสดงนั้น ให้เขียนลงใน function configure ใน XXXForm นะครับเช่น
จาก class BaseContentForm extends BaseFormPropel มี field
‘published’ => new sfWidgetFormDate(),
‘publish_date’ => new sfWidgetFormDate(),
เราก็ทำเป็น field ของเรา หรือ plugin ไงแบบนี้
class ContentForm extends BaseContentForm
{
public function configure()
{
$this->widgetSchema['published'] = new sfWidgetFormDateJQueryUI();
$this->widgetSchema['publish_date'] = new sfWidgetFormDateJQueryUI();
}
}
เป็นต้นนะ เราก็จะได้ตามที่เราต้องการโดยที่ไมต้องไปเปลี่ยนไง build-model เปลี่ยนตามสบายเลย
cloud hosting
ช่วงนี้ผมกำลังหาความรู้เรื่อง cloud hosting หรือพวกๆ cluster อยู่ หาได้หลายอย่างทั้ง infra เองหรือ รูปแบบหลายๆ รูปแบบ แหม่มันช่างใหญ่โตซะจริงแต่ที่แย่เลยคือ มันเยอะซะจนมันแพง 555 ถ้าต่อไปแล้ว มีการใช้งานเพิ่มมากขึ้นจริงๆ ก็ถือว่าเป็นแนวทางอันดีเลย
Green SQL Firewall
วันนี้ได้อ่าน THT เล่นไปเรื่อยๆ แล้วก็มีคนมาเสนอหัสข้อนึงให้ลองดูก็คือ greenSQL อิอิ เหมือน Green Wifi กทม ของเราหรือเปล่า
โดย Greebn SQL นี้มีหน้าที่หลักคือ
GreenSQL is an Open Source database firewall used to protect databases from SQL injection attacks. GreenSQL works as a proxy and has built in support for MySQL. The logic is based on evaluation of SQL commands using a risk scoring matrix as well as blocking known db administrative commands (DROP, CREATE, etc)
เป็น open source database firewall ที่ช่วยป้องกันจาก sql injection attacks โดยจะทำงานคล้ายๆกับ proxy และ support MySql ใสตัวเสร็จรสรรพ
ความหมายก็ตรงตัวตามที่ได้กล่าวไว้ วิธีการทำงานก็คล้ายเๆเป็น proxy หรือ firewall ขั้นไว้นั่นเอง
ขอยืมรูปมาจากเว็บของ greensql เลย เป็นรูปแบบการติดต่อ 
แล้วก็มี blog ที่เขียนเรื่องเกี่ยวกับ green sql ไว้ด้วยแล้ว ลองอ่านได้ ที่นี่ มีทั้งการติดตั้งและแนวการใช้งานได้ด้วย
การที่มีโปรแกรมต้องรันเพิ่มขึ้นมาก็ต้องให้เครื่องทำงานเพิ่มด้วย ยิ่งเป็น database ด้วยแล้ว resource ก็ต้องใช้งานไปเยอะ แล้วถ้าติดตั้ง greensql เข้าไปจะเหมือนทำงาน database 2 ครั้งหรือเปล่า
greenSQL เองก็ได้ทำการวัดประสิทธิภาพการทำงานไว้แล้วเพราะรู้ว่าเรื่องนี้เป็นสิ่งที่จะตามมา ก็ลองไปดูกันแล้วกันนะครับที่นี่

จากกราฟสีเข้มคือ ใช้งานผ่าน mysql อย่างเดียว และ สีอ่อน จะใช้งานโดยผ่าน greenSQL แกน x เป็น Request/Sec หรือการเรียกใช้งานต่อวินาที แกน y เป็น concurrent request หรือปริมาณการเรียกใช้งานพร้อมๆกันนั่นเอง จะเห็นว่า เมื่อใช้งาน greenSQL แล้ว ตกลงมานิดๆ
การทดสอบครั้งนี้ ถูกทดสอบด้วย ab or Apache Bench แถมยังได้บอกวิธีการ Test ไว้ด้วย อ่านลงมาล่างหน่อยจะเจอ
ab -n 400 -c 10 hxxp://test-website.com/โดย
- -c หมายถึง จำนวน concurrent ที่ต้องการ
- -n หมายถึงจำนวนที่ request
Link เพิ่มเติม
Blog ที่เขียนเกี่ยวกับ Green SQL ไว้
เวลาทำ server ตัวนึงต้อง config อะไรบ้างมาดู
Setup Checklist for CentOS 5.1 x 64bit
=============================-Config SSHD
-Config Firewall Rules
-Install Screen
-Setup DirectAdmin 1.322
-Install Spamassassin (./spam.sh)
-Install Freetype
-Install GD
-Config Spamassassin (exim.conf)
-Convert to Dovecot (build) 1.0.13
-Upgrade to Apache 2.2.6
-Upgrade to PHP 5.2.5
-ClamAV
-Config Exim to ClamAV (exim_clam)
-PHP.INI Disable_functions
-Mod_Security
-Mod_Evasive
-Mod Perl
-Install MRTG
-Install ZendOptimizer
-Install eAccelerator
-Chkrootkit / Rkhunter
-BFD Monitoring Tool with Firewall Integrated
-Config Webmail support Thai
-Webmail.Domainname.com
-enable realtime blocklists (RBLs)
-enable Spamassin for new accounts
-Log 90 Day
-Tune Apache
-Tune MySql
