Bagi anda yang pertama kali mencoba Yii 2.0 mungkin akan merasakan sedikit kebingungan. Karena jika kita mencoba membuka direktori instalasi Yii 2.0 secara langsung melalui browser, misalnya http://localhost/nama_aplikasi. Kita tidak menjumpai halaman home atau halaman depan aplikasi. Hal ini dikarenakan secara default direktori publik di Yii 2.0 berada di folder web. Sehingga untuk mengakses halaman aplikasi perlu menambahkan direktori web di belakang nama aplikasi, sehingga menjadi http://localhost/nama_aplikasi/web.

Hal ini dirasa cukup merepotkan bagi programmer newbie seperti saya :). Bagaimana caranya agar aplikasi bisa langsung diakses tanpa menyertakan direktori web dibelakang nama aplikasi. Sebenarnya ada beberapa cara yang bisa kita lakukan, seperti menggunakan pengaturan .htaccess, atau dengan pengaturan web server yang kita gunakan untuk deploy aplikasi. Untuk pengaturan web server tidak menjadi masalah jika kita akan men-deploy aplikasi Yii 2.0 di server kita sendiri (misal VPS), yang menjadi masalah ketika kita menggunakan server Shared Hosting yang kita tidak bisa leluasa melakukan pengaturan web server.

Setelah beberapa kali mencoba, kali ini saya akan berbagi cara Mengubah Struktur Direktori Yii 2.0 (Basic Application) agar dapat langsung diakses tanpa menyertakan direktori web. Cara ini sudah saya uji coba dan berjalan lancar di server Shared Hosting.

Instalasi Yii 2.0

Lakukan instalasi Yii 2.0 seperti biasa, kali ini saya menggunakan Yii 2.0 Basic untuk pengaturan custom directory Yii 2.0 Advanced akan kita bahas di artikel berikutnya. Lakukan instalasi Yii 2.0 seperti biasa. Untuk Petunjuk instalasi bisa anda lihat di sini. Secara default struktur direktori aplikasi Yii 2.0 Basic seperti gambar berikut.

Struktur Direktori

Setelah berhasil melakukan instalasi Yii 2.0 Basic. Berikutnya kita akan mengubah strukur direktori bawaan dari Yii 2.0 Basic agar dapat diakses secara langsung tanpa melalui direktori web.

  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 selain direktori web kedalam folder _protected.
  3. Pindahkan semua isi direktori web ke luar. Direktori web sudah tidak diperlukan sehingga bisa dihapus
  4. Buat direktori baru bernama themes untuk menyimpan file assets dan themes. Sekali lagi untuk penamaan terserah anda.
  5. Pindahkan direktori css ke dalam direktori themes.
  6. Struktur direktori Yii 2.0 hasil perubahan seperti gambar di bawah ini.

Konfigurasi

Setelah kita melakukan perubahan struktur direktori. Kita perlu menyesuaikan konfigurasi beberapa file di Yii 2.0 agar perubahan lokasi file Yii 2.0 tetap dapat diakses.

  1. File index.php
  2. 
    // comment out the following two lines when deployed to production
    defined('YII_DEBUG') or define('YII_DEBUG', true);
    defined('YII_ENV') or define('YII_ENV', 'dev');
    // SESUAIKAN DENGAN LOKASI CORE YII 2.0 YANG BARU
    require(__DIR__ . '/_protected/vendor/autoload.php');
    require(__DIR__ . '/_protected/vendor/yiisoft/yii2/Yii.php');
    // SESUAIKAN DENGAN LOKASI FILE KONFIGURASI
    $config = require(__DIR__ . '/_protected/config/web.php');
    (new yii\web\Application($config))->run();
    
    	
  3. File _protected/assets/AppAsset.php
  4. 
    class AppAsset extends AssetBundle
    {
        public $basePath = '@webroot';
        public $baseUrl = '@web';
        public $css = [
            'themes/css/site.css',   // SESUAIKAN DENGAN LOKASI THEMES 
        ];
        public $js = [
        ];
        public $depends = [
            'yii\web\YiiAsset',
            'yii\bootstrap\BootstrapAsset',
        ];
    }
    
    	
  5. Buat file .htaccess
  6. 
    
        Options +FollowSymLinks
        RewriteEngine on
        # hide files and folders
        RedirectMatch 404 /_protected
        RedirectMatch 404 /\.git
        RedirectMatch 404 /composer\.
        RedirectMatch 404 /.bowerrc
        # If a directory or a file exists, use the request directly
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        # Otherwise forward the request to index.php
        RewriteRule . index.php
    
    
    	

Jika perubahan direktori dan konfigurasi sudah anda lakukan dengan benar, aplikasi Yii 2.0 sudah bisa anda akses secara langsung tanpa melalui folder web, http://localhost/nama_aplikasi. Untuk source code hasil perubahan direktori Yii 2.0 selengkapnya bisa anda unduh di sini. Semoga tips Mengubah Struktur Direktori Aplikasi Yii 2.0 (Basic 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