วิธีแก้ No input file specified with nginx php-fastc and PHP Codeigniter

ปัญหานี้ผมเพิ่งเคยเจอเหมือนกัน หาทางแก่ไขได้ครับ แต่ไม่แน่ใจว่าใช่คำตอบที่ถูกต้องหรือไม่ โดยครั้งแรกลองทำตามคำแนะนำดังนี้

จาก http://blog.martinfjordvald.com/2011/01/no-input-file-specified-with-php-and-nginx/

เขาว่าปัญหานี้เกิดขึ้นกับคนที่ใช้ nginx+PHP. ซึ่งคำแนะนำมีดังนี้

  1. Wrong Path Sent to PHP
  2. Incorrect File Permissions
  3. Using Alias and $document_root
  4. Chrooted Environment
  5. Open Basedir Restriction
  6. SCRIPT_NAME Versus SCRIPT_FILENAME

ลองอ่านดูแล้ว พบว่าส่วนนี้มันเกินขอบเขตของผู้ใช้งานไปมาก และมั่นใจว่าทาง hosting เขาต้องติดตั้งมาดีแล้ว เลยค้นหาคำตอบจากแหล่งอ้างอิงอื่น จนพบว่า nginx มันจะมีปัญหากับ .htaccess ไฟล์บน apache จริง เพราะตัวมันไม่จะไม่อ่าน htaccess (เรื่องทางเทคนิคผมก็ไม่เข้าใจเหมือนกัน) ด้วยเหตุนี้ผมเลยกลับมาเปิดดู htaccess ของผม ว่ามันทำงานอย่างไร

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

ผมเปลี่ยน RewriteRule เป็นแบบนี้ครับ

RewriteRule .* index.php?$0 [PT,L]

มันก็สามารถใช้งานได้เลย แค่เปลี่ยน / เป็น ? เท่านั้น

ดูเพิ่มเติม – http://stackoverflow.com/questions/4967654/get-array-is-empty