ปัญหานี้ผมเพิ่งเคยเจอเหมือนกัน หาทางแก่ไขได้ครับ แต่ไม่แน่ใจว่าใช่คำตอบที่ถูกต้องหรือไม่ โดยครั้งแรกลองทำตามคำแนะนำดังนี้
จาก http://blog.martinfjordvald.com/2011/01/no-input-file-specified-with-php-and-nginx/
เขาว่าปัญหานี้เกิดขึ้นกับคนที่ใช้ nginx+PHP. ซึ่งคำแนะนำมีดังนี้
- Wrong Path Sent to PHP
- Incorrect File Permissions
- Using Alias and $document_root
- Chrooted Environment
- Open Basedir Restriction
- 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