Nginx dan PHP di Centos 7

M Dedi Rudianto
Biji Inovasi
Published in
2 min readJan 22, 2018

Dahulu kala, konfigurasi Nginx dan PHP di Centos 7 lumayan bikin bingung, sudah install tapi ga bisa jalan. Ternyata memang caranya sih yang salah :D Dari hasil pergulatan mencari2 wangsit di google, akhirnya menemukan cara yang bisa jalan dengan mulus.

  1. Instal paket2 yang dibutuhkan dulu, perintahnya:
    sudo yum install nginx php php-fpm
  2. Edit file /etc/php.ini, cari dan edit baris: ;cgi.fix_pathinfo=1 menjadi cgi.fix_pathinfo=0. Jangan lupa 0-nya dan tanpa titik koma di depan.
  3. Edit file /etc/php-fpm.d/www.conf, kemudian edit2 baris
    a. listen=... menjadi listen = /var/run/php-fpm/php-fpm.sock
    b. ;listen.owner = nobody menjadi listen.owner = nobody
    c. ;listen.goup = nobody menjadi listen.group = nobody
    d. user = apache menjadi user = nginx
    e. group = apache menjadi group = nginx
  4. Jalankan service php-fpm, perintahnya:
    sudo systemctl start php-fpm
  5. Jangan lupa service php-fpm diaktifkan biar selalu on ketika OS hidup
    sudo systemctl enable php-fpm
  6. Langkah selanjutnya adalah konfigurasi nginx biar bisa baca file php. Konfigurasi tiap domain biasanya ada di folder /etc/nginx/conf.d. Jadi misalkan bikin konfigurasi untuk website mbledhak.com maka bisa bikin file di /etc/nginx/conf.d/mbledhak.conf. File yang dibaca adalah file *.conf, selain itu ga dianggap. Contoh konfigurasinya seperti ini:
server {
listen 80;
server_name mbledhak.com www.mbledhak.com;
root /srv/www/mbledhak.com;
location / {
index index.php index.html index.htm;
if (-f $request_filename) {
expires 30d;
break;
}
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php?q=$1 last;
}
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

Tinggal copy paste dan ubah yg perlu aja, misalkan bagian server_name untuk nama domain server yang mau dihandle, dan bagian root untuk lokasi folder di server yang berisi file2 php.

Jangan lupa step terakhir, restart service2 yang diperlukan:
- sudo systemctl restart nginx
- sudo systemctl restart php-fpm

--

--

M Dedi Rudianto
Biji Inovasi

Digital Innovator and Entrepreneur, Founder at Biji Inovasi