Bagi anda yang masih pemula dalam Yii 2.0 mungkin akan merasa sedikit kebingungan ketika akan mengunggah aplikasi ke web hosting. Terlebih lagi jika anda menggunakan web server Shared Hosting. Di lingkungan shared hosting kita memiliki keterbatasan dalam melakukan konfigurasi web server.
Untuk itu melanjutkan posting artikel sebelumnya Mengubah Struktur Direktori Aplikasi Yii 2.0 (Basic Application), kali ini kita akan membahas bagaimana cara konfigurasi Struktur Direktori Yii 2.0 Shared Hosting (Advanced Application).
Dalam tutorial kali ini saya anggap anda telah melakukan instalasi Yii 2.0 Advanced application di komputer. Yii 2.0 Advanced terdiri dari dua aplikasi yaitu aplikasi frontend bisa di akses di http://localhost/nama_aplikasi/frontend/web dan backend di bisa di akses di http://localhost/nama_aplikasi/backend/web. Berikut tampilan default struktur direktori Yii 2.0 Advanced :
Selanjutnya kita akan mengatur struktur direktori aplikasi Yii 2.0 Advanced agar kompatibel dengan shared hosting yang akan kita gunakan.
Struktur Direktori
- Buat folder baru untuk menyimpan file package dari aplikasi kita. Disini saya menggunakan nama direktori _protected. Untuk penamaan direktori terserah anda.
- Pindahkan semua direktori dan file Yii 2.0 Advanced kedalam folder _protected yang telah dibuat.
- Kemudian pindahkan semua isi direktori frontend/web ke luar (direktori utama). Direktori frontend/web sudah tidak diperlukan sehingga bisa dihapus
- Buat direktori baru bernama admin, kemudian pindahkan isi direktori backend/web ke dalam direktori admin. Sama seperti sebelumnya, direktori backend/web sudah tidak diperlukan sehingga bisa dihapus
Struktur direktori Yii 2.0 Advanced hasil perubahan seperti gambar di bawah ini :
Konfigurasi
Setelah kita melakukan perubahan struktur direktori. Kita perlu menyesuaikan konfigurasi beberapa file di Yii 2.0 Advanced agar perubahan lokasi file Yii 2.0 Advanced tetap dapat diakses oleh web server.
- File index.php
- File admin/index.php
- Tambahkan file .htaccess dengan setting rekomendasi dari Yii 2.0 sebagai berikut. Letakkan file .htaccess ke dalam direktori utama dan direktori admin
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
require('_protected/vendor/autoload.php');
require('_protected/vendor/yiisoft/yii2/Yii.php');
require('_protected/common/config/bootstrap.php');
require('_protected/frontend/config/bootstrap.php');
$config = yii\helpers\ArrayHelper::merge(
require('_protected/common/config/main.php'),
require('_protected/common/config/main-local.php'),
require('_protected/frontend/config/main.php'),
require('_protected/frontend/config/main-local.php')
);
$application = new yii\web\Application($config);
$application->run();
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
require('../_protected/vendor/autoload.php');
require('../_protected/vendor/yiisoft/yii2/Yii.php');
require('../_protected/common/config/bootstrap.php');
require('../_protected/backend/config/bootstrap.php');
$config = yii\helpers\ArrayHelper::merge(
require('../_protected/common/config/main.php'),
require('../_protected/common/config/main-local.php'),
require('../_protected/backend/config/main.php'),
require('../_protected/backend/config/main-local.php')
);
$application = new yii\web\Application($config);
$application->run();
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
Dengan perubahan direktori dan konfigurasi aplikasi Yii 2.0 Advanced seperti dia atas, aplikasi sudah bisa anda akses secara langsung di web server shared hosting. Untuk source code hasil perubahan direktori Yii 2.0 Advanced selengkapnya bisa anda unduh di sini. Semoga tips Struktur Direktori Yii 2.0 Shared Hosting (Advanced Application) ini bermanfaat. Selamat mencoba