Cara Deploy Aplikasi Laravel ke Hosting Share Hosting: Panduan Lengkap

Anda telah berhasil membangun aplikasi Laravel yang hebat. Selamat! Tapi, aplikasi keren itu tidak akan berguna jika hanya berdiam diri di komputer Anda. Langkah selanjutnya adalah deploy aplikasi tersebut agar bisa diakses oleh semua orang di internet. Nah, dalam panduan lengkap ini, kita akan membahas cara deploy aplikasi Laravel ke hosting share hosting secara detail. Jangan khawatir, prosesnya tidak sesulit yang Anda bayangkan. Mari kita mulai!

Daftar Isi

  • Pendahuluan: Mengapa Deploy Laravel ke Share Hosting?
  • Persiapan Deploy: Hal-Hal yang Perlu Anda Siapkan
  • Langkah 1: Konfigurasi Aplikasi Laravel untuk Deployment
  • Langkah 2: Upload File Aplikasi Laravel ke Server Hosting
  • Langkah 3: Konfigurasi Database di Hosting Share Hosting
  • Langkah 4: Mengatur Direktori Public dan File .htaccess
  • Langkah 5: Update Path di File index.php
  • Langkah 6: Mengatur Environment Variables (.env) di Share Hosting
  • Tips Tambahan: Mengatasi Masalah Umum Saat Deploy Laravel
  • Keamanan: Tips Mengamankan Aplikasi Laravel Anda di Share Hosting
  • Alternatif Hosting: Kapan Harus Beralih dari Share Hosting?
  • Kesimpulan: Aplikasi Laravel Anda Siap Online!

Pendahuluan: Mengapa Deploy Laravel ke Share Hosting?

Sebelum kita masuk ke detail teknis, mari kita pahami dulu mengapa share hosting (hosting berbagi) menjadi pilihan populer untuk deploy aplikasi Laravel.

Share hosting adalah layanan hosting di mana beberapa website berbagi sumber daya server yang sama. Artinya, Anda berbagi CPU, RAM, dan ruang penyimpanan dengan website lain. Keuntungan utamanya adalah biaya yang lebih terjangkau dibandingkan dengan jenis hosting lainnya seperti VPS atau dedicated server. Ini sangat ideal untuk proyek-proyek kecil hingga menengah, atau bagi Anda yang baru memulai dan ingin menghemat biaya.

Namun, share hosting juga memiliki keterbatasan. Sumber daya yang tersedia terbatas dan performa aplikasi Anda bisa terpengaruh jika website lain di server yang sama menggunakan terlalu banyak sumber daya. Meskipun demikian, untuk banyak kasus, share hosting sudah cukup memadai untuk menjalankan aplikasi Laravel Anda dengan baik.

Jadi, jika Anda mencari solusi hosting yang terjangkau dan mudah dikelola, share hosting adalah pilihan yang baik. Sekarang, mari kita lanjutkan ke persiapan sebelum deploy.

Persiapan Deploy: Hal-Hal yang Perlu Anda Siapkan

Sebelum memulai proses deploy aplikasi Laravel ke hosting share hosting, ada beberapa hal yang perlu Anda persiapkan agar semuanya berjalan lancar:

  • Akses ke cPanel atau Control Panel Hosting Lainnya: Ini adalah antarmuka web yang disediakan oleh penyedia hosting Anda untuk mengelola website Anda. Anda akan membutuhkannya untuk meng-upload file, membuat database, dan mengkonfigurasi pengaturan lainnya. Pastikan Anda memiliki username dan password yang benar.

  • Akses FTP atau File Manager: FTP (File Transfer Protocol) atau File Manager adalah cara untuk mengunggah file dari komputer Anda ke server hosting. Biasanya, share hosting menyediakan keduanya. Jika Anda menggunakan FTP, Anda memerlukan program seperti FileZilla atau Cyberduck.

  • Aplikasi Laravel Anda: Tentu saja! Pastikan aplikasi Laravel Anda sudah siap untuk di-deploy. Ini berarti semua bug sudah diperbaiki, database sudah dikonfigurasi dengan benar di lingkungan development, dan Anda sudah menjalankan composer install untuk menginstal semua dependencies.

  • Database MySQL: Catat nama database, username, dan password database yang akan Anda gunakan. Anda akan membutuhkannya untuk mengkonfigurasi koneksi database di aplikasi Laravel Anda. Anda bisa membuat database baru melalui cPanel.

  • File .env: File ini berisi konfigurasi penting untuk aplikasi Laravel Anda, seperti koneksi database, API keys, dan pengaturan lainnya. Pastikan file ini ada di direktori utama aplikasi Laravel Anda.

Setelah semua persiapan selesai, Anda siap untuk melangkah ke langkah berikutnya.

Langkah 1: Konfigurasi Aplikasi Laravel untuk Deployment

Sebelum meng-upload aplikasi Laravel Anda ke server, ada beberapa konfigurasi yang perlu Anda lakukan agar aplikasi berjalan dengan baik di lingkungan hosting.

  1. Ubah Nilai APP_ENV menjadi production: Buka file .env Anda dan ubah nilai APP_ENV dari local menjadi production. Ini penting karena Laravel akan menggunakan konfigurasi yang berbeda untuk lingkungan production, seperti menonaktifkan debugging dan caching.

    APP_ENV=production
  2. Generate Application Key: Jika Anda belum pernah melakukan ini sebelumnya, jalankan perintah berikut di terminal:

    php artisan key:generate

    Perintah ini akan menghasilkan unique application key dan menyimpannya di file .env. Key ini digunakan untuk enkripsi dan dekripsi data sensitif.

  3. Konfigurasi Database: Pastikan konfigurasi database di file .env sesuai dengan database yang akan Anda gunakan di server hosting. Ganti nilai-nilai berikut:

    DB_CONNECTION=mysql
    DB_HOST=localhost  # Biasanya localhost, tapi periksa dokumentasi hosting Anda
    DB_PORT=3306      # Port default MySQL
    DB_DATABASE=nama_database_anda
    DB_USERNAME=username_database_anda
    DB_PASSWORD=password_database_anda
  4. Konfigurasi URL Aplikasi: Atur nilai APP_URL di file .env dengan URL domain Anda (misalnya, https://www.domainanda.com).

    APP_URL=https://www.domainanda.com
  5. Compile Assets (Optional): Jika aplikasi Anda menggunakan Laravel Mix untuk mengelola assets (CSS, JavaScript), jalankan perintah berikut untuk meng-compile assets untuk lingkungan production:

    npm run production

    Ini akan menghasilkan file CSS dan JavaScript yang di-minify dan dioptimalkan untuk performa.

Dengan konfigurasi yang benar, aplikasi Laravel Anda akan siap untuk di-deploy ke hosting share hosting.

Langkah 2: Upload File Aplikasi Laravel ke Server Hosting

Setelah aplikasi Laravel Anda dikonfigurasi, langkah selanjutnya adalah meng-upload semua file dan folder ke server hosting. Anda dapat melakukan ini menggunakan FTP atau File Manager yang disediakan oleh cPanel.

  1. Login ke cPanel: Buka browser Anda dan masukkan URL cPanel Anda (biasanya domainanda.com/cpanel). Masukkan username dan password Anda.

  2. Buka File Manager atau Konfigurasi FTP: Di cPanel, cari ikon “File Manager” atau “FTP Accounts”. Jika Anda menggunakan FTP, konfigurasikan akun FTP terlebih dahulu. Jika Anda menggunakan File Manager, lewati langkah ini.

  3. Akses Direktori public_html atau Direktori Domain Anda: Di File Manager atau FTP, cari direktori public_html. Direktori ini adalah root directory untuk website Anda. Jika Anda memiliki domain tambahan, Anda mungkin perlu meng-upload file ke direktori yang sesuai dengan domain tersebut.

  4. Upload File Aplikasi Laravel: Pilih semua file dan folder dari direktori aplikasi Laravel Anda (kecuali folder public). Upload semua file dan folder ini ke direktori public_html atau direktori domain Anda. Pastikan file .env juga ikut di-upload.

    Penting: Jangan meng-upload folder public langsung ke public_html. Isinya akan kita pindahkan nanti.

  5. Upload Isi Folder public ke public_html: Buka folder public di direktori lokal aplikasi Laravel Anda. Pilih semua file dan folder di dalam folder public (termasuk index.php dan .htaccess) dan upload ke direktori public_html di server.

Setelah proses upload selesai, semua file aplikasi Laravel Anda seharusnya sudah berada di server hosting. Selanjutnya, kita akan mengkonfigurasi database.

Langkah 3: Konfigurasi Database di Hosting Share Hosting

Setelah file aplikasi di-upload, Anda perlu mengkonfigurasi database agar aplikasi Laravel Anda dapat terhubung dan menyimpan data.

  1. Buka MySQL Databases di cPanel: Di cPanel, cari ikon “MySQL Databases” dan klik.

  2. Buat Database Baru: Masukkan nama database yang Anda inginkan di kolom “Create New Database” dan klik “Create Database”. Catat nama database ini.

  3. Buat User MySQL: Di bagian “MySQL Users”, masukkan username dan password untuk user database baru. Klik “Create User”. Catat username dan password ini.

  4. Tambahkan User ke Database: Di bagian “Add User To Database”, pilih user yang baru Anda buat dan database yang baru Anda buat. Klik “Add”.

  5. Berikan Hak Akses: Anda akan dibawa ke halaman “Manage User Privileges”. Berikan semua hak akses (privileges) kepada user (biasanya dengan mencentang semua kotak). Klik “Make Changes”.

  6. Import Database (Optional): Jika Anda memiliki dump database dari lingkungan development, Anda dapat mengimpornya menggunakan phpMyAdmin. Di cPanel, cari ikon “phpMyAdmin” dan klik. Pilih database yang baru Anda buat, kemudian klik “Import” dan upload file dump database Anda.

Dengan database yang telah dikonfigurasi, aplikasi Laravel Anda sekarang dapat terhubung ke database dan mulai menyimpan data. Pastikan detail koneksi database sudah benar di file .env.

Langkah 4: Mengatur Direktori Public dan File .htaccess

Langkah ini sangat penting untuk memastikan aplikasi Laravel Anda dapat diakses melalui browser. Kita perlu memberitahu server di mana entry point aplikasi Anda berada.

  1. Memahami Struktur Direktori: Secara default, Laravel menempatkan entry point utama (index.php) di dalam direktori public. Di share hosting, Anda biasanya ingin website Anda diakses langsung melalui domain utama (misalnya domainanda.com), tanpa harus menambahkan /public di URL.

  2. Memastikan File .htaccess Ada: File .htaccess berisi konfigurasi server yang penting untuk mengarahkan request ke aplikasi Laravel Anda. Pastikan file .htaccess yang Anda upload ke public_html sudah benar. Biasanya, isinya seperti ini:

    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews -Indexes
        </IfModule>
    
        RewriteEngine On
    
        # Handle Authorization Header
        RewriteCond %{HTTP:Authorization} .
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    
        # Redirect Trailing Slashes If Not A Valid Directory
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_URI} (.+)/$
        RewriteRule ^ %1 [L,R=301]
    
        # Handle Front Controller...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^ index.php [L]
    </IfModule>

    Jika file .htaccess tidak ada, Anda bisa membuatnya dengan text editor dan meng-upload-nya ke public_html.

  3. Mengubah index.php (Jika Diperlukan): Dalam beberapa kasus, Anda mungkin perlu sedikit memodifikasi file index.php untuk memastikan aplikasi Laravel dapat menemukan autoloader dan direktori bootstrap/app.php. Lihat langkah selanjutnya untuk detailnya.

Langkah 5: Update Path di File index.php

Setelah Anda memindahkan isi folder public ke public_html, Anda perlu melakukan sedikit penyesuaian pada file index.php. File ini terletak di public_html. Tujuannya adalah untuk memastikan path ke autoloader dan bootstrap file sudah benar.

Buka file index.php menggunakan text editor di cPanel (atau download, edit, lalu upload kembali). Cari baris berikut:

require __DIR__.'/../bootstrap/autoload.php';

dan

$app = require_once __DIR__.'/../bootstrap/app.php';

Ubah menjadi:

require __DIR__.'/../nama_folder_laravel/bootstrap/autoload.php';

dan

$app = require_once __DIR__.'/../nama_folder_laravel/bootstrap/app.php';

Ganti nama_folder_laravel dengan nama folder tempat Anda meng-upload aplikasi Laravel Anda (misalnya, jika Anda meng-upload ke folder my_app, maka ubah menjadi ../my_app/bootstrap/autoload.php).

Kenapa kita melakukan ini? Karena file index.php sekarang berada di public_html, yang satu level di atas direktori aplikasi Laravel Anda. Kita perlu memberitahunya di mana autoloader dan bootstrap file berada.

Setelah melakukan perubahan ini, simpan file index.php.

Langkah 6: Mengatur Environment Variables (.env) di Share Hosting

Mengatur environment variables (variabel lingkungan) adalah langkah penting dalam deploy aplikasi Laravel. File .env berisi konfigurasi sensitif seperti detail database, API keys, dan pengaturan lainnya. Karena alasan keamanan, Anda sebaiknya tidak menyimpan file .env langsung di server.

Namun, di share hosting, Anda mungkin tidak memiliki akses langsung ke environment variables server. Jadi, kita perlu mencari cara lain untuk mengaturnya.

  1. Opsi 1: Gunakan cPanel’s Software Section (Jika Tersedia): Beberapa penyedia share hosting menyediakan fitur di cPanel untuk mengelola environment variables. Cari bagian seperti “Software”, “Application Manager”, atau sejenisnya. Jika Anda menemukan fitur ini, Anda dapat menambahkan variabel lingkungan dan nilainya di sana. Ini adalah cara yang paling aman dan direkomendasikan jika tersedia.

  2. Opsi 2: Edit File Konfigurasi Laravel: Jika opsi pertama tidak tersedia, Anda dapat menyalin isi file .env ke file konfigurasi Laravel Anda. Ini bukan cara yang ideal, tetapi bisa menjadi solusi sementara.

    • Buka file config/database.php.
    • Ganti nilai-nilai seperti host, database, username, dan password dengan nilai yang sesuai dari file .env Anda. Gunakan fungsi env() untuk mengakses variabel lingkungan (misalnya, env('DB_HOST', 'localhost')).

    Lakukan hal yang sama untuk file konfigurasi lainnya yang menggunakan variabel lingkungan, seperti config/app.php dan config/mail.php.

    Perhatian: Pastikan Anda tidak menyimpan informasi sensitif seperti API keys di repository kode Anda. Jika memungkinkan, gunakan opsi 1 atau coba cari solusi lain.

  3. Opsi 3: .user.ini file (Tergantung Server): Beberapa server share hosting mengizinkan konfigurasi PHP melalui file .user.ini. Anda bisa mencoba menambahkan konfigurasi seperti ini di file .user.ini di direktori aplikasi Anda:

   ; Set database connection
   DB_CONNECTION=mysql
   DB_HOST=localhost
   DB_PORT=3306
   DB_DATABASE=your_database_name
   DB_USERNAME=your_database_username
   DB_PASSWORD=your_database_password

   ; Set application key
   APP_KEY=base64:YOUR_APP_KEY

   ;Set APP_URL
   APP_URL=https://www.domainanda.com

Penting: Periksa dokumentasi hosting Anda untuk mengetahui apakah mereka mendukung penggunaan file .user.ini dan bagaimana cara menggunakannya.

Setelah Anda mengatur environment variables, pastikan untuk membersihkan cache konfigurasi menggunakan perintah berikut (jika Anda memiliki akses SSH):

php artisan config:clear

Jika Anda tidak memiliki akses SSH, Anda mungkin perlu menghubungi support hosting Anda untuk membantu membersihkan cache konfigurasi.

Tips Tambahan: Mengatasi Masalah Umum Saat Deploy Laravel

Saat melakukan deploy aplikasi Laravel ke hosting share hosting, Anda mungkin menghadapi beberapa masalah umum. Berikut beberapa tips untuk mengatasinya:

  • Error 500 (Internal Server Error): Ini adalah error umum yang bisa disebabkan oleh berbagai hal. Periksa log error server (biasanya dapat diakses melalui cPanel) untuk mengetahui penyebabnya. Beberapa penyebab umum adalah:

    • Kesalahan sintaks di file .htaccess.
    • Izin file yang salah. Pastikan file dan folder memiliki izin yang benar (biasanya 755 untuk folder dan 644 untuk file).
    • PHP extension yang hilang. Pastikan semua PHP extension yang dibutuhkan oleh Laravel sudah terinstal dan diaktifkan di server.
  • Tampilan Website Berantakan: Ini biasanya disebabkan oleh masalah dengan assets (CSS, JavaScript). Pastikan Anda sudah menjalankan npm run production untuk meng-compile assets dan meng-upload-nya ke server. Periksa juga apakah path ke assets sudah benar di template Anda.

  • Error Database Connection: Periksa kembali detail koneksi database di file .env. Pastikan nama database, username, password, dan host sudah benar.

  • Website Lambat: Performa website bisa lambat karena berbagai faktor. Beberapa tips untuk meningkatkan performa:

    • Aktifkan caching. Laravel memiliki fitur caching yang kuat yang dapat membantu meningkatkan performa.
    • Optimalkan database. Pastikan query database Anda efisien dan gunakan indexing jika diperlukan.
    • Gunakan CDN (Content Delivery Network) untuk menyajikan assets Anda.
  • “No input file specified.”: Error ini biasanya muncul jika konfigurasi .htaccess tidak benar, atau jika direktori document root tidak diarahkan dengan benar ke folder public. Pastikan .htaccess sudah benar dan path sudah diatur dengan benar di langkah sebelumnya.

Keamanan: Tips Mengamankan Aplikasi Laravel Anda di Share Hosting

Keamanan adalah aspek penting dalam deploy aplikasi Laravel, terutama di share hosting di mana Anda berbagi sumber daya dengan website lain. Berikut beberapa tips untuk mengamankan aplikasi Anda:

  • Gunakan HTTPS: Aktifkan HTTPS untuk mengenkripsi komunikasi antara browser dan server. Ini sangat penting untuk melindungi data sensitif seperti password dan informasi pribadi. Anda bisa mendapatkan sertifikat SSL gratis dari Let’s Encrypt.

  • Simpan File .env di Luar Direktori public_html (Jika Memungkinkan): Ini adalah cara terbaik untuk melindungi informasi sensitif di file .env. Jika hosting Anda memungkinkan, buat direktori di luar public_html dan simpan file .env di sana. Kemudian, konfigurasi aplikasi Laravel Anda untuk mencari file .env di direktori tersebut.

  • Gunakan Password yang Kuat: Gunakan password yang kuat dan unique untuk semua akun Anda, termasuk akun cPanel, FTP, dan database.

  • Update Laravel Secara Teratur: Pastikan Anda selalu menggunakan versi Laravel terbaru untuk mendapatkan patch keamanan terbaru.

  • Gunakan Middleware untuk Otentikasi dan Otorisasi: Laravel menyediakan middleware yang kuat untuk mengontrol akses ke routes dan resources. Gunakan middleware ini untuk memastikan hanya pengguna yang berwenang yang dapat mengakses area sensitif dari aplikasi Anda.

  • Lindungi dari SQL Injection: Gunakan Eloquent ORM Laravel atau query builder dengan parameter binding untuk melindungi aplikasi Anda dari SQL injection.

  • Lindungi dari Cross-Site Scripting (XSS): Gunakan fungsi e() (escape) atau template engine Blade untuk meng-escape output yang ditampilkan ke browser. Ini akan mencegah attacker untuk menyuntikkan kode JavaScript berbahaya ke website Anda.

  • Lindungi dari Cross-Site Request Forgery (CSRF): Laravel menyediakan proteksi CSRF secara otomatis. Pastikan Anda menggunakan middleware VerifyCsrfToken dan menyertakan CSRF token di semua form Anda.

  • Pantau Log: Pantau log error dan log aplikasi Anda secara teratur untuk mendeteksi aktivitas yang mencurigakan.

Alternatif Hosting: Kapan Harus Beralih dari Share Hosting?

Meskipun share hosting adalah pilihan yang baik untuk memulai, ada saatnya Anda perlu mempertimbangkan untuk beralih ke jenis hosting yang lebih kuat. Berikut beberapa tanda-tanda bahwa Anda mungkin perlu beralih dari share hosting:

  • Performa Website Lambat: Jika website Anda mulai lambat dan sering mengalami downtime, meskipun Anda sudah melakukan optimasi, ini mungkin berarti Anda sudah melebihi batas sumber daya yang tersedia di share hosting.

  • Meningkatnya Traffic: Jika traffic website Anda meningkat secara signifikan, share hosting mungkin tidak dapat menangani beban tersebut.

  • Kebutuhan Kustomisasi yang Lebih Tinggi: Jika Anda membutuhkan kustomisasi yang lebih dalam pada konfigurasi server, seperti menginstal software tambahan atau mengubah pengaturan PHP, share hosting mungkin tidak dapat memenuhinya.

  • Masalah Keamanan: Jika Anda sering mengalami masalah keamanan di share hosting, seperti hacking atau malware, ini mungkin berarti share hosting Anda tidak aman.

Berikut beberapa alternatif hosting yang bisa Anda pertimbangkan:

  • VPS (Virtual Private Server): VPS menawarkan lebih banyak sumber daya dan kontrol daripada share hosting. Anda mendapatkan server virtual yang didedikasikan untuk website Anda, meskipun masih berbagi server fisik dengan website lain.

  • Cloud Hosting: Cloud hosting menawarkan fleksibilitas dan skalabilitas yang tinggi. Website Anda di-host di jaringan server, sehingga Anda dapat dengan mudah menambah atau mengurangi sumber daya sesuai kebutuhan.

  • Dedicated Server: Dedicated server adalah server fisik yang sepenuhnya didedikasikan untuk website Anda. Ini adalah pilihan yang paling mahal, tetapi juga yang paling kuat dan aman.

  • Managed Laravel Hosting: Ada beberapa penyedia hosting yang khusus menyediakan layanan untuk aplikasi Laravel. Mereka menawarkan server yang sudah dioptimalkan untuk Laravel, serta fitur-fitur tambahan seperti deployment otomatis dan caching.

Pilihan jenis hosting yang tepat tergantung pada kebutuhan dan anggaran Anda.

Kesimpulan: Aplikasi Laravel Anda Siap Online!

Selamat! Anda telah berhasil mengikuti panduan lengkap cara deploy aplikasi Laravel ke hosting share hosting. Dengan langkah-langkah yang telah kita bahas, aplikasi Laravel Anda seharusnya sudah bisa diakses secara online.

Ingatlah bahwa proses deploy bisa sedikit berbeda tergantung pada penyedia hosting yang Anda gunakan. Selalu periksa dokumentasi hosting Anda untuk mendapatkan informasi yang lebih spesifik.

Jangan lupa untuk terus memantau performa dan keamanan aplikasi Anda setelah di-deploy. Lakukan update secara teratur, perbaiki bug, dan terapkan praktik keamanan terbaik untuk memastikan aplikasi Anda berjalan dengan lancar dan aman.

Semoga panduan ini bermanfaat! Selamat menikmati aplikasi Laravel Anda yang sudah online dan siap digunakan oleh pengguna di seluruh dunia!