9.75 เปิดบริการ SSI (Server Side Include)
: บริการนี้ทำให้การเขียน CGI มีสีสรรขึ้นอีกมาก และเพิ่มลูกเล่นให้กับเว็บได้อีกเพียบ
SSI คือการทำให้สามารถเรียก CGI เช่น perl เข้าไปประมวลผลในเว็บ htm โดยทำการประมวลผล แล้วส่งค่าเข้าคืนให้กับผู้เรียกเว็บ การทำงานลักษณะนี้ จะเป็นการ run program ที่ server แล้วส่งผลให้กับผู้ร้องขอเช่นตัวอย่างข้างล่างนี้
ผลของการเปิดเว็บ test.htm จะแสดงตัวอักษร x บนจอภาพ ซึ่งเกิดจากบริการ ssi นั่นเอง แต่ถ้า server ไม่บริการ ssi บรรทัดคำสั่งก็จะแสดงผลอย่างนั้น แต่จะไม่เห็นผลอะไรบนจอภาพเลย เนื่องจากคำสั่งดังกล่างไม่ได้ถูกประมวลผล ตามหน้าที่ของ ssi
ถ้า SSI work นะครับ เวลาเปิด test.htm จะเห็น x ตัวเดียว เรียกว่า ssi สมบูรณ์ หรือเปิดเว็บ pro.pl แล้วต้องเห็น x ตัวเดียวเช่นกัน แต่ถ้าเปิดแล้วเห็น source code แสดงว่าไม่มีการประมวลผล .pl นั้น
สมมุติให้ test.htm เขียนดังข้างล่างนี้
<body>
<!--#exec cgi="pro.pl"-->
</body>
สมมุติให้ pro.pl เขียนดังข้างล่างนี้
#!/usr/bin/perl
print "Content-type:text/html\n\n";
print "x";
การทำให้ Linux (RH 8.0)ให้บริการ SSI
บริการนี้มีอยู่แล้วไม่ต้องลงโปรแกรมเพิ่ม เพียงแต่แก้ไขข้อกำหนดในแฟ้ม /etc/httpd/conf/httpd.conf เท่านั้น โดยผมได้ดูตัวอย่างพร้อมคำอธิบายจาก http://www.c2.net/support/sh3/admin_guide/chapter7.fm.html ซึ่ง Search เจอจาก redhat.com
# <Directory "/var/www/html"> ของเดิม
# Options Indexes FollowSymLinks ของเดิม
<Directory "/home/httpd/html">
Options All
# AddHandler cgi-script .cgi ของเดิม
AddHandler cgi-script .cgi .pl
# AddType text/html .shtml ของเดิม
# AddHandler server-parsed .shtml ของเดิม
AddType text/html .shtml .htm .html
AddHandler server-parsed .shtml .htm .html
จากการ set up ครั้งนี้ทำให้การประมวลผล Perl ที่ต้อง Run จากห้อง cgi-bin เช่น http://www.isinthai.com/cgi-bin/thaiall/test.pl มาเป็น http://www.isinthai.com/thaiall/test.pl ทำให้สะดวกขึ้นมาก และที่ผมพบวิธีการ setup SSI ในครั้งนี้ต้องยกความดีความชอบให้ Redhat.com เพราะเขาเขียนอธิบายไว้พอเข้าใจ รู้สึกว่าเข้าที่นี่แล้วหาอะไร ก็เจอไปหมดครับ
|