Cara Install Yii PHP Framework di Ubuntu


Yii (diucapkan Yee atau [ji:]) adalah sumber terbuka dan gratis, cepat, berkinerja tinggi, aman, fleksibel namun pragmatis, dan kerangka pemrograman web generik yang efisien untuk mengembangkan semua jenis aplikasi web menggunakan PHP.

Dalam artikel ini, Anda akan mempelajari cara memasang kerangka kerja Yii versi terbaru di rilis Ubuntu LTS (dukungan jangka panjang) untuk mulai mengembangkan aplikasi Web PHP modern.

Dukungan Platform

Yii memegang rilis Ubuntu LTS (dukungan jangka panjang) berikut:

  • Ubuntu 20.04 LTS (“Fokus”)
  • Ubuntu 18.04 LTS (“Bionik”)
  • Ubuntu 16.04 LTS (“Xenial”)

Persyaratan

  • Contoh server Ubuntu yang sedang berjalan.
  • Tumpukan LEMP dengan PHP 5.4.0 atau lebih tinggi.
  • Komposer – manajer paket tingkat aplikasi untuk PHP.

Di halaman ini

  • Menginstal Yii Framework melalui Composer di Ubuntu
  • Menjalankan Yii Menggunakan Server Pengembangan PHP
  • Menjalankan Proyek Yii dalam Produksi Menggunakan Server HTTP NGINX
  • Aktifkan HTTPS pada Aplikasi Yii Menggunakan Let's Encrypt

Ada dua cara untuk menginstal Yii, menggunakan manajer paket Composer atau dengan menginstalnya dari file arsip. Cara pertama adalah cara yang disarankan, karena memungkinkan Anda memasang ekstensi baru atau memperbarui Yii dengan satu perintah.

Menginstal Yii Framework melalui Composer di Ubuntu

Jika Anda belum menginstal Composer, Anda dapat menginstalnya menggunakan perintah berikut, yang nantinya akan menginstal Yii dan mengelola dependensinya.

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer

Setelah Anda menginstal composer, pindahlah ke direktori /var/www/html/ yang akan menyimpan file aplikasi web atau situs web Anda, lalu instal paket Yii menggunakan composer (ganti testproject dengan nama direktori aplikasi web Anda).

cd /var/www/html/
composer create-project --prefer-dist yiisoft/yii2-app-basic testproject

Menjalankan Yii Menggunakan Server Pengembangan PHP

Pada titik ini, Anda siap untuk mulai menggunakan kerangka kerja Yii untuk pengembangan. Untuk menjalankan server pengembangan PHP, pindah ke direktori testprojects (nama direktori Anda harus berbeda tergantung pada apa yang Anda tentukan di perintah sebelumnya), lalu luncurkan server pengembangan. Secara default, ini harus berjalan pada port 8080.

cd /var/www/html/testproject/
php yii serve

Untuk menjalankan server pengembangan pada port lain, misalnya port 5000, gunakan flag --port seperti yang ditunjukkan.

php yii serve --port=5000

Kemudian buka browser web Anda dan navigasikan menggunakan alamat berikut:

http://SERVER_IP:8080
OR
http://SERVER_IP:5000

Menjalankan Proyek Yii dalam Produksi Menggunakan Server HTTP NGINX

Untuk menerapkan dan mengakses aplikasi Yii dalam produksi, memerlukan server HTTP seperti NGINX, Apache/HTTPD, atau perangkat lunak server Web lain yang didukung.

Untuk mengakses aplikasi Yii tanpa mengetik port, Anda perlu membuat data A DNS yang diperlukan untuk mengarahkan domain Anda ke server aplikasi kerangka Yii Anda .

Untuk panduan ini, kami akan menunjukkan cara men-deploy aplikasi Yii dengan NGINX. Jadi, Anda perlu membuat file konfigurasi host virtual atau blok server di direktori /etc/nginx/sites-available/ untuk aplikasi Anda sehingga NGINX dapat menyajikannya.

sudo vim /etc/nginx/sites-available/testproject.me.conf

Copy dan paste konfigurasi berikut ke dalamnya (ganti testprojects.me dan www.testprojects.me dengan nama domain Anda). Tentukan juga cara NGINX akan meneruskan permintaan FastCGI ke PHP-FPM, dalam contoh ini, kita menggunakan soket UNIX (/ jalankan/php/php7.4-fpm.sock):

server {
    set $host_path "/var/www/html/testproject";
    #access_log  /www/testproject/log/access.log  main;

    server_name  testprojects.me www.testprojects.me;
    root   $host_path/web;
    set $yii_bootstrap "index.php";

    charset utf-8;

    location / {
        index  index.html $yii_bootstrap;
        try_files $uri $uri/ /$yii_bootstrap?$args;
    }

    location ~ ^/(protected|framework|themes/\w+/views) {
        deny  all;
    }

    #avoid processing of calls to unexisting static files by yii
    location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
        try_files $uri =404;
    }

    # pass the PHP scripts to FastCGI server listening on UNIX socket 
    location ~ \.php {
        fastcgi_split_path_info  ^(.+\.php)(.*)$;

        #let yii catch the calls to unexising PHP files
        set $fsn /$yii_bootstrap;
        if (-f $document_root$fastcgi_script_name){
            set $fsn $fastcgi_script_name;
        }
       fastcgi_pass   unix:/run/php/php7.4-fpm.sock;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fsn;

       #PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI
        fastcgi_param  PATH_INFO        $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fsn;
    }

    # prevent nginx from serving dotfiles (.htaccess, .svn, .git, etc.)
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }
}

Simpan file dan tutup.

Kemudian periksa kebenaran sintaks konfigurasi NGINX, jika sudah Ok, aktifkan aplikasi baru seperti gambar:

sudo nginx -t
sudo ln -s /etc/nginx/sites-available/testprojects.me.conf /etc/nginx/sites-enabled/testprojects.me.conf

Kemudian restart layanan NGINX untuk menerapkan perubahan baru:

sudo systemctl restart nginx

Kembali ke browser web Anda dan navigasikan dengan nama domain Anda.

http://testprojects.me
OR
http://www.testprojects.me

Aktifkan HTTPS pada Aplikasi Yii Menggunakan Let's Encrypt

Terakhir, Anda perlu mengaktifkan HTTPS di situs web Anda. Anda dapat menggunakan sertifikat SSL/TLS Let's Encrypt gratis (yang otomatis dan dikenali oleh semua browser web modern) atau memperoleh sertifikat dari CA komersial.

Jika Anda memutuskan untuk menggunakan sertifikat Let’s Encrypt, sertifikat tersebut dapat diinstal dan dikonfigurasi secara otomatis menggunakan alat certbot. Untuk memasang certbot, Anda perlu memasang snapd untuk memasangnya.

sudo snap install --classic certbot

Kemudian gunakan certbot untuk mendapatkan dan menginstal/mengonfigurasi sertifikat SSL/TLS gratis Anda untuk digunakan dengan server web NGINX (berikan email yang valid untuk perpanjangan dan ikuti petunjuk untuk menyelesaikan instalasi):

sudo certbot --nginx

Sekarang buka browser web Anda sekali lagi untuk mengonfirmasi bahwa aplikasi Yii Anda sekarang berjalan di HTTPS (ingat HTTP secara otomatis akan dialihkan ke HTTPS).

http://testprojects.me
OR
http://www.testprojects.me

Untuk informasi lebih lanjut seperti menghubungkan aplikasi Anda ke database, lihat dokumentasi framework Yii dari situs resmi proyek Yii. Cobalah dan bagikan pendapat Anda tentang Yii atau ajukan pertanyaan apa pun melalui formulir masukan di bawah.