สร้าง web app อย่างง่ายด้วยภาษาซี C programming , CGI และ IIS 6

พอดีที่ช่วงนี้ผมได้กลับมาเขียนภาษซีอีกครั้งหลังจากที่ไม่ได้จับมานาน เลยอยากจะลองเขียนซีให้ run เป็น web app ได้
เหมือนกับเป็นการย้อนเวลาไปยังช่วงก่อนปี 2000 ก่อนที่จะมี ASP.NET
สำหรับการเขียนซีเป็น web app ในขั้นตอนเขียน C program ก็เขียนแบบปกติ แต่จะมีรายละเอียดมากขึ้นในการปรับแต่งค่าต่างๆ ของ Server เพื่อให้สามารถเปิด C Program ด้วย browser ได้ 
สิ่งที่ผมจะแสดงให้ดูก็คือการเขียน CGI Script ด้วยภาษา C และติดตั้งบน IIS 6
 
เริ่มจากการเขียน Console Application ใน Visual C++ 6
 
สร้าง Console Application ตั้งชื่อว่า 
สร้าง .c file ใหม่ขึ้นมาให้ชื่ือว่า Program.c พิมพ์คำสั่งดังต่อไปนี้ลงไปใน file
 
//Program.c
#include <stdio.h> 
void main() 
{
int i;//variable must be on the first line
printf("Content-Type: text/html\n\n"); //print Content-Type to output html
printf("<html>");//create html document
printf("<head>"); 
printf("<title>C CGI and IIS6</title>"); 
printf("</head>"); //close head tag
printf("<body"); 
printf("<h1>Simple web app with C, CGI and IIS 6</h1>"); 
printf("<hr>"); 
//print Hello World ten times
for (i=0;i<10;i++)
{
   printf("hello world<br />");
}
printf("</body>");//end body tag
printf("</html>"); //end html tag
} 
 
ความหมายของคำสั่งใน main function จะเป็นการแสดงผลข้อความเป็น html document ที่ประกอบด้วย html tag ต่างๆ มีการวน loop เพื่อแสดงผลคำว่า Hello World สิบครั้ง 
จุดสำคัญที่บรรทัดแรกของการแสดงผลต้องมี Content Type :text-html เพื่อเป็นข้อมูลบอก web browser ว่าให้แสดงผลข้อมูลที่ส่งกลับมาจาก serverในรูปแบบของ html
 
ทำการ build  ตรวจสอบความถูกต้อง และทดลอง run program
 
** แนะนำให้ทำการเขียนด้วย program ด้วย Visual C++ เพราะผมได้ทดลองใช้ตัว complier ตัวอื่นเช่น Cygwin 
ที่เป็น gcc compiler บน Windows ปรากฎว่าไม่สามารถเปิด applicationผ่าน browser ได้
 
ขั้นตอนต่อไปจะเป็นการสร้าง web site ใหม่ใน IIS
 
ไปที่ IIS Manager สร้าง Web Site ใหม่ขึ้นมา ในตัวอย่างนี้ผมกำหนด port ให้มีค่าเท่ากับ 8080
เลือก folder ที่จะเป็น root folder ของ web site เอาไว้เก็บ file ต่างๆ ของ web site 
ในตัวอย่างนี้ผมกำหนดเป็น C:\Inetpub\wwwroot\cgi
Allow the following permission ให้เลือก Read , Execute (such as ISAPI application or CGI)
 
 
เพื่อที่จะให้ IIS run application ในรุปแบบ CGI จำเป็นต้องเปิดใช้ All Unknow CGI Extension
ใน IIS Manager คลิก Web Service Extension คลิกขวาเลือก
All Unknown CGI Extensions ใน context menu เลือก Allow 
 
จากนั้นให้ไป copy file LearnCGI.exe เป็นตัว program ที่ได้เขียนด้วยภาษาซีและ Visual C++ ในตอนแรก
มาวางไว้ที่ root folder  ของ web  site ที่เราสร้างขึ้นมา ในตัวอย่างนี้ก็คือ
C:\Inetpub\wwwroot\cgi เปลี่ยนนามสกุลของ file จาก exe เป็น cgi จะได้เป็น LearnCGI.cgi
 
คลิกขวาที่ folder cgi ทำการเพิ่ม permission ให้กับ account ที่ชื่อว่า NETWORK SERVICE เป็นแบบ full control และกำหนด permission นี้ให้กับ folder และ file อื่นๆที่อยู่ภายใน foder นี้ 
 
เปิด web browser 
ที่ address bar พิมพ์ http://localhost:8080/learncgi.cgi
 
web browser ก็จะแสดงผลลัพธ์ตามคำสั่งที่เราได้เขียนไว้ด้วยภาษาซี

ความเห็น

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Friends
jirawat.in.th clipdonjai.com janawat.wordpress.com csharp89.blogspot.com 108blog.net

HTML5 Powered with Multimedia