Konfigurasi Laravel di webhosting
Pertama, daftar dulu di webhosting
Kedua, siapin Websitenya (Host dan Domain - Yg free aja dulu).
Ketiga, siapin Databasenya.
Keempat, siapin Laravelnya. Download dulu laravel nya kalo belom ada, bisa download pake composer atau langsung dari web laravelnya.
Struktur Folder
Setelah itu, struktur folder nya dirubah, misalkan sebelumnya giniwww
└─laravel
├─ app
├─ bootstrap
├─ config
├─ database
├─ public
├─ resources
├─ storage
├─ tests
├─ vendor
├─ .env
├─ .env.example
├─ .gitattributes
├─ .gitignore
├─ .idea
├─ artisan
├─ composer.json
├─ composer.lock
├─ gulpfile.js
├─ readme.md
├─ server.php
├─ package.json
└─ phpunit.xml
Lalu kita rubah struktur nya jadi begini:
www
├─laravel
│ ├─ app
│ ├─ bootstrap
│ ├─ config
│ ├─ database
│ ├─ resources
│ ├─ storage
│ ├─ tests
│ ├─ vendor
│ ├─ .env
│ ├─ .env.example
│ ├─ .gitattributes
│ ├─ .gitignore
│ ├─ .idea
│ ├─ artisan
│ ├─ composer.json
│ ├─ composer.lock
│ ├─ gulpfile.js
│ ├─ readme.md
│ ├─ server.php
│ ├─ package.json
│ └─ phpunit.xml
├─public_html
└─tmp
Isi didalam folder public di pindahin ke folder public_html. Isinya aja ya, setelah di pindah, folder public yang tadi boleh dihapus.
Routing
Kemudian kita rubah isi file index.php di dalem folder public_html.Sebelum dirubah file index.php nya:
<?php
/* ... */
require __DIR__.'/../bootstrap/autoload.php';
/* ... */
$app = require_once __DIR__.'/../bootstrap/app.php';
/* ... */
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$response->send();
$kernel->terminate($request, $response);
Kemudian kita rubah jadi gini:
<?php
/* ... */
require __DIR__.'/../laravel/bootstrap/autoload.php';
/* ... */
$app = require_once __DIR__.'/../laravel/bootstrap/app.php';
$app->bind('path.public', function() {
return __DIR__;
});
/* ... */
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$response->send();
$kernel->terminate($request, $response);
Database
Untuk databasenya, kita rubah file .env.Sebelum dirubah:
APP_ENV=local
APP_DEBUG=true
APP_KEY=base64:SW5pa2V5WWdEaUdlbmVyYXRlT3RvbWF0aXNTYWF0RG93bmxvYWRMYXJhdmVsIA==
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
Sesudah dirubah:
APP_ENV=local
APP_DEBUG=true
APP_KEY=base64:SW5pa2V5WWdEaUdlbmVyYXRlT3RvbWF0aXNTYWF0RG93bmxvYWRMYXJhdmVsIA==
APP_URL=http://nama-domain.com
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=DATABASE_NAME
DB_USERNAME=DATABASE_USER
DB_PASSWORD=PASSWORD_DATABASE
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
REDIS_HOST=localhost
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
Fix error mysql
Masih belum selesai, kita rubah file database.php di dalem folder "laravel\config\database.php".Cari ini:
'mysql' => [
kemudian tambahin ini di dalem kurung sikunya, misal taro aja di sebelom penutup kurung sikunya.
'options' => [PDO::ATTR_EMULATE_PREPARES => true],
Kalo udah, tinggal di upload. Saran aja sih, sebelom di upload web nya di selesain dulu, soalnya repot kalo di webhost yg gratis layanannya terbatas.
Kalo mau langsung di upload:
- folder laravel upload sama foldernya
- folder public_html, upload aja isinya soalnya di webhost udah ada foldernya, jadi tinggal replace isinya.
- folder tmp itu otomatis dari webhostnya.
Kaya yg udah gw bilang kalo gratisan itu terbatas service nya, jadi kita ga bisa pake "php artisan migrate", kita musti insert manual.
kalo mau buat controller, model, migration, seeder juga manual. tapi, kalo untuk controller dan model mah gampang kan ya, tinggal di upload doang.
Nah migrasi sama seed nya ini ada trik nya. kita migrasi dan seed dulu di localhost, kemudian export jadi sql.
Lalu buka webhost, akses phpmyadmin di webhostnya, kemudian pilih databasenya, lalu insert sql, copy paste yang tadi di export(Isi .sql nya).
Dah selesai.