Archive

Archive for the ‘วิถีทางแห่งโปรแกรมเมอร์’ Category

ความสงสัยส่วยตัวเกี่ยวกับ Storage Engine ระหว่าง Myisam กับ innodb ครับ

กุมภาพันธ์ 26, 2007 ใส่ความเห็น
ISAM (MyISAM) ซึ่งมีความรวดเร็วในการอ่านและเขียนสูง เนื่องจากมีการจัดเก็บไว้ในรูปแบบของแฟ้มข้อมูล ซึ่งรองรับการอ่านข้อมูลพร้อมๆ กันได้ (เหมาะสำหรับ Web Application) แต่อาจจะมีปัญหาเมื่อใช้งานกับระบบที่ต้องมีการอ่าน/เขียน ข้อมูลในตารางเดียวกัน พร้อมๆ กัน ที่สำคัญ ฐานข้อมูลประเภท MyISAM จะมีปัญหาเรื่อง Index เสีย และ Data Corrupt บ่อยมาก หากใช้งานใน OS ที่เป็น Windows และมีการ Shutdown อย่างไม่ถูกต้อง ซึ่งทำให้ผู้ดูแลระบบต้องมีการซ่อมแซม (repair table bad_table) ตารางทีมีปัญหาอยู่เรื่อยๆ

InnoDB ข้อดีคือ รองรับการทำ Transaction รองรับการอ่านและเขียน พร้อมๆ กันได้ดีกว่าฐานข้อมูลประเภท MyISAM และยังมีระบบ Auto Data Recovery หากมีการ shutdown โดยไม่เหมาะสม (ไฟดับ) ซึ่งในการใช้งานผู้ใช้สามารถเลือกได้ว่าจะให้ตารางใดเป็นประเภท InnoDB หรือ MyISAM ขึ้นอยู่กับความเหมาะสม (ว่าจะเลือกความเร็ว หรือ ประสิทธิภาพ)

ริจะเขียน MCV เป็น Framework ต้องศึกษา

กุมภาพันธ์ 26, 2007 ใส่ความเห็น
 
- CakePHP
- Code Igniter
- PRADO
- Symfony
- Zend Framework

วิธีเปลี่ยน Mac Address (สำหรับ W2K และ XP) โดยไม่ต้องพึ่ง PROGRAM

ธันวาคม 21, 2006 ใส่ความเห็น
วิธีเปลี่ยน Mac Address (สำหรับ W2K และ XP) โดยไม่ต้องพึ่ง PROGRAM   
วิธีที่ 1:

วิธีนี้ขึ้นอยู่กับชนิดของ NIC card (Lan card) ของคุณด้วยครับ ถ้ามันไม่ support การ  Clone MAC address คุณก็ต้องใช้วิธีที่ 2 แทน
1.   ไปที่ Start->Settings->Control Panel แล้ว double click ที่ Network and Dial-up Connections.
2.   คลิ๊กขวาที่ NIC card ของคุณ (หรือถ้ามีหลายอันก็เลือกอันที่ต้องการจะเปลี่ยนครับ แล้ว click ที่ properties.
3.   ใน “General” tab, click ที่ปุ่ม “Configure”
4.   Click ที่ “Advanced” tab
5.   ในช่อง “Property”, คุณจะเห็น “Network Address” หรือ "Locally Administered Address" คลิกไปเลยครับ
6.   ที่ด้านขวาด้านล่าง “Value”, ให้พิมพ์ Mac address ที่คุณต้องการใช้งานโดยไม่ต้องใส่เครื่องหมาย  “-“ คั่นเลข MAC address นะครับ
7.   ไปที่ command prompt (กดปุ่ม start >> run >> พิมพ์ cmd >> ok ) แล้วพิมพ์คำว่า “ipconfig /all” หรือ “net config rdr” ดูว่า Mac address ของคุณเปลี่ยนไปแล้วหรือเปล่า ถ้าไม่เปลี่ยนก็ต้องใช้วิธีที่ 2 ครับ
8.   ถ้าสำเร็จ ก็ reboot เครื่องซักรอบก็เสร็จแล้วครับ
 
วิธีที่ 2:
วิธีนี้ผู้ใช้ควรจะรู้เกี่ยวกับการใช้งาน Windows Registry บ้างครับถ้าไม่รู้ก็ใช้โปรแกรมช่วยเปลี่ยนดีกว่าครับ ไม่ควรเสี่ยง อย่างไรก็ตามการเข้าไปยุ่งกับ Registry ควร backup registry ไว้ก่อนนะครับ กันพลาด
1.     ไปที่ command prompt (กดปุ่ม start >> run >> พิมพ์ cmd >> ok ) แล้วพิมพ์ “ipconfig /all”
    1.1 จดค่า Description จาก NIC ที่คุณต้องการจะเปลี่ยน
    1.2  จดค่า Physical Address (มันคือ MAC Address นั่นแหละ)

 

2. หรือพิมพ์ “net config rdr” คุณจะเห็นอะไรประมาณนี้

         
3.    จดเลขที่อยู่ระหว่าเครื่องหมาย { }.  เช่นเมื่อพิมพ์ “net config rdr” จะได้ MAC address “00C095ECB793” คือเลขที่อยู่ใน( ) ซึ่งคุณต้องจดเลขนี้ไปด้วย {1C9324AD-ADB7-4920-B02D-AB281838637A}. 
4.     กด Start -> Run พิมพ์ “regedt32” เพื่อเปิด registry editor.  อย่าใช้ “Regedit.”
5.     Back up registry ไว้ก่อน
                                               5.1     เข้าไปที่ “HKEY_LOCAL_MACHINE on Local Machine” sub-window
                                                5.2     คลิกที่ root key “HKEY_LOCAL_MACHINE”.
                                                 5.3     เลือกตาม drop-down menu “Registry -> Save Subtree As” แล้ว save backup registry เป็น file แล้วเก็บไว้ให้ดี
6.      Go to “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E972-E325-11CE-BFC1-08002BE10318}.  แล้ว Double click.  ใน subkeys จะเป็นเลข 4-digit  จะแสดงรายละเอียดของ network adapters. 

     
7.   ไล่ดูทีละอันตั้งแต่ 0000.  ให้ดูที่ DriverDesc ว่าตัวไหนตรงกับ NIC ที่จะทำการเปลี่ยน    MAC address.   DriveDesc จะตรงกับ Description ที่คุณจดไว้เมื่อสักครู่ ถ้าไม่มั่นใจ คุณสามารถเช็ค NetCfgInstanceID ว่าตรงกับเลขที่อยู่ระหว่าเครื่องหมาย { } ที่ได้จดไว้หรือไม่  ถ้าไม่ตรงก็ต้องไล่ไปเรื่อยๆ 0001, 0002, 0003, and so on, จนกว่าจะเจอ แต่ปกติก็จะอยู่ตรง 0000 นั่นแหละครับ ของผมเจอที่ 0000 เลยครับ
8.    เช็คดูว่าใน subkey (ในที่นี้คือ 0000), ดูว่ามี keyword "NetworkAddress" อยู่ด้านขวาหรือไม่.)
 9.     ถ้าไม่มี "NetworkAddress" ให้สร้าง keyword ขึ้นมาใหม่
        9.1 Click ที่ drop down menu “Edit -> Add Value”.
        9.2  ใน Add Value window ใส่ตามนี้แล้ว click OK
            Value Name: = NetworkAddress
            Data Type: = REG_SZ
                   
           
        9.3   String Editor จะ pop up ขึ้นมา 
        9.4  ใส่ MAC address ที่ต้องการ แล้ว click OK.
        (ไม่ต้องมีเครื่องหมาย "-" คั่น แล้วก็ใส่เป็นตัวเลข 12 ตัว ห้ามขาดห้ามเกิน)
    10.  ถ้ามี "NetworkAddress" keyword อยู่แล้ว เช็คอีกครั้งว่า keyword type เป็น REG_SZ ซึ่งมันจะแสดงเป็น NetworkAddress:REG_SZ:  .  และตอนนี้จะยังไม่มี value . 
        10.1 Double click ที่ keyword NetworkAddress แล้ว String Editor window จะ pop up ขึ้นมา
         10.2  ใส่เลข MAC ที่ต้องการแล้ว click OK.
       (ไม่ต้องมีเครื่องหมาย "-" คั่น แล้วก็ใส่เป็นตัวเลข 12 ตัวห้ามขาดห้ามเกิน)

11. มี 2 วิธีที่จะทำให้ MAC address active.  ในที่นี้ผมไม่ต้องการให้ system reboot:
12.  กด Start->Setting->Control Panel  แล้ว double click ที่ "Network Neighborhood".
คำเตือน:  network connection จะหลุดหลังจากทำ "12.2"
ถ้าคุณใช้ DHCP client คุณจะได้ IP address ใหม่หลังจากทำ "12.3"
        12.1  เลือก Network Adaptor ที่คุณพึ่งเปลี่ยน MAC address.
        12.2  click ขวาที่ Network Adaptor แล้ว click "Disable." 
       แล้ว status column ที่ adaptor นี้จะเปลี่ยนเป็น "Disabled"
        12.3  click ขวาที่ Network Adaptor แล้ว click "Enable."
       แล้ว status column ที่ adaptor นี้จะเปลี่ยนเป็น "Enabled"
         12.4  ถ้าไม่สามารถ disabled หรือ enabled ขึ้นมาใหม่ได้ คุณต้อง reboot เครื่องคุณใหม่ครับ
13.  หลังจากนั้น ไปที่ command prompt แล้วพิมพ์ “ipconfig /all” เพื่อเช็ค MAC address ว่าเป็นตัวที่เราใส่ไปใหม่หรือไม่
 
การ Restore Hardware burned-in MAC Address (MAC Address เดิม)
1.     เอาค่าที่ตั้งใหม่ออก
    1.1 ถ้าคุณทำตามวิธีที่ 1 ไปที่ advanced properties window แล้วลบค่า entry ที่คุณใส่ไว้
    1.2 ถ้าคุณทำตามวิธีที่ 2 ให้ remove "NetworkAddress" keyword ที่คุณ added ใน registry.
2.   ทำตามข้อ 12 – 13 ด้านบน

Tip: ในกรณีที่คุณใช้วิธีที่ 2  คุณสามารถ Restore registry ได้ โดยเข้าไปที่ regedt32 แล้ว click drop-down menu “Registry->Restore,” แล้ว restore จาก backup registry ที่คุณทำไว้ก็ได้ครับ

sysprep

ธันวาคม 21, 2006 ใส่ความเห็น

หนึ่งโปรแกรมที่ต้อง Run หลังทำการ Ghost

sysprep (System Preparation Tool )
http://www.microsoft.com/technet/prodtechnol/winxppro/deploy/introduction.mspx
http://support.microsoft.com/kb/302577
http://service1.symantec.com/SUPPORT/ghost.nsf/docid/2000081610075225

 

 

เรื่องของเวลาที่แตกต่างกัน ^^

ตุลาคม 21, 2006 ใส่ความเห็น
อิ อิไม่ได้เขียนโปรแกรม นานสนิมขึ้นไปหลายรอบ เฮอะๆๆ เมื่อน้องถาม เรื่องการคำนวณเวลาที่แตกต่างกัน
แต่ถ้าเป็น Mysql เวอร์ชั่ย 4.1 Up ก็คงจะดีน่ะครับ จะได้โยนไปให้ DBMS จัดการให้ ด้วยคำสั้ง
  • DATEDIFF(expr1,expr2)

    DATEDIFF() returns expr1expr2 expressed as a value in days from one date to the other. expr1 and expr2 are date or date-and-time expressions. Only the date parts of the values are used in the calculation.

    mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
            -> 1
    mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');
            -> -31
    แต่ ถ้าเราใช้ตำกว่านี้ละครับ อิ อิ หลังจากที่ใช้ explod มานาน ก็ได้ลองเขียนเป็นฟังก์ชั้นขึ้นมา
  •  

    function getDateTimeDiff($xTime,$xLimit=24){
       $sessionTime=strtotime($xTime);
       $currentTime=strtotime(date("Y-m-d H:i:s",time()));
       $totalSecTime = $currentTime - $sessionTime;
       $totalSecTime=$xLimit*3600-$totalSecTime;
       if($totalSecTime < 0 ){
         return '00:00:00';
       }else{
       $hh = substr("00".floor($totalSecTime / 3600),-2) ;
       $tmpMin = $totalSecTime % 3600;
       $mm = substr("00".floor($tmpMin / 60),-2) ;
       $tmpSec = substr("00".($tmpMin % 60),-2);
       return $hh.":".$mm.":".$tmpSec;
       }
    }

    ฟังชันนี้ จะรับเวลาใน format  "2006-05-28 12:00:54" และจำนวนชั่วโมง

    และเอาเวลาที่รับมา มาเปรียบเทียบกับเวลาปัจจุบันว่า เหลืออีกกี่ ชม: นาที: วินาที 

    เช่นสมมุติ เวลาปัจจุบันคือ 2006-05-28 11:00:00 และเรียกใช้ฟังก์ชันว่า

    getDateTimeDiff("2006-05-28 10:00:00",2);

    ฟังก์ชันจะ เอาเวลาที่รับมานั่นคือ  2006-05-28 10:00:00

    มาบวกเข้าอีก 2 ชั่วโมง จึงเป็น  2006-05-28 12:00:00  และเปรียบเทียบกับเวลาปัจจุบัน นั่นคือ 2006-05-28 11:00:00

    ดังนั้นเวลาที่ฟังก์ชัน return ค่าให้คือ  1:00:00 นั่นคือ 1 ชม เต็ม

    ฟังก์ชั่นเล็ก ๆ อาจจะเป็นประโยชน์ไม่มานั้งปวดหัวกับ explode เหมือนผมน่ะคัรบ หรือเพื่อนคนไหน เขียน
    ได้สั้นกว่านี้ก็แนะนำกันเข้ามาบ้างน่ะคัรบ

  • 10 ภาษาโปรแกรมที่ควรเรียนรู้ในการทำงาน

    ตุลาคม 17, 2006 ใส่ความเห็น
    10 ภาษาโปรแกรมที่ควรเรียนรู้ในการทำงาน
     

    eWeek ทำการสำรวจตามบริษัทจัดหางานต่างๆ เพื่อสรุปเกี่ยวกับภาษา 10 ภาษาที่ถ้าเรียนรู้จนเป็นแล้วจะทำให้หางานได้ง่ายขึ้น, Resume น่าเป็นที่สนใจขึ้นมาดังนี้(ไม่เรียงตามลำดับ)ครับ

    • PHP : จำนวนตำแหน่งที่ต้องการประมาณ 1,152 ตำแหน่ง
    • C# : จำนวนตำแหน่งที่ต้องการประมาณ 5,111 ตำแหน่ง 
    • AJAX : จำนวนตำแหน่งที่ต้องการประมาณ 1,106 ตำแหน่ง
    • JavaScript : จำนวนตำแหน่งที่ต้องการประมาณ 4,406 ตำแหน่ง
    • Perl : จำนวนตำแหน่งที่ต้องการประมาณ 4,810 ตำแหน่ง 
    • C : จำนวนตำแหน่งที่ต้องการประมาณ 6,164 ตำแหน่ง
    • Ruby กับ Ruby on Rails : จำนวนตำแหน่งที่ต้องการประมาณ 210 ตำแหน่ง
    • Java : จำนวนตำแหน่งที่ต้องการประมาณ 14,408 ตำแหน่ง 
    • Python : จำนวนตำแหน่งที่ต้องการประมาณ 811 ตำแหน่ง
    • VB.Net : จำนวนตำแหน่งที่ต้องการประมาณ 2,090 ตำแหน่ง

    ทาง eWeek ยังกล่าวด้วยว่า การเรียนรู้ภาษา/เทคโนโลยีใหม่ๆ เป็นสิ่งที่โปรแกรมเมอร์ต้องทำอยู่แล้วและเลือกใช้ให้ถูกที่ถูกเวลาเท่านั้นเอง จำนวนตำแหน่งที่ต้องการนำมาจาก Dice.com ครับ

    คิดว่าถ้าจัดอันดับในเมืองไทย PHP, VB.NET, Java กินเรียบ!

    ที่มา – OSNews

    เฮอะๆๆ Java มาแรงจริงๆๆ

    ในที่สุด Google ก็สร้างบริการที่เราอยากได้มานาน

    ตุลาคม 10, 2006 ใส่ความเห็น
    ในที่สุด Google ก็สร้างบริการที่เราอยากได้มานาน
    อิ อิ ที่เนี้ยก็สบายเราแล้ว อิ อิง่านต่อการเขียน Code
     
     

    ตั้งค่า php.ini ให้เป็น register_globals=Off

    กันยายน 21, 2006 ใส่ความเห็น
    เรื่องเก่าเล่าใหม่ครับ
    ==========
    ตั้งแต่ PHP 4.2.x ขึ้มา หลังติดตั้งแล้ว จะมีค่า Default ของ register_globals เป็น Off
    แต่ใน Server ที่ติดตั้ง Controlpanel เพื่อให้บริการ Hosting แล้ว ส่วนใหญ่ ค่า register_globals ในไฟล์ php.ini จะถูกตั้งเป็น on มาเลย
    เจอกรณีนี้ทั้ง cPanel และ Ensim ครับ Plesk ยังไม่เคยใช้ แต่เดาว่าน่าจะเป็นด้วย

    register_globals เป็น On หรือ Off ถึงจะดี และทำไมถึงต้องเลือกเช่นนั้น

    ผมไม่ได้เป็น Programmer นะครับ เลยพอจะบอกได้แค่แบบบ้านๆ ว่า
    การตั้งค่า register_globals เป็น On จะเป็นการเปิดโอกาสให้ Hacker สามารถทำการ Execute คำสั่งระยะไกลบน Server ของคุณได้

    ข้อมูลที่ไปค้นๆ มาครับ
    จาก http://php.deeserver.net

    QUOTE
    เรื่อง reigister global = off เป็นเรื่องที่สำคัญมากครับ ในเรื่องของ security
    อย่างว่า เช่น ถ้าคุณเขียน code แบบนี้
    <?
    if ($auth == 1) {
    $login = 1;
    Header (Location : restrict.php)
    } else {
    echo "Access Denied";
    }
    ถ้ามีซักคนที่รู้ source code คุณ เขาสามารถ force ตัวแปร $auth ของคุณได้ทันที
    เช่น http://localhost/login.php?auth=1 (แบบนี้คือ GET นะครับ)
    แค่นี้เขาก็สามารถเข้าสู่ระบบได้ทันที แต่ถ้าเป็นแบบ Off เขาไม่สามารถจะ force ตัวแปรได้เลย
    เช่น เราให้ กำหนดให้รับค่าตัวแปร $auth เฉพาะ POST อย่างเดียวไม่รับ GET ก็ จะเขียน
    โค๊ดแบบนี้นะครับ
    $auth = $_POST['auth'];
    ตรงนี้ก็จะช่วยป้องกันการ force ตัวแปรได้ สำหรับผมคงอธิบายได้ไม่มากเท่าไหร่ คงต้อง
    ไปหาอ่านดูใน www.php.net นะครับ

    และจาก http://www.expert2you.com

    QUOTE
    การ set ให้ register_globals เป็น off ทำให้ตัวแปรที่เป็น Environment, Get, Post, Cookies และ Server จะไม่เป็น global variable ตามปกติครับ เช่น แต่ก่อนเราอาจจะเรียกตัวแปร server ที่ชื่อว่า $PHP_SELF ได้เลยโดยอ้าง $PHP_SELF แต่ถ้าเป็น php version 4.2 set register_globals off ต้องอ้างเป็น $_SERVER["PHP_SELF"] ครับ หรือที่มีปัญหากันบ่อยก็เช่น ตัวแปรที่ submit มาจากใน form ก็ต้องอ้างเป็น $_REQUEST["ชื่อตัวแปรที่มาจากใน FORM"] เหมือนกันครับ ซึ่งแต่เดิมเราอาจอ้างชื่อได้เลยโดยตรง ซึ่งถ้าเจออย่างนี้วิธีแก้ง่ายๆ คือ เข้าไปแก้ file php.ini โดยดูตรง register_globals ว่าเป็น off หรือเปล่า ถ้าเป็นให้แก้เป็น on ก็จบครับ แต่ถ้าแก้ไม่ได้ คงต้องเปลี่ยน source code เอาครับ คือบรรทัดไหนที่มีการเรียกตัวแปรพวกนี้ก็ตามไปอ้างให้ถูกให้หมดครับ

    ส่วนที่ทำไม php 4.2 เป็นต้นมาเขาถึงแก้ให้เป็นอย่างนี้ ซึ่งทำให้ยุ่งยากเปล่าๆนี่ ก็มีเหตุผลครับ เนื่องจากเขากังวลเกี่ยวกับเรื่อง security ครับ คือถ้าเป็นแบบเดิมนี่ ใครๆก็สามารถส่งตัวแปรมาที่ script ที่จะ execute ได้เลยครับ ซึ่งอาจจะไปทับกับตัวแปรที่เราต้องใช้งานทำให้ตีความผิดและเผลอๆหากเป็นตัวแ ปรที่เกี่ยวกับการ check security ก็อาจจะเป็น break การทำงานของโปรแกรมได้ครับ ดังนั้นเพื่อเป็นแนวทางในการปฏิบัติที่ดี ควรทำตาม default ใหม่ที่เขา set มาให้ครับ

    ซึ่งประสบการณ์ตรงของผม เคยโดนมาแล้ว สมัยที่ยังวางเครื่องอยู่ที่ ev1servers ซึ่งมีลูกค้าบางราย ใช้ Script โบราณ ต้องตั้ง register_globals=On
    เมื่อใช้งานไปได้ระยะหนึ่ง ก็มี Hacker เข้ามาเจาะที่เวบหนึ่งบนเครื่องเดียวกัน โดยใส่คำสั่ง DoS ไว้ ส่งผลให้เครื่องผมโดน Unplugged ไปโดยทันที

    จึงแนะนำว่า ถ้าเป็นไปได้ น่าจะตั้งค่า register_globals=Off ไว้ก่อน น่าจะมีความปลอดภัยเพิ่มในอีกระดับหนึ่ง

    การตั้งค่า register_globals=Off บน Server Ensim
    ควรทำตั้งแต่เริ่มต้นเลย เพราะ Ensim จะมีระบบ Virtual Private File System ซึ่งในการสร้างเวบไซต์แต่ละครั้ง จะสร้างไฟล์ php.ini ของแต่ละไซต์ขึ้นมาใหม่ด้วย

    คุณสามารถแก้ไขได้โดย

    Root login
    #pico /etc/virtualhosting/templates/apache/etc/php.ini

    หาบรรทัดของ register_globals แล้วแก้จาก On เป็น Off
    กด Control+X
    แล้วกด Enter เพื่อ Save ไฟล์นั้น

    แล้วทำแบบเดียวกันนี้อีกครั้ง
    #pico /etc/php.ini

    เมื่อเสร็จแล้ว ให้ Restart Apache ครับ

    หากลูกค้ามีปัญหา ต้องการใช้ Register_globals=On
    สามารถแก้ไขเฉพาะเวบได้ โดย
    #pico /home/virtual/domain.com/etc/php.ini
    แล้วแก้เป็น On

    หรือให้ลูกค้าแก้โค้ดเอา ชัวร์สุดครับ
    การแก้โค้ดให้ใช้งานกับ php.ini ที่ register_globals=Off
    ข้อมูลจาก http://mcu1.psu.ac.th/

    QUOTE
    ปล่อยให้เป็น register_globals = Off ก็ต้องแก้วิธีการรับข้อมูล เช่น จาก page ที่ 1 ส่งมาเป็น name แบบ post ปกติจะรับโดยใช้ $name แบบนี้จะไม่ได้ ให้แก้ใหม่เป็น รับแบบ $_POST['name'] แทนครับ

    โดยปรกติแล้ว Script ใหม่ๆ จะรองรับการใช้งาน register_globals=Off กันหมดแล้ว ถ้าลูกค้าไม่ยอมแก้ ก็เตรียมรับมือกับ Hacker ได้เลยครับ

    ถ้าข้อมูลผิดพลาด หรือตกหล่น ต้องขออภัยมา ณ ที่นี้ครับ tongue.gif

    10 ways to boost PHP’s speed

    กันยายน 4, 2006 ใส่ความเห็น
    10 ways to boost PHP’s speed [Message #1]

    1.A PHP script will be served at least 5-10 times slower than a static HTML page by Apache. Try to use more static HTML pages and fewer scripts.

    2.Enable the compression of HTML by putting in your php.ini:output_handler = ob_gzhandler

    3.Install a PHP caching suite. I have personally used zend (commercial), turck mmcache, and ioncube, and they all work very well.

    4.Switch from file based sessions to shared memory sessions. Compile PHP with the –with-mm option and set session.save_handler=mm in php.ini. This can drastically improve session management performance.

    5.Another caching technique that can be used when you have pages that don’t change too often is to cache the HTML output of your PHP pages. (a list of template solutions is posted within one of my previous articles).

    6.Use output buffering (See ob_start). This will speed up your PHP code by 5-15% if you frequently print or echo in your code.

    7.On Windows, FastCGI is the highest performance way of running PHP with Apache.

    8.In PHP4, objects and arrays should be passed to functions by reference (with &), and everything else by value. In PHP5, objects are already passed by reference.

    9.Don’t use images when text will do. Reduce your image sizes with a software like MacroMedia Fireworks or imagemagick.

    10.If possible, Run your database server on a different machine. If all static content is served from another server, then you can turn off KeepAlives in httpd.conf to speed up client disconnects.

    http://www.whenpenguinsattack.com/

    Follow

    Get every new post delivered to your Inbox.