PinkkeyHost
Online Supported
Administrator
Sr. Member
ออฟไลน์
กระทู้: 363
|
|
« เมื่อ: 05 พ.ย. 2006 21:22 » |
|
เวบ Linux โดยทั่วไปจะใช้ PHP แบบ CLI (Apache Handler / mod_php4) สำหรับทาง Pinkkeyhost ใช้ PHP แบบ CGI (suPHP / FastCGI)
ดังนั้นจึงขอแสดงข้อแตกต่างระหว่าง PHP แบบ CGI กับ CLI เพื่อประกอบการใช้งาน
1. Script ทำงานในสิทธิ์ของ user CLI=Apache / CGI=User ดังนั้นในการเปิดอ่านและเขียนไฟล์ต่างๆจึงใช้ permission ที่ต่างกัน CLI - จะใช้ permission ในส่วนของ Group/Other (ที่พบเห็นบ่อยๆว่าตอนติดตั้ง script ต่างๆต้องเข้าไปเปลี่ยน file permission ให้เป็น 777/666) CGI - จะใช้ permission ในส่วนของ Owner (ซึ่งมาตรฐาน Owner จะเป็น 7/6 อยู่แล้ว จึงไม่จำเป็นต้องใช้ 777/666 ใช้แค่ 755/644 ก็พอ)
2. ไฟล์ต่างๆที่สร้างขึ้นใหม่จาก PHP จะมี Owner เป็น CLI=Apache / CGI=User CLI - ดังนั้นไฟล์ต่างๆที่ถูกสร้างขึ้นจาก php จะต้องเขียน code เพื่อเปลี่ยน permission ให้เป็น 777/666 เพื่อให้เราสามารถแก้ไข/ลบไฟล์นั้นได้ภายหลัง CGI - ไฟล์ต่างๆที่ถูกสร้างขึ้นจาก php จะมี Owner เป็นของเราเองเราสามารถแก้ไข/ลบไฟล์นั้นได้ทันที
3. ปัญหาจากการสร้าง Folder ด้วย PHP ในระดับที่ 2 CLI - เนื่องจาก File Owner เป็น Apache ดังนั้นเราจะเสียสิทธิ์ในการจัดการไฟล์ใน Folder ระดับที่ 2 เนื่องจาก Owner ของ Folder ก่อนหน้าไม่ใช่ของเราแต่เป็น Apache CGI - File Owner เป็นของเราเอง จะสร้าง Folder ด้วย PHP กี่ชั้นก็ไม่มีปัญหา
4. ปรับตั้งค่า PHP ผ่าน .htaccess CLI - สามารถควบคุมค่าของ PHP ผ่าน .htaccess ได้ หากไม่มีการบังคับค่าไว้ใน httpd.conf เช่นหากใน httpd.conf ไม่ได้บังคับ php_admin_flag register_globals on|off ไว้ก็จะสามารถใส่ php_flag register_globals on|off ใน .htaccess ได้ CGI - ไม่สามารถควบคุมค่าของ PHP ผ่าน .htaccess หรือ httpd.conf ได้ ต้องกำหนดผ่าน php.ini เท่านั้น เช่น php_flag ต่างๆ, php_value ต่างๆ เช่น register_globals, safe_mode, open_basedir, ... แต่ .htaccess ยังสามารถควบคุมค่าอื่นๆได้ตามปกติเช่น mod_rewrite, password_protect_dir, ...
5. ความเร็วและ Load CLI - ใช้งาน CPU ตามปกติ CGI - ใช้งาน CPU สูงกว่าแบบ CLI 5-15% ส่วนความเร็วในการทำงานเท่าๆกัน
ทั้งนี้ทาง Pinkkeyhost สามารถปรับเลือกการใช้งาน PHP ในโหมด CGI/CLI ให้กับแต่ละ Domain ได้เช่นกัน หากประสงค์จะใช้งานในโหมดปกติแบบ CLI สามารถแจ้งความประสงค์มาได้หลังจากเปิด Account เป็นที่เรียบร้อยแล้วครับ
|