Pada postingan sebelumnya saya telah memberikan ulasan mengenai cara menginstall Laravel, sekarang saya menuliskan cara instal Yii2. Yii sama halnya dengan Laravel yakni sebuah PHP Framework. Oke, saya tidak memberikan penjelasan menganai defini Yii di sini, karena fokus artikel ini adalah cara penginstalannya. Langsung saja kita mulai.

Prainstal Yii 2

Sebelum tahap instalasi Yii 2 ada beberapa kriteria yang harus Anda penuhi yakni:

* PHP dengan versi minumum 5.4
* Adanya Composer (Anda bisa lihat cara penginstalanya: <a href="https://situsali.com/tag/composer/" target="_blank">https://situsali.com/tag/composer/</a>)
* Beberapa _extension / module_ yang perlu diaktifkan di `php.ini` yakni:

* gd.so
* imagick.so (pengguna Archlinux: `sudo pecl install imagick`)
* memcache.so
* apcu.so
* zip.soJika Anda merujuk pada pengaturan yang `php.ini` saya yakni:
extension=bcmath.so
extension=bz2.so
extension=calendar.so
extension=curl.so
extension=dba.so
extension=enchant.so
extension=exif.so
extension=ftp.so
extension=gd.so
extension=gettext.so
extension=gmp.so
extension=iconv.so
extension=imap.so
extension=intl.so
extension=ldap.so
extension=mcrypt.so
;extension=mssql.so
extension=mysql.so
extension=mysqli.so
;extension=odbc.so
;zend_extension=opcache.so
extension=openssl.so
extension=pdo_mysql.so
extension=pdo_odbc.so
extension=pdo_pgsql.so
extension=pdo_sqlite.so
extension=pgsql.so
extension=phar.so
extension=posix.so
extension=pspell.so
extension=shmop.so
extension=snmp.so
extension=soap.so
extension=sockets.so
extension=sqlite3.so
extension=sysvmsg.so
extension=sysvsem.so
extension=sysvshm.so
extension=tidy.so
extension=xmlrpc.so
extension=xsl.so
extension=zip.so
extension=apcu.so
extension=memcache.so
extension=imagick.so
* Menonaktifkan `expose_php` pada `php.ini`
* Buat Authentication pada Github (<a href="https://situsali.com/menghilangkan-authentication-github-pada-composer/">Menghilangkan Authentication Github pada Composer</a>).

Cara Instal Yii 2

Ada dua cara menginstal Yii2 ini yakni; cara pertama (disarankan ) menggunakan Composer pertama-tama ambil dahulu dependensinya:

composer global require "fxp/composer-asset-plugin:1.0.0"

yii2-install

Kemudian Anda bisa melakukan dua cara berikut:

composer create-project yiisoft/yii2-app-basic _**NAMA_PROYEK_ANDA** _ 2.0.4 composer create-project yiisoft/yii2-app-advanced _**NAMA_PROYEK_ANDA** _ 2.0.4

Contohnya:

Saya ingin membuat Yii saya dengan nama yiiku, maka saya mengetik pada Terminal sebagai berikut:

composer create-project yiisoft/yii2-app-advanced yiiku 2.0.4

yii2-install3

Kemudian cara yang kedua dengan Anda unduh langsung dari Github cara ini tidak saya sarankan karena dengan cara ini Anda tidak mengetahui perkembangan Yii2 baik dari segi perbaikan bug, fitur ataupun yang lainnya. Akan tetapi hal itu tidaklah menjadi masalah jika Anda masih tahap pembelajaran :-D

Pilih salah satunya:

* <a href="https://github.com/yiisoft/yii2/releases/download/2.0.4/yii-basic-app-2.0.4.tgz">Yii 2 with basic application template</a>
* <a href="https://github.com/yiisoft/yii2/releases/download/2.0.4/yii-advanced-app-2.0.4.tgz">Yii 2 with advanced application template</a>

Tahap Cek Konfigurasi Yii2

Jika Anda sudah selesai menginstal Yii2 pada komputer Anda, langkah selanjutnya yakni tahap cek server Anda caranya:

https://localhost/_**NAMA_YII2_ANDA** _/requirements.php

Dalam contoh di sini saya telah membuat proyek Yii2 ini dengan nama yiiku maka untuk mengeceknya saya tidak ketik:

https://localhost/yiiku/requirements.php

yii2-install4

Pastikan semua keterangan Details daripada Yii2 tersebut dalam result Passed atau gampangnya berwarna hijau semua. Seperti berikut:

yii2-install5

Details

NameResultRequired ByMemo
PHP versionPassedYii FrameworkPHP 5.4.0 or higher is required.
Reflection extensionPassedYii Framework
PCRE extensionPassedYii Framework
SPL extensionPassedYii Framework
MBString extensionPassedMultibyte string processingRequired for multibyte encoding string processing.
OpenSSL extensionPassedSecurity ComponentRequired by encrypt and decrypt methods.
Intl extensionPassedInternationalization supportPHP Intl extension 1.0.2 or higher is required when you want to use advanced parameters formatting in `Yii::t()`, non-latin languages with `Inflector::slug()`, IDN-feature of `EmailValidator` or `UrlValidator` or the `yii\i18n\Formatter` class.
ICU versionPassedInternationalization supportICU 49.0 or higher is required when you want to use `#` placeholder in plural rules (for example, plural in Formatter::asRelativeTime()) in the `yii\i18n\Formatter` class. Your current ICU version is 55.1.
Fileinfo extensionPassedFile InformationRequired for files upload to detect correct file mime-types.
DOM extensionPassedDocument Object ModelRequired for REST API to send XML responses via `yii\web\XmlResponseFormatter`.
PDO extensionPassedAll DB-related classes
PDO SQLite extensionPassedAll DB-related classesRequired for SQLite database.
PDO MySQL extensionPassedAll DB-related classesRequired for MySQL database.
PDO PostgreSQL extensionPassedAll DB-related classesRequired for PostgreSQL database.
Memcache extensionPassedMemCache
APC extensionPassedApcCache
GD PHP extension with FreeType supportPassedCaptchaEither GD PHP extension with FreeType support or ImageMagick PHP extension with PNG support is required for image CAPTCHA.
ImageMagick PHP extension with PNG supportPassedCaptchaEither GD PHP extension with FreeType support or ImageMagick PHP extension with PNG support is required for image CAPTCHA.
Expose PHPPassedSecurity reasons"expose_php" should be disabled at php.ini
PHP allow url includePassedSecurity reasons"allow_url_include" should be disabled at php.ini
PHP mail SMTPPassedEmail sendingPHP mail SMTP server required