Skip to main content

Merubah Folder Publik Pada Laravel 5.8





Laravel merupakan salah satu framework yang saat ini sedang ramai digunakan, Laravel memiliki struktur direktori / folder yang cukup mudah dipahami bahkan kita bisa membuat custom folder sendiri sesuai keperluan.

Kali ini saya ingin berbagi hal yang saya dapat setelah mempelajari laravel dan berkeliling dari situs ke situs. yaitu bagaimana merubah folder publik pada laravel (saya menggunakan laravel v5.8).
Sebagai Catatan umumnya setiap webserver selalu mencari & membaca terlebih dahulu file index pada publik direktori (folder) pada website. dan pada laravel terletak pada folder public. 

Berikut Contoh struktur folder pada laravel :


/
/app
/bootstrap
/config
/database
/public
    /index.php
/resources
/routes
/storage
Namaun pada saat kita akan mengupload / deploy website kita ke server Hosting yang pada umumnya menggunakan nama folder public_html. tentu suatu hal yang mungkin membuat kita sedikit bingung untuk merubah nama folder dari project kita karena jika kita rubah secara langsung, kemungkinan yang terjadi pada project kita malah error.

Sebagai contoh berikut struktur folder pada hosting saat di deploy / publish:


/home
 /user
  /app
  /public_html
    /index.php
  /resources
  /routes
  /storage

Ada 4 hal yang perlu dilakukan untuk mengarahkan publik directory pada project yang menggunkan framework laravel yang saya dapat di situs-situs lainnya. ( meskipun mungkin ada beberapa cara lainnya yang lebih mudah, mungkin cara ini bisa digunakan untuk alternatif).


Langkah 1: Merubah isi File Pada Laravel

terdapat 4 file penting yang perlu kita rubah diantaranya :

a. ./server.php

File ini terletak pada root direktori . File ini di gunakan oleh printah php artisan serve . pada file ini terdapat penamaan langsung folder public. jadi rubah nama / kode public menjadi nama folder yang akan di gunakan menjadi publik ( sebagai contoh: public_html )

if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
  return false;
}

require_once __DIR__.'/public/index.php';
menjadi:

if ($uri !== '/' && file_exists(__DIR__.'/public_html'.$uri)) {
  return false;
}

require_once __DIR__.'/public_html/index.php';
 b. ./app/AppServiceProvider.php

Pada file ini kita bisa meregistrasi dan menjalankan service yang diperlukan pada project kita. Fungsi yang digunakan dalam file ini yaitu fungsi register(). Pada umumnya fungsi ini belum berisi script code atau kosong.

tambahkan script berikut pada fungsi register()

public function register()
{
  $this->app->bind('path.public', function() {
    return base_path().'/public_html';
  });
}
c. ./config/filesystems.php

File konfigurasi filesystems ini berguna untuk mendeklarasikan letak direktori pubik dan juga letak direktori penyimpanan file-file / storage. ubah kode pada blok 'public' bagian 'root'  yang sebelumnya memiliki nilai 'app/public' menjadi nama folder  yang akan di gunakan menjadi publik ( sebagai contoh: public_html ) . 'app' merupakan nama lain dari root folder dari project kita.

'public' => [
  'driver' => 'local',
  'root' => storage_path('app/public'),
  'url' => env('APP_URL').'/storage',
  'visibility' => 'public',
],
menjadi:

'public' => [
  'driver' => 'local',
  'root' => storage_path('app/public_html'),
  'url' => env('APP_URL').'/storage',
  'visibility' => 'public',
],
d. ./webpack.mix.js (mandatory)

Pada tutorial lain merubah file ini adalah hanya opsional tapi menurut saya sebaiknya di update juga karena agar sewktu waktu digunakan kita tidak lupa jika folder publik kita telah di ganti.

Beberapa project laravel menggunakan plugin laravel mix plugin untuk unified dan minified suatu kode script js, sass, maupun css. Default folder output pada laravel mix adalah pada folder public/js dan public/css, oleh karena itu kita perlu mendeklarasikan / menambahkan script mix.config.publicPath pada script berikut 

mix.js('resources/assets/js/app.js', 'public/js')
  .sass('resources/assets/sass/app.scss', 'public/css');
menjadi :


mix.config.publicPath='public_html';
mix.js('resources/assets/js/app.js', 'public_html/js')
  .sass('resources/assets/sass/app.scss', 'public_html/css');

Langkah 2: Memindah / Merubah Nama folder Public ke Public_html

langkah berikutnya yaitu memindahkan isi dari folder public  ke dalam folder public_html.
langkah paling mudah adalah merubah langsung nama folder tersebut.

atau jika menggunakan terminal linux ketikkan perintah


mv (lokasi folder)/public (lokasi folder)/public_html
atau jika ingin menyimpan folder public sebagai backup gunakan perintah copy


cp -R (lokasi folder)/public (lokasi folder)/public_html

Langkah 3: Chek Konfigurasi pada laravel-mix (jika menggunakannya)

Jika kita menggunakan laravel-mix sebelum mencoba hasil perubahan, terlebih dahulu jalankan perintah npm run dev  pada terminal (jika kesulitan menjalankan terminal pada hosting sebaiknya update terlebih dahulu / jalankan terlebih dahulu pada server lokal / komputer lokal )

npm run dev
hasil pada terminal setelah menjalankan perintah :

DONE Compiled successfully in 10528ms 11:03:50 PM Asset Size Chunks Chunk Names /public_html/js/app.js 1.41 MB 0 [emitted] [big] /public_html/js/app public_html/css/app.css 289 kB 0 [emitted] [big] /public_html/js/app
    Setelah itu slihakan mengakses project kita. jika menggunakan fitur laravel serve jangan lupa menjalankan perintah

    php artisan serve
    dan mengakses http://localhost:8080 atau nama domain kita.


    Langkah 4: Update perubahan yang telah dilakukan pada program kontrol versi 

    Penggunaan program kontrol versi seperti git sangatlah membantu. oleh karena itu silahkan simpan hasil edit project pada program kontrol versi agar memudahkan kita jika sewaktu waktu ingin mengembalikan ke settingan awal.



    ============

    Demikian tutorial kali ini semoga berguna. Berikut link reverensi untuk tambahan infonya:.

    https://developerhowto.com/2018/11/12/how-to-change-the-laravel-public-folder/
    https://git-scm.com/doc
    https://laravel.com/docs/5.8
     












    Comments

    1. Replies
      1. wah sudah lama tak pernah buka blog ini ternayata ada yang baca, terimakasih. jadi semangat lagi menulis. hehehe.

        Delete

    Post a Comment

    Popular posts from this blog

    Format tanggal dan jam pada bahasa pemrograman PHP (Date Format)

    PHP (PHP: Hypertext Processor) Merupakan salah satu bahasa pemrograman yang sangat dikenal di kalangan programer. dan versi PHP paling terbaru pada tahuin postingan ini dibuat adalah versi 7.3. Artikel kali ini berkaitan dengan salah satu parameter pada fungsi yang sering digunakan untuk menampilkan maupun memformat output tanggal dan jam (waktu). beberapa fungsi yang sering digunakan diantaranya date() dan date_format(). Fungsi date() fungsi date() umumnya digunakan untuk mengambil waktu dari sytem / waktu server. fungsi date memiliki beberapa parameter diantaranya: $format: Digunakan untuk menentukan bentuk output waktu yang di inginkan. $timestamp:  (Opsional)  Nilai satuan waktu dalam UNIX sytem , bertipedata integer. Fungsi date_format() fungsi date_format() adalah fungsi untuk merubah bentuk output dari variable yang bertipedata date. fungsi ini biasanya didahului dengan fungsi date_create(),   yaitu salah satu fungsi php yang membuat...

    Struktur dasar penuliasan tag HTML

    Dalam membangun sebuah website ada hal hal yang perlu kamu pelajari dan mengerti. salah satunya penyusunan script atau tulisan kode penyusun halaman website kamu HTML ( Hyper Text Markup Language ) merupakan bahasa markah yang menyusun sebuah halaman website. Penulisan bahasa HTML diapit dengan tag < ... >  . Contohnya :  < H1 > ( kontent atau teks ) </H1>