วิธีแก้ 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

ป้ายกำกับ: , , , , ,