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

  1. Buat folder baru untuk menyimpan file package dari aplikasi kita. Disini saya menggunakan nama direktori _protected. Untuk penamaan direktori terserah anda.
  2. Pindahkan semua direktori dan file Yii 2.0 Advanced kedalam folder _protected yang telah dibuat.
  3. Kemudian pindahkan semua isi direktori frontend/web ke luar (direktori utama). Direktori frontend/web sudah tidak diperlukan sehingga bisa dihapus
  4. 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.

  1. File index.php
  2. 
    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();
    
    	
  3. File admin/index.php
  4. 
    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();
    
    	
  5. Tambahkan file .htaccess dengan setting rekomendasi dari Yii 2.0 sebagai berikut. Letakkan file .htaccess ke dalam direktori utama dan direktori admin
  6. 
    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

Author Image

Fery Dedi Supardi

I grew up in Magetan, East Java. I have my university degree majoring Informatics Engineering from Brawijaya University, Malang. In 2013, I designed a. . .


Published

Integrasi Composer Dengan Codeigniter 2.x

Composer saat ini sudah sangat umum digunakan di framework PHP modern, seperti Yii 2, Laravel, Symfony, Phalcon, dll. Mayoritas framework pemrograman PHP modern s. . .


Published