Untuk aplikasi enterprise, Yii Framework bisa menjadi pertimbangan untuk Developer, selain karena memiliki banyak fitur dan ekstensi Yii juga memiliki Release Cycle yang cocok untuk perusahaan, contoh seperti Yii masih tetap di support sampai akhir 2021, sekitar 11 tahun setelah Yii 1.1 dirilis.
Life cycle yang sama juga akan digunakan untuk Yii 2 yang di rilis pada 2014, kemungkina akan masih di support sampai 2025, bila benar isu yang beredar bahwa Yii 3 akan dirilis di tahun 2020 ini.
Di tutorial ini saya akan menggunakan domain yii.jaranguda.com
, ingat untuk menggantinya dengan nama domain anda. Agar SSL bisa digenerate, pertama setting A record domain anda ke IP server
yii.jaranguda.com. 3600 IN A IP-SERVER
Install PHP 7.4
Di Ubuntu 20.04 versi PHP bawaan adalah 7.4, kita akan menggunakan versi ini. Selain sudah tersedia di repository Ubuntu, Yii Framework juga mendukungnya.
sudo apt-get install php php-gd php-xmlrpc php-fpm php-curl php-intl php-imagick php-mysql php-zip php-xml php-mbstring php-bcmath -y
Install MariaDB Database Server
Sebagai databasenya install MariaDB, bagi yang belum tau MariaDB itu kompatibel dengan MySQL. Di hampir semua distro Linux sudah tersedia MariaDB
sudo apt install mariadb-server -y
Buat User dan Database untuk Yii Framework
Ditahap ini kita akan membuat user dan database untuk aplikasi Yii Framework yang akan kita buat. Sangat direkomendasikan untuk membuat user yang berbeda tiap aplikasi yang dibuat, agar lebih aman. Tahapannya sebagai berikut
1. Login sebagai root mysql
sudo mysql
2. Buat database dengan nama yiiframework
create database yiiframework;
3. Buat user baru dengan nama yiiframework dan berikan akses penuh ke database laravel8.
GRANT ALL PRIVILEGES ON yiiframework.* TO "yiiframework"@"localhost" IDENTIFIED BY "PASSWORD-AMAN";
Setting SSL
Ada beberapa SSL yang bisa digunakan gratis, Lets Encrypt, BuyPass.com dan ZeroSSL. Disini kita akan menggunakan Lets Encrypt dengan menggunakan acme.sh untuk otomatisasi prosesnya.
1. Login sebagai root user
sudo su -
2. Install acme.sh
Install acme.sh dengan cara
apt install socat curl https://get.acme.sh | sh
Pertama kali setelah menginstall acme.sh
, reload konfigurasi .bashrc agar perintah acme.sh dikenali oleh shell.
source ~/.bashrc
3. Generate SSL
Sebelum menggenerate, matikan service nginx, karena kita akan menjalankan http dari socat
untuk mempermudah instalasi SSL Lets Encrypt.
# matikan service nginx systemctl stop nginx # generate SSL untuk domain acme.sh --issue -d yii.jaranguda.com --standalone # jalankan service nginx systemctl start nginx
Install Nginx Web Server
Nginx bisa dibilang sangat populer beberapa tahun belakangan ini, selain karena kecepatannya, juga karena kemudahan konfigurasinya dibandingkan dengan Apache web server. Sewaktu menginstall PHP 7.4 diatas, Ubuntu otomatis menginstall package apache2
dan menjalankannya. Untuk itu harus matikan service apache dan jalankan nginx.
# matikan service apache sudo systemctl disable --now apache2 # jalankan service nginx sudo systemctl enable --now nginx
Server Block Domain
Buat konfigurasi nginx untu nama domain anda, disini saya menggunakan domain yii.jaranguda.com
cat >/etc/nginx/sites-enabled/yii.jaranguda.com.conf <<'EOL' server { listen 80; server_name yii.jaranguda.com; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name yii.jaranguda.com; root /var/www/html/yii.jaranguda.com/web; index index.php index.html; ssl_certificate /root/.acme.sh/yii.jaranguda.com/fullchain.cer; ssl_certificate_key /root/.acme.sh/yii.jaranguda.com/yii.jaranguda.com.key; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php(?:$|/) { fastcgi_split_path_info ^(.+?\.php)(\/.*|)$; try_files $fastcgi_script_name =404; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param modHeadersAvailable true; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_intercept_errors on; } } EOL
Restart nginx
systemctl restart nginx
Install Yii Framework
Sesuai dengan konfigurasi nginx diatas, kita akan meletakkan Yii di folder /var/www/html/yii.jaranguda.com
composer create-project --prefer-dist yiisoft/yii2-app-basic /var/www/html/yii.jaranguda.com
Set permission file dan folder agar bisa diakses oleh nginx dan PHP-FPM
sudo chown www-data:www-data -R /var/www/html/laravel8.jaranguda.com
Setelah selesai, sekarang buka http://namadomain