Administrasi Sistem – Operasi Dasar
258
Layanan publik dan layanan administrasi pemerintahan berbasis elektronik menawarkan akses yang mudah, murah, kenyamanan birokrasi, kecepatan dan otomasi, integrasi dan hal-hal positif lainnya. Sehingga sistem elektronik merupakan pilihan yang sulit untuk ditolak berkenaan kebutuhan urusan pemerintahan. Beberapa kendala berkenaan sumber daya manusia terkait sistem elektronik yakni kemampuan SDM dalam pengembangan dan operasi sistem elektronik. Tulisan ini beririsan dengan operasi sistem elektronik, di mana bahasan akan berkonsentrasi pada teknis pengoperasian OS (sistem operasi) dasar dalam kaitannya dengan aplikasi web.
Sistem operasi merupakan perangkat lunak. Tersusun dari serangkaian kode sumber, mekanisme/ metode yang mana berjalan di atas perangkat keras komputer. Sistem operasi dapat difungsikan sebagai sarana untuk mengoperasikan sumber daya komputer. Optimalisasi sumber daya komputer sekurang-kurangnya dapat dengan melakukan pembaharuan sistem, instalasi framework OS, instalasi utilitas di luar utilitas bawaan, dsb. Sesi pembaharuan sistem lumrahnya sudah termasuk instalasi driver komponen komputer, pemutakhiran sistem, pembaharuan keamanan sistem, instalasi dependensi OS, verifikasi instalasi, dsb.
OS ada beberapa varian. Varian OS bersumber dari vendor. OS yang paling lumrah digunakan di pemerintahan bersumber dari dua entitas, yakni Microsoft dan Linux. Masing-masing entitas memiliki produk turunannya.
Linux adalah kernel. Linux memiliki produk turunan yang disebut distro. Distro berbasis linux yang lumrah digunakan di pemerintahan yakni Ubuntu Server.
Microsoft adalah korporasi. Produk microsoft yang lumrah digunakan di pemerintahan yakni Windows OS dan Ms. Office. Layanan cloud yang dapat digunakan pemerintah semisal Microsoft Azure dan Azure Government.
Berkenaan OS opsi lain yang dapat dijumpai di pemerintahan yakni Mac. Baik melalui produk Mac OS, Mac Book, Komputer berbasis Mac OS, dsb. Layanan cloud yang dapat dipilih semisal iCloud.
Di antara varian OS, tulisan ini akan membahas tentang operasi dasar OS Linux Ubuntu. Hal tersebut didasari sekurang-kurangnya hal-hal berikut.
-
Faktor keperluan operasi layanan cloud
-
Faktor kedinamisan dan fleksibilitas anggaran
-
Faktor dukungan sumber daya berbasis open source
-
Faktor kemudahan dan kesederhanaan
Tulisan ini kurang tepat untuk
-
SDM dengan kebutuhan resource GUI (Graphical User Interface), untuk layanan cloud berbasis GUI, lebih mudah menggunakan layanan cloud microsoft.
-
Kebutuhan keamanan pada tingkatan yang lain. Untuk hal ini, varian produk semisal mac, iCloud memiliki branding yang lebih terkait keamanan.
-
SDM yang memerlukan panduan operasi sistem operasi berbasis linux tingkat lanjut.
Tulisan ini tepat untuk
-
Linux System Administrator pemula.
-
Kebutuhan teknis operasi sistem menggunakan CLI (Command Line Interface) dengan sedikit teori.
-
Kebutuhan operasi yang tersentral pada operasi layanan cloud.
Ikhtisar
-
Login
-
Privilege
-
File dan Direktori
-
Web Server
-
Firewall
-
Ownership
-
Permission Access
-
Web Apps
Pra syarat
-
Praktisi telah dapat menggunakan fasilitas virtual machine dengan sistem operasi ubuntu server.
-
Praktisi telah memiliki kredensial.
Bilamana belum, maka praktisi dapat melakukan instalasi Virtual Box dan Ubuntu Server. Bilamana ingin lakukan administrasi sistem operasi berbasis cloud maka dapat lakukan order layanan VPS pada layanan cloud hosting kepercayaan anda.
1. Login
Login merupakan aktifitas yang beririsan dengan otentikasi dan atau otorisasi. Untuk dapat login pengguna memerlukan kredensial. Kredensial berisi informasi semisal username dan password. Silahkan login pada VM (Virtual Machine) anda apabila setelah memulai OS anda sampai pada laman login.
Login lumrahnya memasukan informasi kredensial (username dan password) kemudian tekan tombol Enter. Apabila kredensial benar, maka pengguna akan di bawa pada sesi aktif pengguna.
2. Privilege
Pada sesi aktif pengguna setelah berhasil login, akan tampak informasi berkenaan privilege (simbol $ pada pangkal baris perintah). Ringkasnya privilege itu hak. $ merupakan hak user. # merupakan hak super user.
Sebelumnya, pastikan koneksi internet anda telah terhubung. Untuk tes koneksi, gunakan ping command.
$ ping 8.8.8.8
Bila terkoneksi, maka sistem akan menampilkan nilai kembalian semisal
64 bytes from 8.8.8.8: icmp_seq=1 ttl=115 time=36.3 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=115 time=36.3 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=115 time=36.3 ms
...
Bila tidak terhubung internet, maka sistem akan menampilkan kembalian semisal
From alamat-ip icmp_seq=3 Destination Host Unreachable
From alamat-ip icmp_seq=6 Destination Host Unreachable
From alamat-ip icmp_seq=9 Destination Host Unreachable
...
Untuk mengakhiri laporan nilai kembalian gunakan kombinasi keyboard
Ctrl+C
Setelah terkoneksi internet, untuk mudahnya memahami privilege, coba masukkan perintah
$ apt update
Maka seharusnya sistem tidak melakukan update system.
Sekarang masukkan command
$ sudo su
Maka sistem akan meminta informasi password. Masukkan user password anda. Seketika pangkal baris perintah berubah dari $ menjadi #.
Sekarang coba masukkan kembali perintah
# apt update
Sistem yang telah terkoneksi internet akan melakukan update sistem. Bilamana tidak ada intervensi dari entitas-entitas yang tidak diharapkan, maka seharusnya sistem anda berhasil update.
Dari praktik tersebut, kita mendapati sistem eksekusi perintah apt update pada privilege # namun tidak pada $.
Sekarang coba kembali ke privilege $ dengan gunakan command
$ exit
atau
$ su - nama-user-anda
Kemudian pada privilege $, update sistem dengan command
$ sudo apt update
Sistem akan kembali meminta masukkan password. Masukkan password dan tekan Enter.
Tampak sistem menjalankan perintah apt update dari privilege $ dimulakan dengan sudo. Maka dari percobaan tersebut, kita masuk ke dalam bahasan.
Kewenangan super user (# atau $ sudo) dalam administrasi sistem merupakan kewenangan tertinggi. Super user dapat memberikan perintah (command) apapun tanpa perlu melakukan permisi.
User ($) dalam administrasi sistem merupakan kewenangan pengguna sistem. Dalam command yang memerlukan wewenang super user, maka pada awal command, user menyematkan kata sudo. Adapun apabila user ingin melakukan perintah tanpa menyematkan sudo, maka user masuk terlebih dahulu ke mode sudoer dengan perintah
$ sudo su
Apabila dalam command, user memerlukan wewenang root maka user masuk terlebih dahulu ke mode root dengan command
$ sudo -i
atau
$ sudo -s
Apabila user belum didaftarkan ke daftar super user, maka super user mendaftarkan user ke daftar super user dengan command
# usermod -aG sudo namaPengguna1
Apabila user belum dibuat maka super user dapat membuat user dengan command
# adduser pengguna1
Apabila user ingin mengetahui login sebagai siapa, maka dapat menggunakan command
$ whoami
3. File dan Direktori
Sama seperti pada sistem operasi pada komputer yang lumrah digunakan untuk bekerja, dalam sistem ada file dan ada direktori (folder).
Untuk mengetahui posisi kita saat ini, dapat gunakan print working directory command.
$ pwd
Untuk masuk ke direktori pengguna dapat gunakan change directory command.
$ cd ~
Untuk melihat daftar file dan direktori yang mana user sedang berada di sana dapat gunakan list comamnd.
$ ls
Untuk lihat daftar file dan direktori disertai rincian dapat gunakan command
$ ls -l
Untuk lihat daftar file dan direktori disertai rincian tak terkecuali file hidden dapat gunakan command
$ ls -la
Untuk membuat direktori dapat gunakan make directory command.
# mkdir namaDirektoriLv1
# mkdir namaDirektoriLv1/namaDirektoriLv2
Untuk masuk ke direktori gunakan command
# cd namaDirektoriLv1
(coba # pwd)
Untuk mundur satu langkah ke direktori level di atasnya gunakan command
# cd ../
(coba # pwd)
Untuk masuk ke sub direktori gunakan /
# cd namaDirektoriLv1/namaDirektoriLv2
Untuk mundur dua langkah ke direktori di atasnya gunakan command
# cd ../../
Untuk auto complete gunakan tab
# cd nam(tekan tombol tab pada kata yang tidak lengkap)
Bila tidak mengetahui beberapa huruf awal untuk auto complete dapat gunakan double tab
# cd (tekan tombol tab sebanyak dua kali untuk menampilkan daftar)
Untuk menghapus direktori dapat gunakan command
# rmdir nam(tekan Tab)
Jika direktori tidak kosong, dapat gunakan
# rm -rf nam(tekan Tab)
Untuk membuat dan menampilkan file menggunakan touch-cat command bentuknya dapat semisal
# touch namaFile1.txt
# cat > namaFile2.txt
test
(akhiri dengan Ctrl+D)
# cat namaFile2.txt >> namaFile1.txt
# cat namaFile1.txt
Untuk menghapus file dapat menggunakan remove command.
# rm -f nam(tekan Tab, tulis 1 hingga 3 karakter, kemudian Tab)
Jika ingin menghapus semua file berawalkan namaFile gunakan command
# rm -f nam(tekan tab, kemudian tambahkan *)
# rm -f namaFile*
Untuk menghapus semua file dan direktori pada direktori yang mana user sedang berada di sana gunakan command
# rm -rf *
Untuk membuat dan menyunting file dapat menggunakan nano.
# nano namaFile
(akan muncul workspace penyuntingan, coba tuliskan test, kemudian untuk simpan tekan kombinasi Ctrl+O, Ctrl+M, Ctrl+X)
# cat nam(tekan tab)
Untuk gandakan file dapat gunakan copy command.
# cp nam(tekan tab) namaFileSetelahDiCopy
(coba # ls -l)
Untuk ubah nama file gunakan move command.
# mv nam(tekan tab) namaFileSetelahDiCopy
(coba # ls -l)
Untuk pindahkan file gunakan move command.
# mkdir direktori1
# mv nam(tekan tab) dir(tekan tab)
# ls -la dir(tekan tab)
4. Web Server
Web server merupakan pusat layanan berbasis web. Dapat mengacu pada perangkat lunak maupun perangkat keras. Namun konsentrasi command di bawah ini adalah mengacu pada perangkat lunak.
Pada linux, web server akan mengacu pada kata kunci apache, httpd, nginx, LAMP. Dalam praktik ini, agar sederhana, kita akan gunakan LAMP (Linux-Apache-MySQL-Php). Linux adalah kernel. Apache adalah nama salah satu web server. MySQL adalah nama salah satu DBMS (Database Management System). Php adalah bahasa pemrogramman server side scripting.
Linux diasumsikan sudah diinstal pada VM dan sudah dapat dilakukan pengadministrasian oleh user.
Apache dapat dilakukan instalasi dengan command
# apt update
# apt install apache2
Periksa status layanan apache dengan command
# systemctl status apache2
Restart layanan apache dapat gunakan command
# systemctl restart apache2
atau
# systemctl reload apache2
Stop layanan apache dapat gunakan command
# systemctl stop apache2
Start layanan apache dapat gunakan command
# systemctl start apache2
Unduh DBMS dapat dengan command
# apt install mariadb-server
Install DBMS dapat dengan command
# mysql_sec(tekan Tab)
(biarkan current password kosong, pada bagian change the root password tekan Enter, asumsikan anda isi DB root password dengan: root kemudian masukkan kembali password yang sama. Biarkan sisanya default, tekan Enter)
Login DBMS root dengan command
# mysql -u root -p
(masukkan password anda)
Tampilkan database
> show databases;
Buat database
> create database test123;
Buat DB user
> create user pengguna1@localhost identified by ‘password’;
Berikan otoritas DB kepada user
> grant all on test123.* to pengguna1@localhost identified by ‘password’;
Flush privileges
> flush privileges;
Keluar dari DB privilege
> quit
Login DB User
# mysql -u pengguna1 -p
(password: password)
Periksa apakah database yang telah dibuat DB root dapat diakses DB user
> show databases;
> use test123;
> show tables;
> quit
Instalasi Php. Instalasi php dipengaruhi oleh versi terakhir php yang dirilis dan stabil. Periksa melalui peramban web anda dengan kata kunci semisal latest stable php version. Pada tulisan ini, kita asumsikan php terakhir yang stabil dirilis adalah php versi 8.3. Install php8.3.
# apt update
# apt install ca-certificates apt-transport-https software-properties-common
# add-apt-repository ppa:ondrej/php
# apt update
# apt install php8.3
# php -v
# apt install libapache2-mod-php8.3
# systemctl restart apache2
Aktifkan esktensi php-mysql
# nano /etc/php/8.3/apache2/php.ini
Tekan kombinasi Ctrl+W, masukkan kata kunci: extension=mysqli, Enter. Temukan baris
;extension=mysqli
Bila belum menemukan, tekan kembali kombinasi Ctrl+W, sistem menyimpan kata kunci sebelumnya dalam array, sehingga tidak perlu melakukan input extension=mysqli kembali, langsung tekan Enter. Bila belum menemukan, ulangi pencarian (Ctrl+W) hingga menemukan baris
;extension=mysqli
Uncomment baris dengan menghapus ; sehingga menjadi seperti berikut
extension=mysqli
Kemudian tutup workspace dengan kombinasi
Ctrl+O, Ctrl+M, Ctrl+X
Reload web server
# systemctl reload apache2
Apabila ingin melakukan instalasi php extension untuk sistem elektronik tertentu dapat melakukan pencarian melalui peramban web dengan kata kunci semisal php extension for nama-aplikasi. Contoh
php extension for wordpress
5. Firewall
Firewal dapat digunakan untuk mengatur kontrol akses lalu lintas data. Tersedia dari sisi perangkat firewall murni, networking dan OS. Pengaturan sederhana firewall OS untuk kebutuhan operasi aplikasi berbasis web biasa, dapat mencoba simulasi berikut. Pra syarat untuk praktik ini anda telah pada privilege dengan kewenangan super user dengan ufw telah terintal.
Lihat status ufw
# ufw status
Jika belum aktif, maka aktifkan
# ufw enable
Pada kondisi default, aplikasi berbasis web memerlukan izin lalu lintas data pada protokol http atau port 80, maka buka http/ 80.
# ufw allow http
atau
# ufw allow 80
Jika anda ingin menutup akses gunakan opsi deny.
# ufw deny http
atau
# ufw deny 80
Jika ingin melihat daftar dari aplikasi berkenaan firewall gunakan command
# ufw app list
Lumrahnya untuk keperluan operasional aplikasi berbasis web biasa, http/ 80 untuk web, https/ 443 untuk web dengan SSL, ssh/ 22 untuk remote login, ftp/ 20-21 untuk transfer file. Apabila ingin melakukan eksplorasi lebih lanjut, dapat melakukan pencarian dengan kata kunci well known port numbers.
Untuk melihat status jaringan OS terkini dapat gunakan command
# netstat -tunlp
Sebaiknya system administrator mampu mengidentifikasi protokol/ port yang sedang berjalan apakah dengan mencari kecocokan protokol/ port aktif dengan well known port numbers, atau hapalan. Tutup protokol atau port yang tidak akan digunakan.
6. Ownership
Ownership yakni kepemilikan. Pada OS, terdapat aset-aset digital (file dan direktori), setiap file dan direktori, memiliki mekanisme kepemilikan. Pada aset digital yang tidak diatur kepemilikannya, maka kembali kepada kepemilikian default (root). Untuk pengaturan kepemilikan yang bukan root sebagai pemiliknya, maka mensyaratkan user. Diasumsikan user dan password-nya telah dibuat, user telah dimasukkan ke dalam sudoer (daftar super user), maka pengaturan kepemilikan dapat menggunakan command berikut.
$ sudo chown -R $USER /path-menuju-file-atau direktori
Dalam kaitannya dengan kepemilikan suatu file dan atau direktori web server, sistem linux mengenali 3 kepemilikan. Satu, root. Dua, user/grup. Tiga, www-data.
Kepemilikan pada root directory aplikasi web dapat menggunakan command berikut, contoh
$ sudo chown -R $USER:www-data /var/www/html
Bilamana privilege yang sedang digunakan adalah root, sedang command untuk konfigurasi yang diberikan adalah $USER, maka user akan didefinisikan sebagai root. Contoh command
# chown -R $USER:www-data /var/www/html
# whoami
# ls -l /var/www/html
# exit
Bilamana privilege yang sedang digunakan adalah user/group, dan command untuk konfigurasi yang diberikan adalah $USER, maka user akan didefinisikan sebagai user/group. Contoh command
$ sudo chown -R $USER:www-data /var/www/html
# whoami
# ls -l /var/www/html
Maka privilege yang sedang digunakan berpengaruh terhadap ownership apabila menggunakan inisialisasi $USER. Tanda paling mudah untuk mengenali privilege yang sedang aktif adalah simbol pada awal command. $ untuk user privilege dan # untuk root privilege. Cara lain untuk mengenali anda sebagai user atau root dengan eksekusi command whoami.
Pada CMS (misal wordpress) dengan file manager yang diatur manual, ownership yang diperlukan yakni www-data pada direktori /wp-content/uploads.
$ sudo chown -R www-data /path/ke/uploads
Namun pada framework (misal laravel) terkadang diperlukan ownership sebagai user/group untuk FTP. Sehingga user perlu ditambahkan ke user/group dari web server.
$ sudo usermod -a -G www-data $USER
$ sudo chown -R $USER:www-data /path-ke-root-directory
7. Permission Access
Permission access yakni suatu mekanisme izin kontrol akses aset digital.
Command berkenaan permission access yang cukup lumrah untuk diberlakukan pada direktori beserta sub direktorinya yakni
$ sudo chmod -R 755 nama-direktori
Sedang untuk file, sebagian sistem dapat memberlakukan 644.
Pada 755, ada tiga digit. Digit pertama adalah untuk root, digit kedua untuk user group, digit ketiga adalah untuk publik.
Perhitungan untuk satu digit, yakni rwx (read-write-executable). Read bernilai 4, write bernilai 2, sedangkan executable bernilai 1. R+W+X = 4+2+1 = 7.
7 = 4+2+1 (readable, writeable, executable)
6 = 4+2. (readable, writeable)
5 = 4+1 (readable, executable)
4 = 4 (readable)
Berikut contoh serangkaian permission yang dapat dituliskan dalam satu file otomasi untuk operasi web framework. Misal framework yang digunakan laravel dan file otomasi kita beri nama automation.sh.
cd /var/www/html/path-ke-apps-root-directory
sudo chown -R $USER:www-data .
sudo usermod -a -G www-data $USER
sudo find . -type f -exec chmod 644 {} \;
sudo find . -type d -exec chmod 755 {} \;
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache
Anda dapat mengeksekusi file otomasi tersebut dengan command sh, misal
$ sh ./automation.sh
8. Web Apps
Setelah tersedia perangkat keras, OS dapat berdiri di atas perangkat keras. Setelah tersedia OS, driver-utilitas-framework-aplikasi dapat berdiri di atas OS. Setelah aplikasi web server tersedia, akses firewall OS ke web server dapat dibuka. Setelah akses ke web server terbuka, maka aplikasi berbasis web yang telah dikembangkan pengembang dapat diletakkan di atas web server dan diakses melalui internet.
Apa aplikasi berbasis web yang dapat diletakkan di web server? Ringkasnya, umumnya, system administrator dapat meletakkan sekurang-kurangnya tiga jenis aplikasi berbasis web. Yang pertama, aplikasi web native programming language. Yang kedua, aplikasi web content management system. Yang ketiga, aplikasi web framework.
Keunggulan aplikasi jenis pertama yakni minim dependensi, sehingga penanggung jawab operasi tidak perlu terlalu risau terhadap otomasi yang mungkin dijalankan melalui dependensi sistem. Keunggulan aplikasi jenis kedua yakni tidak diperlukan keahlian coding untuk menampilkan sistem informasi untuk kapabilitas informasional/ satu arah dengan kompleksitas database hanya untuk artikel/ pewartaan. Keunggulan aplikasi jenis ketiga yakni memungkinkan untuk kapabilitas transaksional, kolaborasi dan optimum, serta menawarkan fleksibilitas untuk realisasi arsitektur database yang dapat disesuaikan dengan proses bisnis instansi, permintaan, maupun ekspektasi penyelenggara sistem elektronik.
Kelemahan aplikasi jenis pertama yakni sulit untuk bekerja bersama entitas pengembangan yang lain, pengembanganpun lama, fungsi-fungsi terkadang harus membuat sendiri, apabila pengembang diganti, maka kemungkinan pengembang lain lebih mudah membuat dari nol menggunakan model framework/ MVC yang telah lumrah digunakan skala internasional daripada memahami konsep pengembangan native web programming. Kekurangan lainnya, terlalu banyak upaya yang perlu dilakukan hanya untuk melihat landing page, berita dan dashboard, walaupun hanya web statis.
Kelemahan aplikasi jenis kedua yakni pemenuhan kebutuhan, permintaan, ekspektasi, imajinasi dari penyelenggara sistem elektronik, terbatasi oleh kapasitas fitur bawaan dan plugin. Apabila default web apps ditambah plugin tidak memenuhi kebutuhan/ permintaan/ ekspektasi, maka pilihannya tidak memenuhi ekspektasi atau migrasi ke framework (coding).
Kelemahan aplikasi jenis ketiga yakni diperlukan SDM yang familiar atau pernah melalui literasi pemrograman web dasar: html, css, php, dbms; dan literasi server OS: linux. Itupun bila tidak menggunakan bahasa/ library/ framework lain semisal: react JS, react native, angular JS, SQL lite, no SQL DB, firebase, golang, python, java, swift, dsb.
Untuk demo kita akan mencoba membuat aplikasi hello world dari ketiga jenis aplikasi tersebut. Dimulai dari yang pertama. Adapun pra syaratnya yakni anda telah memiliki peramban web yang dapat mengakses web server, yang mana web server tersebut dapat anda lakukan penyuntingan kode program. Sederhananya anda dapat gunakan VM yang digunakan untuk praktik.
Dimulai dari native web programming. Masuk ke root directory dari web server. Pada VM yakni
$ cd /var/www/html
Kosongkan web server
$ rm -rf *
Buat file index.php
$ nano index.php
Isikan
<?php
echo “Hello World”;
?>
Simpan
Ctrl+O, Ctrl+M, Ctrl+X
Jika sistem tidak menyimpan, dapat kembali ke sub bahasan Ownership dan Permission Access.
Akses aplikasi web anda di atas melalui peramban web.
Seharusnya web server tidak dapat diakses. Karena port pada firewall belum dibuka dan anda belum mendapatkan IP private.
Buka port http/ 80. Untuk melihat status jaringan yang diizinkan dan diblokir pada firewall, dapat menggunakan command
$ sudo ufw status
Jika http/ 80 belum terbuka, maka buka dengan command
$ sudo ufw allow http
atau
$ sudo ufw allow 80
(coba $ sudo ufw status, seharusnya http/ 80 telah terbuka)
Bagaimana mendapatkan IP private? Sederhanya, ubah network adapter. Langkahnya yakni
a. buka/ klik Oracle VM VirtualBox Manager
b. pada rak VM (sebelah kiri), klik kanan VM yang anda gunakan
c. klik Settings...
d. pada window yang muncul, klik Network
e. pada tab Adapter 1, bagian Attached to, pilih Host-only Adapter
f. klik tombol OK
Konsekuensi dari hal ini adalah anda mengganti network adapter untuk internet, dengan network adapter untuk akses secara lokal. Bila ingin mengembalikan fungsi network adapter untuk internet, pada poin e di atas, kembalikan ke opsi NAT.
Untuk mendapatkan informasi IP private, ketikkan command
$ hostname -I
Akses aplikasi web anda di atas melalui peramban web.
Maka seharusnya sistem menampilkan laman web dengan tulisan “Hello World”.
Sekarang beranjak ke aplikasi web content management system. Pada VM, aplikasi ini mensyaratkan web server, php, php extension, database, database user, database password, dan master instalasi.
Apabila belum aktif, aktifkan web server.
# systemctl start apache2
Cek versi php
# php -v
Apabila versi php tidak mencapai ambang batas minimum php yang disyaratkan CMS, maka anda dapat instal php ke versi php yang mencapai ambang batas minimum CMS.
Install dependensi (kembalikan network adapter ke NAT).
# ping 8.8.8.8
# apt update
# apt install ghostscript
# apt install libapache2-mod-php8.3
# apt install -y openssl php8.3-bcmath php8.3-curl php8.3-imagick php8.3-intl php-json php8.3-mbstring php8.3-mysql php8.3-xml php8.3-zip
Buat database.
# mysql -u root -p
(masukkan password)
> create database wordpress;
Buat user.
> create user wordpress@localhost identified by ‘password’;
Tetapkan privileges untuk user terhadap database
> grant all on wordpress.* to wordpress@localhost identified by ‘password’;
Flush privileges
> flush privileges;
Keluar dari DB privilege.
> quit
Unduh master instalasi.
$ cd /var/www/html
$ wget http://wordpress.org/latest.zip
Ekstrak master.
$ sudo apt install unzip -y
$ unzip latest.zip
Tetapkan ownership.
$ sudo usermod -aG www-data $USER
$ sudo chown -R $USER:www-data wor(tab)
Tetapkan permission access.
$ sudo chmod -R 775 wordpress
Lakukan instalasi wordpress dengan akses web server melalui peramban web. (ubah network adapter ke Host-only Adapter)
Masukkan kredensial sesuai kredensial DB user yang telah dibuat.
Selesaikan instalasi CMS, anda dapat memberikan judul website: Hello World.
Login. Jika telah berhasil login dan tidak ada konfigurasi lain yang ingin dilakukan, Logout.
Yang terakhir, aplikasi web framework. Pada VM, aplikasi ini mensyaratkan web server, php, php extension, database, database user, database password, composer, node.
Apabila belum aktif, aktifkan web server.
# systemctl start apache2
Cek versi php.
# php -v
Apabila versi php tidak mencapai ambang batas minimum php yang disyaratkan framework, maka anda dapat instal php ke versi php yang mencapai ambang batas minimum framework.
Install dependensi. (pastikan internet terhubung, ping 8.8.8.8)
# apt update
# apt install -y openssl php8.3-bcmath php8.3-curl php-json php8.3-mbstring php8.3-mysql php8.3-tokenizer php8.3-xml php8.3-zip php8.3-cli php8.3-sqlite3
(enable ;extension=sqlite3 seperti cara enable ;extension=mysqli)
Instal composer.
# apt update
$ cd ~
$ curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php
$ HASH=`curl -sS https://composer.github.io/installer.sig`
$ echo $HASH
$ php -r “if (hash_file(‘SHA384’, ‘/tmp/composer-setup.php’) === ‘$HASH’) { echo ‘Installer verified’; } else { echo ‘Installer corrupt’; unlink(‘composer-setup.php’); } echo PHP_EOL;”
$ sudo php /tmp/composer-setup.php –install-dir= /usr/local/bin --filename= composer
$ sudo apt install composer
$ composer
Tetapkan ownership & permission access untuk lingkungan operasi framework.
$ cd /var/www/html
$ sudo usermod -aG www-data $USER
$ sudo chown -R $USER:www-data .
$ sudo chmod -R 755 .
Lakukan instalasi framework.
$ composer create-project laravel/laravel:^11.0 example-app
atau
$ composer global require laravel/installer
$ laravel new example-app
Ubah nama direktori aplikasi.
$ mv example-app laravel
Keluarkan isi direktori public ke direktori root dari aplikasi web.
$ cd /var/www/html/laravel/public
$ cp * ../
$ cp .* ../
Lakukan pengaturan pada environment.
$ cd /var/www/html/laravel
$ nano .env
Tetapkan nilai APP_URL dengan format http://ip-vm-anda/laravel
Lakukan pengaturan pada index.php.
$ nano index.php
Ubah /../storage menjadi /storage, /../vendor menadi /vendor, /../bootstrap menjadi /bootstrap.
Simpan
Ctrl+O, Ctrl+M, Ctrl+X
Buat symbolic link untuk storage.
$ cd /var/www/html/laravel
$ php artisan storage:link
Buat otomasi untuk pengaturan default file dan direktori laravel.
$ cd /var/www/html/laravel
$ mkdir automation
$ cd automation
$ nano permission.sh
Isi dengan nilai berikut.
sudo usermod -a -G www-data $USER
cd /var/www/html/laravel
sudo chown -R $USER:www-data .
sudo chown -R $USER database
sudo find . -type f -exec chmod 644 {} \;
sudo find . -type d -exec chmod 755 {} \;
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx laravel database storage bootstrap/cache
Kemudian simpan.
Ctrl+O, Ctrl+M, Ctrl+X
Lalu jalankan otomasi.
$ sh /var/www/html/laravel/automation/permission.sh
Uji pengoperasian framework. Akses aplikasi web melalui web browser. (ubah network adapter ke Host-only Adapter)
http://ip-vm-anda/laravel
Selanjutnya kita coba lakukan instalasi otentikasi pada framework. Adapun syarat instalasi adalah database, database user, database user password, node. Pertama-tama kita inisialisasikan kredensial user.
Buat database
# mysql -u root -p
(masukkan password)
> create database laravel;
Buat user.
> create user laravel@localhost identified by ‘password’;
Tetapkan privileges untuk user terhadap database.
> grant all on laravel.* to laravel@localhost identified by ‘password’;
Flush privileges.
> flush privileges;
Keluar dari DB privilege.
> quit
Atur informasi database pada environment.
$ nano /var/www/html/laravel/.env
Tetapkan informasi database sesuai dengan yang telah dibuat sebelumnya. Pada baris DB_CONNECTION=, bila menggunakan mysql maka isi dengan nilai mysql, bila menggunakan sqlite maka isi dengan nilai sqlite. Jika telah selesai lakukan konfigurasi, simpan.
Ctrl+O, Ctrl+M, Ctrl+X
Lakukan uji koneksi ke database.
$ cd /var/www/html/laravel
$ php artisan migrate
Jika koneksi berhasil maka tidak ada notifikasi error.
Untuk node, pada percobaan di bawah akan dilakukan instalasi node versi 21.7. Untuk versi yang relevan dengan waktu anda teraktual, anda dapat lakukan pencarian dengan kata kunci latest stable node version.
$ cd ~
# apt update
# curl -sL https://deb.nodesource.com/setup_21.x -o nodesource_setup.sh
# bash nodesource_setup.sh
# apt install nodejs
# node -v
Instal otentikasi pada framework.
$ cd /var/www/html/laravel
$ composer require laravel/ui
$ php artisan ui bootstrap --auth
$ npm install
$ npm run build
Jika berhasil maka tidak ada notifikasi error.
Uji pengoperasian otentikasi. Akses aplikasi web melalui peramban web.
http://ip-vm-anda/laravel/index.php
Kemudian klik register. Isi dan selesaikan proses pendaftaran kredensial yang akan anda gunakan. Lakukan log out. Setelah berhasil log out, klik Login. Masukkan kredensial sebagaimana telah didaftarkan kemudian selesaikan proses login. Bilamana tidak ada kesalahan semisal typo atau kendala lainnya, maka sistem akan membawa anda ke laman dashboard.
Apabila antar muka laman login dan dashboard seolah tampak berhamburan, kemungkinan CSS dan JS belum terinisialisasikan pada views. Ini merupakan bahasan atau cakupan developer aplikasi web. Lumrahnya antarmuka berkenaan otentikasi dikonfigurasi secara manual.
Agar root directory dari web server langsung meneruskan ke root directory laravel, anda dapat mengubah index.php pada root directory dari web server dengan isi sebagai berikut.
<?php
header(‘Location:laravel/index.php’);
?>
Uji dengan akses root directory dari web server anda.
=======
Demikianlah bahasan seputar Administrasi Sistem Operasi Dasar. Bahasan di atas dikonsentrasikan untuk pembelajaran dasar bagi internal pemerintahan yang baru dalam penanganan pengembangan dan operasi aplikasi web pemerintahan. Sehingga orientasi bahasan yakni mengacu kepada aplikasi, pengembangan, best practice untuk sebuah hasil, bukan berorientasi pada proses, kedalaman pemahaman, tingkat keamanan di atas rata-rata, dsb.
Apabila ada kontribusi yang relevan dan dapat anda berikan yang mana sifatnya legal dan tidak mengandung informasi publik yang dikecualikan, untuk melengkapi dan dibagikan melalui artikel ini, silahkan komunikasikan ke PSDTIK (Pengembangan Sumber Daya TIK) – APTIKA DISIKOMINFO SP KUTIM (kontak atau langsung).