Konfigurasi NGIX untuk CodeIgniter & PHP 7 - Nginx (dibaca: engine x) adalah server HTTP dan Proxy open source yang bisa juga berfungsi sebagai proxy IMAP/POP3.
Kode sumber nginx ditulis oleh seorang warga negara Rusia yang bernama Igor Sysoev pada tahun 2002 dan dirilis ke publik pada tahun 2004. Nginx terkenal karena stabil, memiliki tingkat performansi tinggi dan minim mengonsumsi sumber daya.
Nginx juga memiliki fitur seperti reverse proxy multiple protocols (HTTP, Memcached, PHP‑FPM, SCGI, uwsgi), Stream HTTP video (FLV, HDS, HLS, MP4) serta HTTP/2 gateway. Beberapa situs terkenal yang menggunakan Nginx adalah Wordpress, Fastmail, Ohloh, Sourceforge, Github dsb.
Sumber: wikipeda
Pada artikel kali ini saya akan menjelaskan tentang konfigurasi Nginx untuk framework Codeigniter beserta PHP 7.
Pernahkan anda mengalami aplikasi Codeigniter selalu page not found pada web server Nginx, padalah jika menggunakan Apache, baik-baik saja?
Jika pernah, mari simak artikel ini dengan baik ...
Instalasi Nginx Web Server
Oiya sebelum melanjutkan, pada artikel ini saya menggunakan sistem operasi Linux, yakni Ubuntu 16.04 LTS.Langkah pertama yakni menginstal Nginx.
$ sudo apt-get update $ sudo apt-get install nginx
Setelah terinstall, silahkan buka alamat http://localhost atau http://ipaddress anda di browser. Jika menampilkan halaman default Nginx berarti instalasi Nginx berhasil.
Jika belum berhasil, jalankan perintah dibawah ini.
$ sudo systemctl start nginxAgar proses nginx dapat langsung berjalan setelah booting, jalankan perintah berikut.
$ sudo systemctl enable nginx
Konfigurasi PHP Processor (php-fpm)
Pada PHP 7.0, berkas php.ini terletak pada direktori:/etc/php/7.0/fpm/php.iniBelum menginstal php7.0 beserta modulnya? silahkan baca artikel berikut:
Install LAMP (Linux Apache MySQL PHP) pada Ubuntu 16.04Jika sudah, eksekusi perintah dibawah ini:
$ sudo sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/;' /etc/php/7.0/fpm/php.ini $ sudo systemctl restart php7.0-fpm
Konfigurasi Nginx agar dapat memproses berkas PHP
Buka berkas konfigurasi nginx:/etc/nginx/sites-available/default
. Opsional, silahkan backup berkas
default
yang asli:
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bakSekarang edit berkas tersebut:
sudo nano /etc/nginx/sites-available/defaultSilahkan hapus semua kode yang ada pada berkas
default
, lalu copy paste kode berikut ini:
server { # This is a minimum configuration Nginx webserver with PHP 7.0 # Document root: # -------------- root /var/www/html; index index.php index.html index.htm; server_name ip address atau domain; location / { try_files $uri $uri.html $uri/ @extensionless-php; index index.php index.html index.htm; } # nama folder project codeigniter: # sekaligus menghilangkan index.php pada url # ------------------------------------------ location /codeigniter { index index.php index.html index.htm; try_files $uri $uri/ /codeigniter/index.php; } # fastcgi settings PHP 7.0 # ------------------------ location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_intercept_errors on; } # Menghilangkan extension PHP pada URL: # ------------------------------------- location @extensionless-php { rewrite ^(.*)$ $1.php last; } location ~ /\.ht { deny all; } }
Silahkan perhatikan baris kode yang dicetak tebal, sesuaikan dengan nama project dan
dokumen root
server anda.
Jika sudah, silahkan simpan konfigurasi tersebut, dan lakukan testing untuk melihat apakah terjadi error pada konfigurasi nginx.
$ sudo nginx -tJika tidak terjadi error, maka output-nya yaitu seperti dibawah ini:
$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successfulReload konfigurasi nginx dan silahkan lanjutkan development anda!
$ sudo systemctl reload nginx
Happy coding!
Halo, saya sudah melakukan sesuai instruksi tapi ketika saya akses http://localhost/codeigniter browser langsung download file index.php
ReplyDeleteSudah edit berkas /etc/nginx/sites-available/default nya mas?
ReplyDeletecoba dicek kembali stepnya takut ada yg terlewat, jgn lupa di restart/ reload NGINX nya
Itu belum install php7-fpm berarti
ReplyDeletestlh berhasil menjalankan CInya gmn ya?
ReplyDeletecoba localhost/namafilenya ga bs ya