Pada tutorial ini kita akan melakukan deploy project lagi, berbeda dengan tutorial sebelumnya yang hanya berupa Landing Page sederhana tanpa ada import database, untuk project deployment kali ini kita akan melakukan deploy sebuah company profile beserta dengan databasenya.
Project yang akan kita deploy adalah sebuah company profile dari website Java Web Media, kalian bisa klik disini untuk mendownload source code websitenya atau link github untuk melakukan cloning.
Untuk proses deploymentnya, kita akan menggunakan service FTP untuk memindahkan folder project websitenya ke dalam directory apache server. Lalu untuk proses import database, kita akan menggunakan PHPMyAdmin.
Untuk framework yang digunakan pada projectnya adalah CodeIgniter versi 4. Sebelum masuk ke proses deployment, kita harus memahami dulu server requirements dari framework CodeIgniter versi 4 ini agar website yang kita deploy bisa live and running pada server kita.
Jika semua persyaratan sudah terpenuhi, kita langsung mulai proses deploymentnya.
1. Make Directory Folder for the Website
Kita buka aplikasi FileZilla dan buat folder untuk website compronya pada directory /var/www/compro. Setelah itu copykan semua file dari folder project komputer client ke dalam folder compro server.
Setelah semua file sudah tercopy jangan lupa untuk mengubah permission pada folder compro server, kalian bisa klik kanan pada folder project kalian pada aplikasi FileZilla dan pilih File Permission atau kalian bisa mengetikan perintah dibawah ini pada terminal SSH :
sudo chmod -R 777 /var/www/compro
- R akan membaca seluruh isi folder dan file yang ada didalam directory folder www.
- 777 membuka permission untuk melakukan read, write, execute
Perubahan pada folder permission ini sangat penting dilakukan, jika website kalian akan diakses oleh banyak user yang melakukan CRUD (Create, Update, Delete) pada data website, maka folder permission harus dibuat full menggunakan value 777. Pastikan folder permission ini diterapkan pada semua file dan sub folder project kalian.
2. Create and Config Virtual Host File Configuration for the Website
Kembali ke pengaturan Server, sekarang kita akan buat file Virtual Host untuk website compro kita dengan IP dan PORT yang digunakan sebagai berikut :
IP : 192.168.43.111 | PORT : 8080
Kita akses directory apache2 terlebih dahulu, ketikan perintah :
cd /etc/apache2/sites-available/
Lalu kita buat file konfigurasi virtual hostnya dengan mengcopy file default .conf :
sudo cp 000-default.conf ./compro.conf
Selanjutnya kita lakukan ubahan pada file konfigurasi virtual host untuk website kita :
sudo nano compro.conf
Kemudian lakukan ubahan pada parameter :
- <VirtualHost>, tambahkan IP Publik server dan port yang akan digunakan oleh website
- Tambahkan string ServerName dan isikan ip publik server
- Ubah DocumentRoot ke directory folder website, kemudian save konfigurasinya
Jangan lupa untuk mengaktifkan file konfigurasi yang tadi sudah kita buat :
sudo a2ensite compro.conf
Kemudian lakukan ubahan pada port service apache dengan menambahkan rule listen 192.168.43.111:8080, dan terakhir kita buka firewall untuk port 8080.
Selengkapnya bisa kalian lihat pada postingan kami sebelumnya.
3. Import Database
Selanjutnya kita akan mengimport database untuk projectnya, kita akses phpMyAdmin menggunakan browser.
Buat database baru, disini kita membuat database baru dengan nama compro-ci-4. Lalu Import file sql yang ada dalam folder project ke dalam database baru, choose file dan arahkan ke folder file sql dan klik import.
Pastikan dalam proses import database tidak ada error satupun, jika menggunakan skenario pengerjaan project, kalian bisa memastikan ke pihak developer apakah database yang di import ini sudah lengkap semua atau belum.
4. Database and Additional Settings
Terakhir kita akan melakukan setting pada file App.php, Database.php dan melakukan cek pada file php.ini untuk memastikan bahwa semua ekstensi yang diperlukan pada server requirements sudah terenable semua.
Database.php
Kita akan melakukan ubahan pada file Database.php, kita sesuaikan username, password dan nama database yang sudah kita import sebelumnya.
public $default = [
'DSN' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '#########',
'database' => 'compro-ci-4',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => (ENVIRONMENT !== 'production'),
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3306,
];
App.php
Selanjutnya kita lakukan ubahan pada base URL, buka file App.php dan sesuaikan base URL dengan ip server dan port pada setingan virtual host sebelumnya.
public $baseURL = 'http://192.168.43.111:8080';
php.ini
Lalu kita juga lakukan ubahan pada file php.ini menggunakan nano yang ada di direktori /etc/php/7.4/apache2, lalu hilangkan tanda titik-koma (;) untuk mengenable ekstensi yang dibutuhkan.
extension=bz2
extension=curl
;extension=ffi
;extension=ftp
extension=fileinfo
extension=gd2
extension=gettext
;extension=gmp
extension=intl
;extension=imap
;extension=ldap
extension=mbstring
extension=exif ; Must be after mbstring as it depends on it
extension=mysqli
;extension=oci8_12c ; Use with Oracle Database 12c Instant Client
;extension=odbc
;extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
extension=pdo_sqlite
;extension=pgsql
;extension=shmop
Atau kalian bisa menggunakan perintah command line untuk mengenable modul php, pertama kita akses direktori modul phpnya :
cd /etc/php/7.4/mods-available
Ketikan ls untuk melihat list file yang ada didalam folder mods-available
bz2.ini fileinfo.ini mbstring.ini posix.ini sysvshm.ini
calendar.ini ftp.ini mysqli.ini readline.ini tokenizer.ini
ctype.ini gd.ini mysqlnd.ini shmop.ini xml.ini
curl.ini gettext.ini opcache.ini simplexml.ini xmlreader.ini
dom.ini iconv.ini pdo.ini sockets.ini xmlwriter.ini
exif.ini intl.ini pdo_mysql.ini sysvmsg.ini xsl.ini
ffi.ini json.ini phar.ini sysvsem.ini zip.ini
Kemudian gunakan format perintah dibawah ini untuk mengenable modul yang dibutuhkan :
phpenmod NAMA_MODUL
Dibawah ini adalah ekstensi yang harus di enable agar project website compro bisa berjalan pada server kalian :
- intl
- json
- mbstring
- mysqlnd
- xml
- libcurl
Jika menggunakan skenario pengerjaan project, kalian bisa konfirmasikan kembali ke pihak developer, apakah modul yang dibutuhkan sudah sesuai atau belum, semua ekstensi yang dibutuhkan sudah sama atau belum dengan kebutuhan programnya.
TEST :
Kita coba akses website yang sudah kita deploy tadi. Buka browser favorit kalian masing-masing dan ketikan url ipserver:port.
Terlihat pada gambar diatas, website bisa diakses dan kita berhasil melakukan deploy project berupa company profile ke dalam server kita.
Eits tunggu dulu, kita akan coba melakukan login ke halaman adminnya.
Terlihat pada gambar diatas, kita berhasil login ke halaman adminnya. Selanjutnya kita bisa coba untuk melakukan input data.
Terlihat pada gambar diatas, kita berhasil melakukan input data dengan menambahkan berita baru. Selanjutnya kalian bisa melakukan beberapa percobaan atau testing pada project yang sudah dideploy, untuk memastikan bahwa semua fungsinya berjalan dengan semestinya. Karena meskipun project tersebut berjalan dengan baik pada komputer lokal atau prodution, belum tentu ketika dipindahkan ke komputer server akan berjalan dengan baik juga.
Kita sebagai seorang sysadmin harus memastikan bahwa, komputer server bisa digunakan untuk menjalankan project dengan baik. Karena kita tidak mungkin memberikan komputer lokal atau production ke client kan, yang ingin kita berikan ke client adalah project websitenya yang berjalan dengan baik dan bebas dari bug atau error.
Sekian untuk tutorial project deployment ini, yang dimana kita berhasil melakukan deploy project company profile ke Ubuntu Server 20.04, semoga ilmu yang kalian dapat dari tutorial ini bisa bermanfaat untuk kalian semua. Terima kasih.
0 comments: