Cara upload atau instalasi Laravel di Hosting

Sahabat-sahabat pencinta framework Laravel, berjumpa kembali dengan saya Ivo Idham Perdameian. Kali ini saya akan membagikan cara instalasi Laravel 4 di hosting atau tepatnya upload Laravel ke hosting, supaya website yang sahabat buat di localhost bisa diakses di Internet.

Jika sahabat memerlukan cara upload Laravel versi 5, silahkan langsung buka tutorial untuk upload Laravel versi 5

Owh ya sebelum melanjutkan pembahasan, saya mau memberitahu sahabat sekalian bahwa tutorial khusus tentang Laravel tersedia di kategori Laravel, atau sahabat bisa mengakses dari dropdown list di samping sebelah kanan laman web ini. Sebelumnya juga saya sudah menulis bagaimana cara instalasi Laravel baik itu di OS Windows maupun Linux (Ubuntu) dan cara konfigurasi Virtual Host untuk development/ pengembangan dikomputer lokal sahabat, saya sarankan membaca kedua tulisan tersebut karena tulisan itu penting sekali dan akan sering menjadi patokan dalam tutorial tentang Laravel berikutnya.

Jika sahabat membaca tutorial ini, saya beranggapan sahabat sudah familiar dengan struktur direktori Laravel. Berikut adalah struktur direktori normal Laravel 4: (Silahkan tekan Ctrl + H dulu jika menggunakan OS Ubuntu)

Struktur direktori dan file Laravel
Tentu saja akan membingungkan bila sahabat upload begitu saja aplikasi yang sahabat buat karena untuk dapat mengakses aplikasi web tersebut sahabat perlu mengarahkan URL ke http://namadomain.com/public/, tentu hal ini gak lucu bukan? Bukankah lebih baik cukup mengarahkan ke http://namadomain.com/ dan aplikasi sahabat tersebut bisa diakses? Nah itu yang akan kita bahas.

Kok Laravel membuat terpisah ya? Enggak seperti CI?, itu maksudnya supaya memisahkan kode utama sehingga tidak bisa diakses secara publik, jika sahabat sudah familiar dengan Yii tentu sudah paham dengan hal ini dan pastinya tidak membaca tutorial ini :p, karena instalasi Yii hampir sama perlakuannya dengan Laravel.

Waduh kebanyakan cerita nih!. Yuk lanjut.

Pengaturan upload

Setahu saya ada dua cara supaya aplikasi sahabat cukup diakses http://namadomain.com/ tanpa ada public/ dibelakang URL tersebut.

Cara 1: Punya server sendiri atau VPS

Kalau sahabat sudah punya server sendiri atau VPS, silahkan membaca cara konfigurasi Virtual Host untuk Laravel yang pernah saya tulis sebelumnya, tinggal menyesuaikan NameServer dengan nama domain atau host sahabat. Alternative yang lain adalah langsung edit file httpd.conf caranya adalah ubah dibagian DocumentRoot dan Directory, arahkan lokasi ke bagian laravel, contoh:

Ingat, file yang diubah adalah httpd.conf

Cara 2: Cuma punya hosting dengan akses CPanel

Nah saya rasa ini adalah cara yang umum dipakai, termasuk saya :D.
Oke dari struktur direktori normal (lihat gambar pertama di atas) akan kita ubah, pertama buat sebuah direktori baru dengan nama framework kemudian pindahkan semua file dan direktori ke dalam direktori framework yang kita buat tadi kecuali direktori public. Selanjutnya ubah nama direktori public menjadi public_html sehingga tampak seperti berikut:

Perubahan struktur direktori Laravel
Selanjutnya ubah file public_html/index.php menjadi:

Ubah file framework/bootstrap/paths.php menjadi:

Nah sekarang tinggal sahabat upload saja ke hosting sahabat, yang direktori public_html ke public_html sedangkan yang direktori framework sejajarkan dengan direktori public_html, silahkan lihat gambar berikut untuk lebih jelasnya:

Upload dan instal Laravel ke Hosting

Jika dilihat menggunakan File Manager di CPanel maka akan tampak seperti ini:

File manager Laravel CPanel

Direktori framework tidak akan bisa diakses karena berada diluar public_html.

Catatan Akhir:

Jika masih ada yang belum dimengerti mengenai tulisan di atas, silahkan tanya di bagian komentar di bawah ya. Supaya mendapat notifikasi jika jawabannya dibalas silahkan centang pilihan "Beri tahu saya komentar baru melalui email" sebelum mengirim komentar.

Catatan Belajar juga hadir di Facebook, dukung tulisan kami dengan klik tombol suka ini ya:

Sekian, semoga tulisan dengan judul Cara upload atau instalasi Laravel di Hosting ini bermanfaat bagi kita semua.

Salam penulis, Ivo Idham Perdameian

52 thoughts on “Cara upload atau instalasi Laravel di Hosting

Add yours

    1. Sama prosesnya kayak tutorial ini, cuma sesuaikan file public_html/folder_subdomain/index.php menjadi:

      dan file framework/bootstrap/paths.php menjadi:

      folder_subdomain itu adalah dimana agan naroh lokasi subdomain.

      Sekarang bandingkan bedanya dengan tutorial di atas. Pasti ngerti kok.

  1. mas idham saya kok susah konek ke database yang ada di web host saya ya? errornya itu: “SQLSTATE[HY000] [2002] Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)” saya udah cari2 di internet tapi rata2 bahasnya masalah yang di localhost.

    saya udah edit di app/config/database nya tapi masih ga bener, tolongin dong mas,

    webnya dgoproject.com, sampai tulisan ini di tulis masih error

    1. Saya pernah memgalami masalah ini juga kok dulu. Coba cek apakah MySQL-nya udah running apa blm. Jka blm bsa jga mcul psn error yg spt itu. Jka udah kemingkinan bsr lokasi mysql.sock gak ada dilokasi yg disebutkn di errornya itu.

      1. Maksudnya ngga bisa develop di hosting ya ?, jika suatu saat ada update berarti harus dilakukan di lokal server dengan composer, gitu gan?

  2. kalau pake php versi 5.3.2 bisa ga ya ..
    saya sudah upload ko ga muncul . blank putih aja (pake web hosting dax*.net)

    tapi kalau di localhost bisa

    1. Kalo PHP cma versi 5.3.2 gak bisa untuk menjalankan Laravel. Versi Laravel 4.0 & 4.1 aja butuh PHP >= 5.3.7 ? Klo Laravel versi 4.2 butuh PHP >= 5.4. Klo di local bisa pasti karna udh memenuhi kbthn/ syrt terpenuhi.

  3. Warning: require(/home/devaibu/framework/bootstrap/autoload.php) [function.require]: failed to open stream: Operation not permitted in /home/devaibu/public_html/didol/index.php on line 21

    settingan agar bisa akses di luar public_html gimana ya?

  4. Mas Idham, pernah mengalami error menggunakan library intervention pada laravel atau menggunakan validation mimes tertentu yg disebabkan karena hostingnya tidak memperboleh meng-enable fileinfo extension ?, mohon pencerahannya mas. Thanks

    1. Pernah mas, saya dulu mengalami hal itu waktu menggunakan upload di Laravel. Sebenarnya bukan Laravelnya mas tapi komponen Symfony yang dipakai Laravel.

      Waktu itu solusinya saya minta extensi fileinfo di aktifkan ke pihak hosting mas.

  5. Bener mas, masalahnya saat ini extension tersebut dianggap berbahaya sehingga di-disable dari server dan tidak boleh diaktifkan meskipun menggunakan php.ini tersendiri pada domain saya. saat ini server berjalan dengan PHP 5.4.35 ( yg sepertinya bug tersebut sudah fix seharusnya ). bagaimana menurut mas Idham. Apakah saya yg harus mengubah function library nya atau webhosting yg seharusnya melakukan update terhadap PHP nya. Terima kasih banyak mas atas responnya.

    1. Kalau menurut saya sih selayaknyalah web hosting yang mengaktifkan fitur tersebut demi kenyamanan pelanggannya, tetapi bila hal tersebut tidak memungkinkan toh mas udah terlanjur beli/ sewa hostingnya jadi kalau memang mas mempunyai alternative lain selain menggunakan fitur tersebut ya silahkan mencoba opsi yang ada.

  6. malam mas, mau nanya
    setelah kita selesai upload semuanya dan beres
    untuk database, di file .env apa aja yg harus di konfigurasi ya ?
    terimakasih mas

  7. haloo..terima kasih petunjuknya.. mau tanya.. saya sudah mengikuti langkahnya. dan berhasil untuk page 1 (login) namun ketika login di klik.. dia bilang page not found.. tolong masukannnya ya. thx

    1. Hallo juga… Maaf ini tulisan untuk laravel 4, saya masih belum sempat nulis lagi untuk versi laravel 5.
      Kalau boleh tahu mas pake laravel versi berapa supaya saya bisa jelaskan detailnya.

  8. om kalo masalah seperti ini kenapa ya ? “Warning: Unexpected character in input: ” (ASCII=92) state=1 in /home/a4008956/framework/bootstrap/autoload.php on line 46″

  9. gan ane udh ikut tutorialnya ane pake sub domain,buat tugas ane
    maksud eror ky gini apa om

    Warning: require(/home/u855599860/public_html/e-learningsmp/../framework/bootstrap/autoload.php): failed to open stream: No such file or directory in /home/u855599860/public_html/e-learningsmp/index.php on line 21

    Fatal error: require(): Failed opening required ‘/home/u855599860/public_html/e-learningsmp/../framework/bootstrap/autoload.php’ (include_path=’.:/opt/php-5.5/pear’) in /home/u855599860/public_html/e-learningsmp/index.php on line 21

  10. malem gan..mau nanya nich gan
    diakhir tulisan ada kata-kata
    Direktori framework tidak akan bisa diakses karena berada diluar public_html.
    lach kalo untuk mengaitkan gimana gan?

    1. Tutorial ini untuk Laravel 4 mas, jika menggunakan Laravel 5 tinggal disesuaikan.

      Mengenai cara mengaitkan, untuk itulah tulisan ini dibuat karena cara2nya dijelaskan pada sub judul Cara 2: Cuma punya hosting dengan akses CPanel

      1. kalo letak index dan httaccess dimana mas Idham?..maklum baru berkenalan dengan laravel sudah disuruh upload n setting jadi bingung, sudah nyoba sesuai arahan mas Idham tapi tetep gak mau buka, munculnya index of..butuh pencerahannya mas..maaf merepotkan

  11. mas. saya mau tanya sedikit. saya kesulitan dengan file permision di linux kalau mau buat upload file. apa ada solusi biar gak selalu harus chmod ? terima kasih. mohon pencerahan

  12. Saya mau menanyakan untuk kendala di shared hosting..

    saya sudah upload dan berhasil. Tetapi ketika ada penambahan coding program (route, controller,view, dll), untuk route2 yang baru tidak bisa dibuka..

    Terus saya mau clear cache via ssh, tp ngga bisa. trus saya buka tiket ke admin hosting nya.

    berikut jawaban dia
    ———————————————-
    Salam, sudah kami bantu clear cache saat ini:

    [email protected] [/home/socialpl/framework]# php artisan config:cache
    Configuration cache cleared!
    Configuration cached successfully!

    Mohon diperhatikan fungsi escapeshellarg memang kami matikan terkait potensi keamanan yang dapat terjadi perihal penyalahgunaan fungsi tersebut.
    ———————————————————————————

    tapi ketika saya buka route yang telah saya tmabhkan , tetap tidak bs..

    apakah laravel emang ngga dikhususkan buat shared hosting ?

      1. di folder framework/bootstrap/cache tidak ada file compiled.php dan cuma terdapat 3 file
        1. .gitignore
        2. config.php
        3. service.json

        kira2 apa yang bs saya lakukan mas ?

        terima kasih

  13. Saya sudah mengikuti tutorialnya, tapi saya mendapati error

    “Parse error: syntax error, unexpected ‘.’, expecting ‘&’ or variable (T_VARIABLE) in /home/u871128937/framework/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 476”

    Itu bagaimana yah? Saya menggunakan laravel 5.3

Tinggalkan Balasan

© 2017 oleh Catatan Belajar | Theme: Baskerville 2 by Anders Noren.

Up ↑