Lompat ke konten
Home » Membuat Subdirektori Virtual dan Subdirektori PHP FPM Menggunakan Nginx

Membuat Subdirektori Virtual dan Subdirektori PHP FPM Menggunakan Nginx

Pada dasarnya Nginx memiliki banyak sekali fungsi yang dapat anda gunakan untuk merancang Web Server anda, salah satu fungsi dasar Nginx adalah merancang routing dasar WebServer. Selain menggunakan domain / subdomain untuk masing-masing aplikasi anda, anda juga dapat menggunakan subdirektori pada domain / subdomain anda untuk sub aplikasi anda.

Pada artikel ini kita akan membahas cara menggunakan subdirektori domain untuk aplikasi anda. Tahapan untuk merancang subdirektori ini adalah : Merancang subdirektori PHP FPM, merancang subdirektori virtual. Dan nanti akan saya beri sedikit penjelasan untuk menghindari kesalahan pada saat implementasi hal ini.

1. Merancangan Subdirektori PHP FPM

Subdirektori PHP FPM

Ubah konfigurasi website Nginx anda dengan perintah

nano /etc/nginx/site-available/default

Kemudian masukkan konfigurasi Nginx untuk Subdirektori anda

server {   
    listen 80 default_server;

    ....

    #####################
    # Blog source code
    location /blog {
        alias /var/www/source-code-blog;
        try_files $uri $uri/ @rewriteblog;

        location ~ \.php$ {
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_param SCRIPT_NAME $fastcgi_script_name;
            fastcgi_index index.php;
            fastcgi_pass unix:/run/php-fpm.sock;
        }
    }
    location @rewriteblog {
        rewrite /blog/(.*)$ /blog/index.php?$1 last;
    }
    # End Of : Blog source code
    #####################

    ....

}

Jangan lupa sesuaikan “alias” dan konfigurasi “try_files“. Untuk penjelasan lengkap silahkan lihat pada halaman paling bawah. Lanjutkan langkah selanjutnya untuk membuat subdirektori virtual.

2. Merancangan Subdirektori Virtual

Subdirektori Virtual

Pada tahap ini kita akan membuat Subdirektori Virtual untuk berkas-berkas statik anda. Untuk membuat subdirektori virtual, ubah konfigurasi site Nginx anda dengan

nano /etc/nginx/site-available/default

Kemudian tambahkan konfigurasi Nginx berikut,

server {   
    listen 80 default_server;

    ....

    #####################
    # Files source code
    location ^~ /files/ {
        alias /var/www/files-directory/;
    }
    # End Of : Blog source code
    #####################

    ....

}

Pada konfigurasi berkas statik, anda tidak perlu menambahkan rewrite rule. Karna kita akan mengakses direktori tersebut secara langsung tanpa diproses terlebih dahulu pada PHP FPM. Jangan lupa mengkonfigurasi “alias” dan “location

Penjelasan dan Full Code :

server {   
    listen 80 default_server;

    index index.php index.html;

    #####################
    # Main application
    root /var/www/html;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to index.php
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }
    # End Of : Main application
    #####################

    #####################
    # Blog source code
    location /blog {
        alias /var/www/source-code-blog;
        try_files $uri $uri/ @rewriteblog;

        location ~ \.php$ {
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_param SCRIPT_NAME $fastcgi_script_name;
            fastcgi_index index.php;
            fastcgi_pass unix:/run/php-fpm.sock;
        }
    }
    location @rewriteblog {
        rewrite /blog/(.*)$ /source-code-blog/index.php?$1 last;
    }
    # End Of : Blog source code
    #####################

    #####################
    # Files source code
    location ^~ /files/ {
        alias /var/www/files-directory/;
    }
    # End Of : Blog source code
    #####################

    # Pass the PHP scripts to PHP-FPM listening on php-fpm.sock
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	fastcgi_param SCRIPT_NAME $fastcgi_script_name;
	fastcgi_index index.php;
	include fastcgi_params;
    }

}

Source code di atas dapat sangat berbeda dengan konfigurasi anda. Pastikan anda memahami garis besar penggunaan source code ini. Dan juga pastikan anda tidak typo dalam penggunaanya. Berikut adalah penjelasan dari konfigurasi nginx di atas.

  • Main Application : Konfigurasi utama dari root domain anda.
  • Location : Merupakan lokasi yang diakses oleh pengguna contohnya “/blog” artinya pengguna mengakses “http://domain-anda.com/blog“. Bukan lokasi dari source code anda.
  • Root dan Alias : dua perintah ini memiliki fungsi yang serupa, namun anda harus berhati hati dalam menggunakannya. Karena meskipun serupa, namun akan
    • Root : Menunjukan lokasi utama dari source anda. Jika anda menggunakan “Root” maka “Final Path” dari source anda adalah
      Final Path = Root + Location
    • Alias : Alias juga dapat anda gunakan untuk menunjukan source anda. Namun jika menggunakan alias, anda value dari “Location” akan dihapus pada “Final Path
      Final Path = Alias
  • Try Files : Metode untuk Nginx untuk mencari file yang cocok dengan request dari kiri sampai ke kanan.
  • Rewrite : Proses melakukan rewrite url atau menulis ulang URL agar sesuai dengan path yang anda sesuaikan.

Sekian informasi penggunaan Nginx untuk konfigurasi Sub direktori. Masih banyak fitur Nginx lainnya yang dapat anda eksplore untuk mengembangkan WebServer anda….

Terimakasih…

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.