Friday 13 May 2022

Memahami Server Requirements untuk Proses Deployment Live and Running pada Ubuntu Server 20.04

server-requirements-thumbnail

Disini kita akan membahas tentang server requirements pada Ubuntu Server 20.04.

Agar sebuah project yang di deploy bisa di publish dan berjalan tanpa adanya masalah, sebuah perangkat server membutuhkan beberapa service tertentu yang terinstal didalamnya. Prasyarat ini dikenal dengan istilah Server Requirement. Khusus untuk penggunaan framework, tiap framework memiliki persyaratan yang berbeda untuk server requirementnya agar project yang di bangun menggunakan framework tersebut bisa berjalan tanpa ada masalah.

Sebagai contoh, dibawah ini adalah server requirements yang dibutuhkan untuk menjalankan CodeIgniter 4 :

codeigniter-4-server-requirements

Terlihat pada server requirements diatas, terdapat beberapa list ekstensi yang harus tersedia pada sebuah server seperti PHP versi 7.3 dengan beberapa ekstensi pendukung lainnya seperti :
  • intl
  • json
  • mbstring
  • mysqlnd
  • xml
  • libcurl
  • MySQL Database version 5.1+
Agar sebuah project yang dibuat dengan framework CodeIgniter 4 bisa berjalan pada sebuah server, kita wajib untuk memenuhi persyaratan server requirement diatas.

Kalian bisa mengecek ekstensi pada service php server kalian menggunakan perintah :

php -m

Mengacu pada server requirement diatas, umumnya untuk ekstensi json, mbstring, mysqlnd dan xml sudah otomatis aktif jika kalian sudah melakukan setting konfigurasi web server, sedangkan untuk ekstensi intl dan libcurl harus kita install terlebih dahulu. Kemudian untuk MySQL database yang diperlukan adalah versi 5.1 keatas.
1. php-intl
Untuk menginstal ekstensi php-intl, kalian bisa mengetikan perintah :

sudo apt-get install -y php-intl

Output :
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
php7.4-intl
The following NEW packages will be installed:
php-intl php7.4-intl
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 128 kB of archives.
After this operation, 542 kB of additional disk space will be used.
Get:1 http://id.archive.ubuntu.com/ubuntu focal-updates/universe amd64 php7.4-intl amd64 7.4.3-4ubuntu2.10 [126 kB]
Get:2 http://id.archive.ubuntu.com/ubuntu focal/universe amd64 php-intl all 2:7.4+75 [2,012 B]
Fetched 128 kB in 1s (223 kB/s)
Selecting previously unselected package php7.4-intl.
(Reading database ... 150088 files and directories currently installed.)
Preparing to unpack .../php7.4-intl_7.4.3-4ubuntu2.10_amd64.deb ...
Unpacking php7.4-intl (7.4.3-4ubuntu2.10) ...
Selecting previously unselected package php-intl.
Preparing to unpack .../php-intl_2%3a7.4+75_all.deb ...
Unpacking php-intl (2:7.4+75) ...
Setting up php7.4-intl (7.4.3-4ubuntu2.10) ...
Creating config file /etc/php/7.4/mods-available/intl.ini with new version
Setting up php-intl (2:7.4+75) ...
Processing triggers for libapache2-mod-php7.4 (7.4.3-4ubuntu2.10) ...
Processing triggers for php7.4-cli (7.4.3-4ubuntu2.10) ...

Terlihat pada output diatas, sudah terinstall ekstensi php-intl versi 7.4, yang artinya sudah memenuhi server requirements.

2. php-libcurl
Selanjutnya kita instal ekstensi libcurl pada service apache kita, ketikan perintah :

sudo apt install curl

Output :
Reading package lists... Done
Building dependency tree       
Reading state information... Done
curl is already the newest version (7.68.0-1ubuntu2.11).
curl set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Terlihat pada outputnya, untuk ekstensi curl ternyata sudah terinstall untuk versi 7.68.0. Sekarang kita cek dimana ekstensi libcurl itu terinstal, ketikan perintah :

which curl

Output :
/usr/bin/curl

Kemudian kita akan coba akses ekstensinya dengan mengetikan perintah :

curl

Output :
curl: try 'curl --help' or 'curl --manual' for more information

Jika kalian mendapatkan output seperti diatas, maka ekstensi curl sudah sepenuhnya terinstall. Kita akan mengecek versi dari ekstensi libcurl yang terinstal dengan mengetikan perintah :

curl --version

Output :
curl 7.68.0 (x86_64-pc-linux-gnu) libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3
Release-Date: 2020-01-08
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS brotli GSS-API HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets

Terlihat ekstensi libcurl yang terinstal adalah versi 7.68, yang artinya sudah memenuhi server requirements.

3. MySQL Version 5.3+
Untuk mengecek versi dari MySQL yang terinstal, kita bisa menggunakan perintah :

mysqld --version

Output :
/usr/sbin/mysqld  Ver 8.0.29-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))

Terlihat pada output diatas, mysql yang terinstal adalah versi 8.029, yang artinya sudah memenuhi server requirements.

Kesimpulan :
Dengan memahami server requirements, membuat kita sebagai seorang sysadmin menjadi semakin siap dalam mempersiapkan sebuah server untuk live and running sebuah project. Jika kita mengecek kembali daftar ekstensi yang aktif pada service php server kita menggunakan perintah :

php -m

Output :
[PHP Modules]
bz2
calendar
Core
ctype
curl
date
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
hash
iconv
intl
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zip
zlib
 
[Zend Modules]
Zend OPcache

Terlihat pada daftar ekstensinya, kita sudah memenuhi daftar ekstensi yang diperlukan untuk server requirementsnya dan server kita sudah siap untuk digunakan sebagai production server.
Seperti itu tadi pembahasan kita tentang Server Requirements. Semoga ilmu yang kalian dapat dari pembahasan kita kali ini bisa bermanfaat untuk kalian semua. Terima kasih.
Previous Post
Next Post

Penulis blog dan atlet balap karung Indonesia, lahir di Jakarta 6 Juni. Sedang membentuk pasangan wanita yang manis, berpenampilan dinamis, tidak berkumis, tapi mirip artis.

0 comments: