Solusi “No input file specified.”

Ada satu error yang saya alami saat melakukan proses instalasi stack web server berbasis LEMP (Linux, Nginx, MariaDB, PHP) kemarin. Lebih tepatnya dalam tahap menyambungkan Nginx dengan PHP-FPM. Saat menguji coba script informasi php bukannya tampil malah muncul pesan kesalahan No input file specified. Waduh… 🙁

Ini urusannya disebabkan – pemahaman saya – lokasi file yang diproses oleh CGI dari PHP-FPM (FPM sendiri kepanjangannya adalah FastCGI Process Manager) otomatis diperbaiki dan ini tidak dikenali oleh Nginx. Kadang ini merupakan setting defaultnya.

Jadi solusi pertamanya adalah dengan mengedit konfigurasi PHP:

nano /etc/php.ini

Kemudian cari dan ubah nilainya menjadi 0 (nonaktif) seperti dibawah ini:

; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting
; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting
; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=0

Jika masih gagal diperbaiki dan muncul error yang sama berarti masalahnya ada pada Nginx yang salah membaca lokasi file PHP yang diproses. Anda perlu memodifikasi konfigurasi virtual host Nginx untuk ini:

nano /etc/nginx/conf.d/default.conf

Ini saya mencontohkan untuk konfigurasi default dari virtual host Nginx, silahkan diadaptasikan sesuai kondisi anda.

Kemudian didalamnya cari bagian atau tambahkan kode proses PHP berikut:

location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

Oh ya, jangan lupa untuk merestart proses PHP-FPM atau Nginx setelah anda mengubah konfigurasinya:

service php-fpm restart
service nginx restart

Silahkan anda coba akses lagi script php yang bermasalah tadi. Semestinya akan bisa digunakan dan anda sudah berhasil mengatasi “No input file specified.”.

Semoga bermanfaat. 🙂

Tinggalkan komentar