Cara Deploy Laravel di Shared Hosting

Jika Anda menggunakan Laravel untuk website pribadi, tentu tidak menggunakan dedicated hosting karena biaya yang tinggi. Yang menjadi masalah adalah: Shared hosting tidak mengijinkan Anda mengubah nama dan lokasi folder “public_html” (atau “www” di hosting tertentu), selain itu akses untuk mengubah konfigurasi document root juga tidak disediakan.

Ada 2 alternatif untuk mengatasi permasalahan ini, alternatif pertama paling mudah, namun hanya dapat dilakukan apabila Anda diperbolehkan untuk upload di luar folder “public_html”:

  1. Pertahankan struktur folder di dalam folder project Laravel Anda (sama seperti saat baru dibuat)
  2. Upload semua file di dalam folder project Anda ke server hosting, di luar folder “public_html”
  3. Pindahkan semua isi folder “public” ke dalam “public_html”
  4. Hapus folder “public”, sekarang struktur direktori Anda akan terlihat seperti berikut:Struktur Direktori
  5. Tambahkan kode berikut di “index.php” dalam folder “public_html” untuk menghindari masalah yang diakibatkan mengubah default folder public:
    $app->bind('path.public', function() {
    return __DIR__;
    });

Namun jika Anda tidak memiliki akses untuk upload di luar “public_html”:

  1. Upload folder project Anda (yes, satu folder utuh) ke hosting server, di dalam “public_html”
  2. Keluarkan semua file dari dalam folder “public” sehingga terletak tepat di bawah folder “public_html”
  3. Ubah baris berikut di “index.php”:
    require __DIR__.'/../bootstrap/autoload.php';
    Menjadi:
    require __DIR__.'/bootstrap/autoload.php';
    Dan baris berikut:
    $app = require_once __DIR__.'/../bootstrap/app.php';
    Menjadi:
    $app = require_once __DIR__.'/bootstrap/app.php';
  4. Tambahkan kode berikut di “index.php” untuk menghindari masalah yang diakibatkan mengubah default folder public:
    $app->bind('path.public', function() {
    return __DIR__;
    });

Perlu diingat bahwa alternatif kedua (memasukkan semua isi folder project ke dalam document root) sangat tidak dianjurkan karena mengakibatkan semua file Anda terekspos dan dapat di-download siapapun. Lakukan langkah tersebut hanya jika Anda tidak memiliki file dengan informasi sensitif (password, data transaksi, data konsumen, video dewasa, dll.) tersimpan di dalam folder project Anda.

Tutorial Instalasi Laravel di Windows

Instalasi Laravel PHP Framework di Windows 8 cukup simple, syarat yang dibutuhkan hanya:

  • PHP versi 5.4++
  • Mcrypt (PHP Extension)
  • OpenSSL (PHP Extension)
  • Mbstring (PHP Extension)
  • Tokenizer (PHP Extension)

Bingung? Install saja XAMPP. Semua syarat di atas sudah disediakan oleh Apache HTTP Server yang dapat ditemukan di XAMPP control panel.

Setelah system requirement terpenuhi, kita dapat memulai instalasi Laravel:

  1. Download Composer, pilih Windows installer untuk menghemat umur, install
  2. Buka Command Prompt, jalankan:
    composer global require "laravel/installer=~1.1"
  3. Tambahkan baris berikut pada PATH environment variable (user variable):
    C:/Users/(nama user)/AppData/Roaming/composer/vendor/bin
  4. Navigasikan Command Prompt ke tempat instalasi Laravel yang diinginkan, jika ingin mudah bisa langsung di dalam folder htdocs dalam direktori instalasi XAMPP (supaya setelah install bisa langsung dicoba di web browser 😀 ), contoh:
    C:/XAMPP/htdocs/
  5. Jalankan command berikut, jangan lupa mengganti nama projectnya:
    laravel new namaProject
    Laravel akan secara otomatis membuat folder baru sesuai nama project

Instalasi Laravel sudah selesai, jika Apache Service sudah dijalankan, langsung saja mengintip hasilnya di http://localhost/namaProject/public. Jika instalasi berhasil, akan muncul halaman aneh berisi quote menarik yang berubah-ubah setiap kali di-refresh.

Konfigurasi opsional:

  • Ubah timezone & locale di config/app.php
  • Ubah nama app dengan menjalankan command berikut di direktori instalasi Laravel:
    php artisan app:name namaProjectBaru

Yang perlu diperhatikan:

  • Terkadang mengubah nama app mengakibatkan instalasi Laravel rusak (sorry), silakan mengulang instalasi (dari langkah ke-4), semoga bug ini segera di-fix oleh Laravel
  • Mengubah nama app tidak mengubah nama folder, hanya namespace (sepenuhnya opsional), nama app default ketika instalasi adalah “App”
  • Saat post ini ditulis, versi terbaru Laravel adalah versi 5, versi lain mungkin akan memiliki beberapa perbedaan dalam proses instalasi dan konfigurasi
  • Hasil instalasi ini masih mentah dan belum siap untuk di-deploy ke hosting (security warning), masih banyak konfigurasi yang akan dibahas di post-post selanjutnya, stay tuned!