natty

Apache + PHP + GD lib + Foxpro + JPGraph

In PHP on September 12, 2008 at 5:37 pm

เริ่ม blog แรกด้วยเรื่องง่ายๆ ที่เกือบจะลืมไปแล้ว แอบทำช้านิดนึงด้วยเพราะว่าลืม และไม่เคยจะจดไว้เลย จดไว้นี่ก่อนแล้วกัน

วันนี้ลง Apache + PHP + GD Lib + Foxpro บน Windows เพราะว่าจะทำกราฟที่ดึงจาก Foxpro โดยใช้ PHP ซึ่งต้องทำงานผ่าน ODBC เลยต้องลงบน Windows

การติดตั้ง Apache + PHP
1. download and install Apache
2. download PHP และแตกไฟล์ลงใน path ที่ต้องการ ตัวนี้เป็น package เพราะเราต้องการตัว php_gd2.dll ด้วย
3. set system path to PHP (ถ้าไม่ set มันจะขึ้นหน้า page เวลาเข้า PHP ว่า You don’t have permission to access /php/php-cgi.exe)
3. เปิดไฟล์ httpd.conf เพื่อตั้งค่าให้ Apache สามารถ compile PHP ได้ โดยเพิ่มบรรทัดต่อไปนี้ลงไป

# ตำแหน่งที่เก็บ PHP Interpreter

ScriptAlias /php/ "c:/Program Files/PHP/"
AddType application/x-httpd-php .php 

#สำหรับ PHP version 5 ใช้ บรรทัดล่างนี้

Action application/x-httpd-php "/php/php-cgi.exe" 

4. ลองสร้างไฟล์ php ขึ้นมา แล้วปรินท์ phpinfo(); restart apache แล้วลองเข้า http://localhost/ชื่อไฟล์.php ถ้ามันแสดง phpinfo ให้ก็แสดงว่าเรา config สำเร็จแล้ว

5. เนื่องจากเราต้องใช้งาน php_gd2.dll ด้วย หากเราดูใน PHP/ext เราจะเห็น php_gd2.dll ซึ่งเราจะสามารถใช้งานได้โดยต้องเข้าไปที่ php.ini (ซึ่งอยู่ใน PHP package แต่เป็นชื่อ php-dist.ini เราต้องเปลี่ยนชื่อให้เป็น php.ini) แล้วเอา ; ออกที่บรรทัดชื่อว่า ;extension=php_gd2.dll

และอย่าลืมแก้ในไฟล์ php.ini ตรง extension_dir ให้ชี้ไปที่ ext เช่น extension_dir = “C:\Program Files\PHP\ext”

แล้วทำการ restart apache ใหม่

ใช้ code ต่อไปนี้เพื่อ test gd สิ่งทีจะได้คือ ข้อความสีชมพูเขียนว่า A simple Text String


$im = @ ImageCreate ( 150, 100)
or die ( “Cannot create a new GD image.”);
$background_color = ImageColorAllocate ($im, 255, 255, 255);
$text_color = ImageColorAllocate ($im, 233, 14, 91);
ImageString ($im, 1, 5, 5, “A Simple Text String”, $text_color );
header (“Content-type: image/png”);
ImagePng ($im); 

และ code ต่อไปนี้เพื่อ test gd2 สิ่งที่จะได้คือ กรอบสีเหลี่ยมสีดำกับขาว

$im =  imagecreatetruecolor ( 300, 200);
$black = imagecolorallocate ($im, 0, 0, 0 );
$white = imagecolorallocate ($im, 255, 255, 255 );

imagefilledrectangle ($im,0, 0,399,99 ,$white);
imagerectangle ($im,20, 20,250,190 ,$black);

header (“Content-type: image/png” );
imagepng ($im);

หากรันไม่ได้ มี error เหมือนกับว่ายังไม่มี jpgraph ให้เข้าไปดูที่ คำสั่ง extension_dir ใน php.ini ว่าชี้ไปยัง path ที่เป็น PHP/ext แล้วหรือยัง

การติดตั้ง jpgraph

jpgraph เป็น graph library ที่ใช้ได้กับ PHP โดยสามารถดาวน์โหลดได้จาก ที่นี่ โดยหากใช้กับ PHP5 ควรดาวน์โหลด version 2.xx แตกไฟล์ลง htdoc

การใช้งาน PHP ร่วมกับ Foxpro

1. set system ODBC (ย้ำ system นะ) โดยเลือก driver เป็น Microsoft Visual Foxpro Driver แล้วใส่ชื่อ datasource name (dsn) ที่ต้องการ เลือก database type เป็น free table และ browse ไปยัง path ที่ DBF ของเราวางอยู่

2. ลอง test ว่า php ของเราสามารถติดต่อกับ dbf ได้หรือยัง โดยใช้ code ต่อไปนี้ ซึ่งจะทำให้แสดงข้อมูลพร้อมหัวคอลัมน์ออกมา

<?php
$id = odbc_connect( “yourdsnname”,”",”");
if ( $id != 0 )   {
echo “DSN qc2004 connected
”;
echo “ID = “, $id, “
”;
$sql = “SELECT * from yourtable”;
$rs = odbc_exec( $id, $sql );
$odbc_result_all($rs);
} else  {
echo “Error connecting to qc2004 webdata”;
}
odbc_close_all();
?>
Advertisements
  1. ลองใช้ PHP chartdirector ช่วยสร้างกราฟดูครับ สอนวิธีติดตั้ง และตัวอย่างการนำไปใช้งานจริง http://faker-programmer.blogspot.com/2009/06/php.html

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: