Thursday, August 30, 2018

Konfigurasi nginx: eksekusi php di userdir

Untuk praktikum Mata Kuliah Pemrograman Client-Server dibutuhkan server yang dapat digunakan untuk menyediakan webservis, dan dipilih instalasi LEMP (nginx, MariaDB dan PHP) di server Centos 7.

Langkah-langkah instalasi:
https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-7

Setelah berhasil instalasi LEMP langkah selanjutnya adalah bagaimana memberi privasi setiap user (mahasiswa) terhadap pekerjaan masing-masing. Untuk itu Nginx perlu dikonfigurasi sehingga dapat mengakses dan mengeksekusi direktori user.

Dari bermacam-macam konfigurasi yang tersedia di internet, konfigurasi berikut ini adalah yang sesuai dengan kebutuhan.

File: /etc/nginx/conf.d/default.conf
server {
    listen       80;
    server_name  172.16.37.17;

    # note that these lines are originally from the "location /" block
#    root   /usr/share/nginx/html;
    set $root_dir /usr/share/nginx/html;
        rewrite ^(/~[^/]+)$ $1/ redirect;
        rewrite ^/~(?[^/]+)(.+) $2;
        if ($user) {
                set $root_dir /home/$user/public_html;
        }

    root $root_dir;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

#    include php5_generic;
   location ~ \.php$ {
        include php5_generic;
    }

}
file /etc/nginx/php5_generic
        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;

Semoga Bermanfaat. Referensi: https://superuser.com/questions/748310/nginx-userdir-php/748669#748669