Nginx dan PHP di Centos 7
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.
- Instal paket2 yang dibutuhkan dulu, perintahnya:
sudo yum install nginx php php-fpm
- Edit file /etc/php.ini, cari dan edit baris:
;cgi.fix_pathinfo=1
menjadicgi.fix_pathinfo=0
. Jangan lupa 0-nya dan tanpa titik koma di depan. - Edit file /etc/php-fpm.d/www.conf, kemudian edit2 baris
a.listen=...
menjadilisten = /var/run/php-fpm/php-fpm.sock
b.;listen.owner = nobody
menjadilisten.owner = nobody
c.;listen.goup = nobody
menjadilisten.group = nobody
d.user = apache
menjadiuser = nginx
e.group = apache
menjadigroup = nginx
- Jalankan service php-fpm, perintahnya:
sudo systemctl start php-fpm
- Jangan lupa service php-fpm diaktifkan biar selalu on ketika OS hidup
sudo systemctl enable php-fpm
- 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