Month: January 2013

  • วิธีติดตั้ง Vmware Tool บน Ubuntu สำหรับ Vcenter ESXi 5.1

    ทำไมต้องลง Vmware Tools

    Vmware Tools เปรียบเสมือน การลง driver ที่ทำให้การใช้งานราบรื่นทั้ง GUI และ Network รวมถึงเกี่ยวกับ
    อุปกรณ์ต่าง ๆ เช่น mouse, usb และการแสดงผล โดยที่สำคัญที่สุดคือสามารถใช้งานได้อย่างมีประสิทธิภาพสูงสุด

    วิธีนี้ใช้ได้กับทั้ง vmware server ที่เสียตังค์และฟรีนะครับ แต่วิธีที่ยกมาเป็นแบบที่เสียตังค์แต่สามารถ apply กันได้ครับ โดยทำดังนี้ครับ

    1. Login เข้าเครื่อง ทำการ apt-get update ให้เรียบร้อย

    # apt-get update
    # apt-get upgrade

    (more…)

  • แก้ปัญหา update ubuntu server แล้วแจ้ง error ว่า perl: warning: Setting locale failed.

    update Ubuntu Server แล้วมี error message แจ้งดังนี้

    perl: warning: Setting locale failed.
    perl: warning: Please check that your locale settings:
    LANGUAGE = "en_US:en",
    LC_ALL = (unset),
    LC_TIME = "th_TH.UTF-8",
    LC_MONETARY = "th_TH.UTF-8",
    LC_ADDRESS = "th_TH.UTF-8",
    LC_TELEPHONE = "th_TH.UTF-8",
    LC_NAME = "th_TH.UTF-8",
    LC_MEASUREMENT = "th_TH.UTF-8",
    LC_IDENTIFICATION = "th_TH.UTF-8",
    LC_NUMERIC = "th_TH.UTF-8",
    LC_PAPER = "th_TH.UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
    (more…)

  • Multiple SSL Web Sites On One IP Address

    แก้ให้ apache 2 สามารถให้บริการ ssl-site ได้มากกว่า 1 site บน ubuntu 12.04 ; Apache 2.2.22

    * Server ต้องสามารถให้บริการ https ได้อยู่แล้ว

    1. เพิ่มบรรทัด NameVirtualHost *:443 ลงไปในไฟล์ /etc/apache2/ports.conf
      ตัวอย่าง
      ports.conf

      # /etc/apache2/sites-enabled/000-default
      # This is also true if you have upgraded from before 2.2.9-3 (i.e. from
      # Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
      # README.Debian.gz

      NameVirtualHost *:80
      NameVirtualHost *:443
      Listen 80
      (more…)

  • เทคนิคในการบันทึกความเร็วของ Web Browser มาเก็บไว้ที่ Web Server

    ต่อจาก

    วิธีพัฒนา Squirrelmail Plugin – กรณี pagespeed

    เทคนิคการส่งค่าจาก PHP ให้ JavaScript

    เมื่อรู้ระยะเวลาที่ Web Browser ประมวลผลแล้ว ต่อไปก็ต้องการเก็บข้อมูลต่างๆมาเก็บที่ Web Server เพื่อบันทึกเก็บไว้วิเคราะห์ต่อไป สามารถทำได้โดยการใช้ JavaScript ส่งค่่าผ่าน HTTP GET Method มายัง PHP

    เริ่มจากสร้าง PHP  ให้ชื่อว่า getdata.php สำหรับรับค่าจาก JavaScript ที่ทำงานจาก Web Browser ของผู้ใช้ ดังนี้

    <?php
      $data=$_GET['data'];
      $h = fopen('/var/log/userview.log', 'a');
      fwrite($h, $data . "\n" );
      fclose($h)
    ?>

    สมมุติ เรียกใช้ผ่าน URL ต่อไปนี้

    http://myserver.com/getdata.php?data=xxyyzz

    ก็จะเอาค่า xxyyzz เขียนใส่ไฟล์ /var/log/userview.log และต่อท้ายไปเรื่อยๆ

    ในฝั่งของ JavaScript ให้เขียนโค๊ดดังนี้

    <SCRIPT LANGUAGE="JavaScript">
    var xmlhttp;
    var url;
    var data;
    
    data=servertime + ":" + second + ":" + total ;
    
    url="http://myserver.com/getdata.php?data=" + data;
    
     if (window.XMLHttpRequest)
        xmlhttp = new XMLHttpRequest();
     else
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    
    xmlhttp.open(\'GET\',url, true);
    xmlhttp.send();
    
    </script>

    เท่านี้ก็จะสามารถเก็บค่าต่างๆจาก Web Browser มาไว้ที่ Web Server ได้

  • เทคนิคการส่งค่าจาก PHP ให้ JavaScript

    ต่อจากตอนที่แล้ว “วิธีพัฒนา Squirrelmail Plugin – กรณี pagespeed

    จากการพัฒนา pagespeed plugin สำหรับ Squirrelmail เพื่อแสดงให้ผู้ใช้เห็นถึง “ความเร็ว” ในการประมวลผลจากฝั่ง server ได้แล้ว

    ต่อไปเราต้องการเอาดูว่า  “ความเร็ว” ในการเดินทางและแสดงผลบน Web Browser ของผู้ใช้ เป็นเท่าไหร่
    ทำได้โดยการใช้งาน JavaScript จับเวลาการทำงาน

    โดยเขียนโค๊ดต่อไปนี้ ใน ฟังก์ชั่น pagespeed_top

    echo ' <SCRIPT LANGUAGE="JavaScript">
     beforeload = (new Date()).getTime();
     </script>
     ';

    และส่วนนี้ไปในฟังก์ชั่น pagespeed_bottom

    echo ' <SCRIPT LANGUAGE="JavaScript">
     afterload = (new Date()).getTime();
     seconds = (afterload-beforeload)/1000;
     document.write("Browser Speed: " + seconds + " s");
    </script>
    ';

    เท่านี้ก็จะทราบระยะเวลาในการเดินทางและแสดงผลเสร็จบน Web Browser แล้วแสดงผลต่อผู้ใช้

    ต่อไปหากต้องการ รวมเวลาทั้งสิ้นที่ผู้ใช้ต้องรอ ตั้งแต่การทำงานที่ Squirrelmail จนกระทั้ง แสดงผลเสร็จ
    ก็ต้องเอาค่าตัวแปรจาก PHP ที่ชื่อว่า $showtime มาบวกกับตัวแปรของ JavaScript ที่ชื่อว่า seconds

    จะส่งค่าจาก PHP ให้ JavaScript อย่างไร ???

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

    echo ' <SCRIPT LANGUAGE="JavaScript">
       servertime = ' . $showtime . ';</SCRIPT>'  ;

    แล้วปรับแต่งโค๊ดใน pagespeed_bottom ข้างต้นเป็น

    echo ' <SCRIPT LANGUAGE="JavaScript">
       servertime = ' . $showtime . ';</SCRIPT>'  ;
    
    echo ' <SCRIPT LANGUAGE="JavaScript"> 
    afterload = (new Date()).getTime(); 
    seconds = (afterload-beforeload)/1000; 
    document.write("Browser Speed: " + seconds + " s"); 
    
    total=servertime + seconds;
    
    document.write("Total:" + total + " s");
    </script> ';

    เป็นตัวอย่างเทคนิคในการส่งค่าระหว่างการคำนวนของ PHP และ JavaScript เบื้องต้น

    ติดตามต่อไปในเรื่องของ “เทคนิคในการบันทึกความเร็วของ Web Browser มาเก็บไว้ที่ Web Server”

  • การสร้าง Windows Cluster

    วิธีการติดตั้ง Windows HPC Cluster

    โดยใช้ Windows HPC Server 2008 R2

    1. Hardware ที่ใช้ในการติดตั้ง

    สำหรับ hardware ที่ใช้ในการทำ Windows Hpc Cluster มีดังนี้ pc จำนวน 2 เครื่อง โดย pc เครื่องหนึ่งต้องมี Network Interface Card จำนวน 2 card จำลองเป็นเครื่อง frontend ส่วนอีกเครื่องเป็นเครื่องสำหรับการ compute มี Network Interface Card 1 card และมี switch  1 ตัว

    2. ติดตั้งซอฟต์แวร์บน Head Node (Frontend) สำหรับ Windows HPC Cluster

    การติดตั้งซอฟต์แวร์ที่จำเป็นสำหรับ Head Node ของ Windows HPC Cluster ประกอบด้วย การติดตั้งWindows Server 2008 R2, Active Directory Domain Services, และ Microsoft HPC Pack 2008 R2

    2.1 การติดตั้ง windows server 2008 R2

    การติดตั้ง Windows Server 2008 R2 บน Head Node ของ Windows HPC Cluster ในที่นี้ได้เลือกการติดตั้ง Windows Server 2008 R2 บน Head Node โดยใช้ Enterprise Edition ซึ่งทำการติดตั้งแบบ Full Installation และได้แบ่ง Disk Partition 2 Partition คือ Partition C: สำหรับติดตั้ง Windows Server 2008 R2 กับ Partition D: สำหรับใช้แชร์ข้อมูลให้กับเครื่องอื่นๆ บน Windows HPC Cluster

    หลังจากการติดตั้ง Windows Server 2008 R2 บน Head Node เสร็จสิ้น ให้ตั้งค่าของ WindowsServer 2008 R2 บน Head Node ดังนี้

    1. Full computer name โดยเข้าไปที่ Start -> Control Panel -> System and Security -> System ในหัวข้อ Computer name, domain, and workgroup settings กดเลือก Change settings ปรากฏหน้าต่าง System Properties ในหัวข้อ Computer Name กดปุ่ม Change โดยตัวอย่างของ Fullcomputer name เช่น headnode เป็นต้น

    2. Configure Network โดยเข้าไปที่ Start -> Control Panel -> Network and Internet -> Networkand Sharing Center -> Change adapter settings ในที่นี้ กำหนดให้ Head Node มี 2 Networkadapter สำหรับ Public Network และ Private Network โดยให้ทำการคอนฟิกส์รายละเอียดของทั้งPublic และ Private Network ในส่วนของ IP, Subnet mask, Gateway, และ DNS server (ในส่วนของ Private Network อาจระบุเพียง IP และ Subnet mask)

    3. Activate Windows

    4. Set Date and Time โดยเข้าไปที่ Start -> Control Panel -> Clock, Language, and Region ในหัวข้อ Date and Time ให้เซ็ต time and date และ time zone

    5. Turn On Windows Automatically Update โดยเข้าไปที่ Start -> Control Panel -> System andSecurity -> Windows Update แล้วกดปุ่ม Turn On Windows Update

    6. Install/Update Drivers แนะนำว่า ควรติดตั้ง/อัพเดท Driver สำหรับ Hardware ต่างๆ ให้เป็นเวอร์ชั่นล่าสุด และตรงกับระบบปฏิบัติการที่ใช้ โดยเฉพาะ Driver ในส่วนของ Network Card

    2.2 ติดตั้ง Active Directory Domain Services

    การติดตั้ง Active Directory Domain Services (เป็น Server Roles ตัวหนึ่ง) บน Head Node และเป็นการตั้งค่าให้ Head Node เป็น Active Directory Domain Controller พร้อมทั้งสร้าง Domain ที่ใช้สำหรับการทำงานในส่วนของ Windows HPC Cluster โดยเฉพาะ โดยมีขั้นตอนดังนี้

    1. เปิด Server Manager โดยเข้าไปที่ Start -> Administrative Tools -> Server Manager ให้เลือกRoles -> Add Roles แล้วกด Next

    2. เลือก Active Directory Domain Services แล้วกด Next และ Next และ Install (ขั้นตอนที่ 1 และ 2 นี้จะเป็นการติดตั้ง AD DS binary)

    3. หลังจากการติดตั้ง AD DS binary เสร็จสิ้น ให้ทำการรัน AD DS Installation Wizard โดย Start ->Run แล้วระบุคำสั่ง dcpromo เพื่อทำการเซ็ตให้ Head Node เป็น Active Directory Domain Controller พร้อมทั้งสร้าง Domain ที่ใช้สำหรับการทำงานในส่วนของ Windows HPC Cluster โดยเฉพาะ โดยมีขั้นตอนดังนี้

    3.1 เมื่อปรากฏ “AD DS Installation” wizard ให้กด Next (ไม่ใช้ Use advanced mode installation)

    3.2 ในหัวข้อ “Choose a Deployment Configuration” ให้เลือก “Create a new domain in a new forest” (เป็นการระบุว่า จะมีการสร้าง Domain ใหม่ และเครื่องที่รันนี้ จะเป็น Domain Controller) แล้วกด Next

    3.3 ระบุ “fully qualified domain name (FQDN)” (ของ Domain ที่ต้องการสร้างใหม่ (จากที่ระบุในข้อ 3.2) ซึ่งในที่นี้ คือ Domain สำหรับการทำงานในส่วนของ Windows HPC Cluster) แล้วกด Next ตัวอย่างเช่น winhpc.myorg.org เป็นต้น โดย FQDN นั้น ถือว่าเป็น ชื่อของ Domainซึ่งทำให้สามารถแยก Domain ต่างๆ ออกจากกัน และเมื่อมีเครื่อง Join เข้ามาสู่ Domain นั้นFull computer name ของเครื่องนั้น (ซึ่งจะปรากฏให้เห็นบน Domain) จะถูกระบุเป็น[Traditional Full computer name].[FQDN] เช่น headnode.winhpc.myorg.org เป็นต้น

    3.4 ระบุ “Forest functional level” เป็น Windows Server 2008 R2 แล้วกด Next

    3.5 ในหัวข้อ “Additional Domain Controller Options” ที่ปรากฏ จะมีการเลือก DNS Serverเพิ่มเติม สำหรับการติดตั้งไว้ให้อยู่แล้ว ก็ให้กด Next ต่อไปได้เลย (เมื่อปรากฏคำถามให้ตอบ yes)3.6 ในหัวข้อ “Location for Database, Log files, and SYSVOL” ให้ระบุตาม Defaults ที่ปรากฏคือ Database กับ Log files folder คือ C:\Windows\NTDS และ SYSVOL folder คือC:\Windows\SYSVOL

    3.7 ระบุ “Directory Services Restore Mode Administrator Password” (ใช้เมื่อ “This domain controller is started in Directory Services Restore Mode”) แล้วกด Next

    3.8 ปรากฏ “Summary” ให้กด Next เมื่อการดำเนินการเสร็จสิ้น ให้กด Finish แล้วทำการ Restart

    (more…)

  • Warning :: spam-20130109

    พบจดหมายหลอกลวง มีเนื้อความประมาณนี้ (แค่นี้จริงๆ — ไม่จำเป็น อย่าได้ตาม link ไปนะครับ)

    http://www.hfh-schule.de/images/perfsedit.php

    เมื่อคลิกแล้ว (ไม่แนะนำให้ทุกท่านทำเช่นนี้ แต่ผมขอทดลองให้ดูเป็นตัวอย่าง) มันจะ detect ว่าเราอยู่ที่ใดในโลก ในตัวอย่างนี้ มันพบว่า IP Address ของผมอยู่ที่ Songkhla

    ก็จะไปยัง website ชื่อ http://workfromyourhome5.com/

    ซึ่งมันจะทำเป็น Phishing Site หน้าตาเหมือนของ CNBC เป๊ะ ดังนี้


    แต่ถ้าสังเกตดีๆ จะเห็นวันที่ update ข่าวนี้เป็น

    Published: Monday, 30 April 2012 | 7:48 AM ET

    แล้วทุก link ในหน้านี้ จะชี้ไปที่

    http://workfromyourhome5.com/go.php

    ซึ่งจะส่งไปยังหน้า page ที่จะหลอกเอาข้อมูลส่วนตัวเราไปครับ ดังนี้

    จึงเรียนมาเพื่อให้ระมัดระวังกันมากๆครับ

  • วิธีพัฒนา Squirrelmail Plugin – กรณี pagespeed

    Squirrelmail เป็น IMAP Client Webmail แบบมาตราฐาน ทำงานบน PHP ซึ่งติดตั้งง่าย ใช้งานได้รวดเร็ว ไม่ต้องกังวลเรื่องความเข้ากันได้กับ Web Browser ของผู้ใช้หลากหลาย เพราะไม่ค่อยมีการใช้งานพวก JavaScript

    มีความง่ายในการต่อขยายความสามารถ โดยผู้พัฒนาเปิดให้เขียน Plugin ได้ง่าย โดยไม่ต้องแก้ไข Code ของระบบโดยตรง ด้วยวิธีการเสียบ Code ผ่านจุดที่กำหนด ที่เรียกว่า “Hook” ทำให้ Plugin ที่เขียนขึ้น สามารถใช้งานต่อไปได้ แม้มีการปรับรุ่นของ Squirrelmail ต่อไป

    ตัวอย่างการเขียน Squirrelmail Plugin เพื่อแสดงความเร็วในการประมวลผลในแต่ละส่วนของ Squirrelmail
    ใช้ชื่อว่า pagespeed (ทำงานบน Squirrelmail 1.4.x)

    1. สร้าง folder ชื่อ pagespeed
    2. สร้างไฟล์ index.php เอาไว้เฉยๆ
    3. สร้างไฟล์ setup.php , ต่อไปนี้ จะกล่าวถึงการเขียนโค๊ตในไฟล์นี้
    4. สร้าง function แรกที่จะเสียบเข้ากับ Hook ต่างๆ ชื่อว่า squirrelmail_plugin_init_pagespeed
      $starttime=0;
      
      function squirrelmail_plugin_init_pagespeed() {
          global $squirrelmail_plugin_hooks;
         // Code Go Here
      }

      ชื่อฟังกชั่นต้องเป็น squirrelmail_plug_init_xxx() โดยที่ xxx ต้องตรงกับชื่อ folder ในที่นี้คือ pagespeed

    5. ต่อไป บอกให้ Squirrelmail รู้ว่า เราจะเสียบฟังก์ชั่น “pagespeed_top” และ “pagespeed_bottom” ที่่จะเขียนต่อไป ไว้ที่ Hook ใดบ้าง ในที่นี้ จะเสียบไว้ที่หน้า Login บริเวณ Hook ชื่อว่า login_top และ login_bottom, จะเขียนโค๊ดดังนี้ใน function squirrelmail_plugin_init_pagespeed ดังนี้
      $squirrelmail_plugin_hooks['login_top']['pagespeed'] = 'pagespeed_top';
      $squirrelmail_plugin_hooks['login_bottom']['pagespeed'] = 'pagespeed_bottom';

      รูปแบบการเขียนคือ
      $squirrelmail_plugin_hooks[‘ตำแหน่งที่จะเสียบ’][‘ชื่อ plugin’] = ‘ชื่อฟังก์ชั่น’;

    6. ต่อไปมาเขียนรายละเอียดของฟังก์ขั่น pagespeed_top และ pagespeed_bottompagespeed_top ทำหน้าที่ดูเวลาเริ่มต้น มีรายละเอียดดังนี้
      function pagespeed_top() {
         global $starttime;
      
         $gentime = microtime();
         $gentime = explode(' ',$gentime);
         $gentime = $gentime[1] + $gentime[0];
      
         $starttime=$gentime;
      }

      ส่วน pagespeed_bottom ทำหน้าที่ ดูเวลาสิ้นสุด แล้วคำนวนเวลาที่ใช้ไป
      จากนั้น ก็แสดงผลการคำนวนได้

      function pagespeed_bottom() {
         global $starttime;
      
         $gentime = microtime();
         $gentime = explode(' ',$gentime);
         $gentime = $gentime[1] + $gentime[0];
         $pg_end = $gentime;
         $totaltime = ($pg_end - $starttime);
         $showtime = number_format($totaltime, 4, '.' , '');
      
         echo 'Speed: ' . $showtime . ' s' ;
      }

    เท่านี้ก็ได้ plugin แล้ว ต่อไปก็เอาไปติดตั้งได้

    หากต้องการวัดความเร็วในหน้าอื่นๆ เช่น ในส่วนของ right_main (ส่วนแสดงรายการ email ที่อยู่ใน mailbox) ก็สามารถเพิ่มเข้าไปในฟังก์ชั่น squirrelmail_plugin_init_pagespeed ดังนี้

    $squirrelmail_plugin_hooks['right_main_after_header']['pagespeed'] = 'pagespeed_top';
    $squirrelmail_plugin_hooks['right_main_bottom']['pagespeed'] = 'pagespeed_bottom';

    รายละเอียดเกี่ยวกับตำแหน่งของ Hook ดูได้ที่นี่ http://squirrelmail.org/docs/devel/devel-4.html#ss4.4

  • rocks cluster mamba 6.0

    เป็นขั้นตอนการสร้าง Rocks cluster mamba 6.0 สำหรับ mamba 6.0 เป็นชื่อ version ครับ เราสามารถไปdownload ได้ที่ http://www.rocksclusters.org

    Hardware ที่ใช้ดังนี้ pc จำนวน 2 เครื่อง(พอดีใช้pcในการจำลองนะครับ) โดย pc เครื่องหนึ่งต้องมี Network Interface Card จำนวน 2 card จำลองเป็นเครื่อง frontend ส่วนอีกเครื่องเป็นเครื่องสำหรับการ compute มี Network Interface Card 1 card (เครื่องcomputeมีได้หลายเครื่อง) และมี switch  1 ตัว

     

    1.ใส่แผ่น Rocks cluster ที่ดาวโหลดไว้จากนั้นให้บูทจากแผ่นจะพบกับหน้าต่างการติดตั้งให้พิมพ์   “build”  เพื่อทำการติดตั้ง

    2.รอสักครู่ระบบกำลังทำการติดตั้ง

    3.จะปรากฎหน้าต่างดังรูป ให้เลือก CD/DVD-based Roll

    4.เลือก Roll ที่ต้องการติดตั้ง ในที่นี้เลือกทุก Roll กด Submit

    5.ก็จะแสดง Roll ที่ทำการเลือกไว้ ให้ทำการตั้งชื่อ Hostname ตามที่ต้องการ แล้วกด Next

    6.กรอกข้อมูลรายละเอียดต่างๆของ Rocks Cluster ที่ต้องการสร้าง

    7.ระบุหมายเลข IP สำหรับการเชื่อมต่อออก Public กด Next

    8.ระบุหมายเลข IP สำหรับการเชื่อมต่อภายใน Private กด Next

    9.ระบุ gateway และ DNS Servers กด Next

    10.ระบุ Password ของ root  กด Next

    11.ระบุ TimeZone กด Next

    12.เลือกการแบ่ง Partition โดยมีให้เลือกแบบ auto และ manual

    13.จากนั้นจะเริ่มทำการติดตั้งโดยความเร็วในการติดตั้งจะขึ้นอยู่กับความสามารถของ Hardware ด้วย

    14.หลังจากติดตั้งเรียบร้อยจะทำการ restart

    (more…)