Ubuntu


Let’s Encrypt & Apache pada Ubuntu 16.04

Let’s Encrypt merupakan open Certificate Authority yang bersifat gratis. Layanan ini The service disediakan oleh Internet Security Research Group.

Let’s Encrypt Client/Certbot

Certbot adalah istilah untuk client yang digunakan untuk mengatur Let’s Encrypt certificates pada server.

Certbot on Ubuntu 16.04 Xenial

Pada ubuntu, package untuk certbot menggunakan nama python-letsencrypt-apache. Ketik command berikut install:

sudo apt-get install python-letsencrypt-apache

Set Up a New Cert: Apache

Sebelum menjalankan Certbot, jangan lupa untuk membuka port yang digunakan. Untuk menjalankan Certbot/Letsencrypt, jalankan command berikut kemudian ikuti langkah-langkah yang ditunjukkan pada dialog info.

sudo letsencrypt --apache

Daftar domain yang muncul berdasarkan konfigurasi pada /etc/apache2/sites-available

Renew Certificate

Test renewal:

letsencrypt renew --dry-run --agree-tos

Jika berhasil, jalankan command berikut:

letsencrypt renew --agree-tos

let’s Encrypt menyarankan menjalankan script ini dua kali sehari sebagai cron job. Sertifikat dari let’s Encrypt berlaku selama 90 hari. Renewal tidak akan dilakukan kecuali sertifikat mendekati expiry date.


Ubuntu Upgrade

  1. Backup system.
  2. Upgrade currently installed package.
    sudo apt-get update
    sudo apt-get upgrade 
    sudo apt-get dist-upgrade
  3. Use ubuntu’s do-release-upgrade tool to perform upgrade.
    sudo do-release-upgrade

apache2: Could not reliably determine the server’s fully qualified domain name

Ada yang pernah mencoba menjalankan ubuntu di perangkat android? Mungkin teman-teman yang pernah mencobanya mengalami masalah yang sama dengan yang saya alami. ketika  mencoba menginstall lamp server, muncul error “AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using ::1. Set the ‘ServerName’ directive globally to suppress this message” ketika akan menjalankan apache server.

Solusi:
tambahkan ServerName pada /etc/apache2/apache2.conf.

sudo nano /etc/apache2/apache2.conf

Pada contoh ini saya tambahkan dibawah Global configuration.

# Global configuration
#
ServerName localhost

Langkah selanjutnya, restart apache2.

sudo service apache2 restart

No directory, logging in with HOME=/

Ada yang pernah mencoba menjalankan ubuntu di perangkat android? Mungkin teman-teman yang pernah mencobanya mengalami masalah yang sama dengan yang saya alami. ketika  mencoba menginstall lamp server, muncul error “No directory, logging in with HOME=/” ketika akan menjalankan mysql server. Hal ini mungkin disebabkan karena kernel android dicompile dengan konfigurasi CONFIG_ANDROID_PARANOID_NETWORK. Masalah ini dapat diperbaiki dengan menambahkan mysql user pada aid_inet dan aid_net_raw groups.

usermod -a -G aid_inet,aid_net_raw mysql
su mysql

Langkah selanjutnya tinggal menjalankan mysql.

sudo service mysql start

Set Up Apache Virtual Hosts on Ubuntu 16.04

Virtual Hosts berguna untuk membuat banyak domain/website dalam satu alamat ip. Pada tutorial ini akan dibahas setup Virtual Hosts pada ubuntu 16.04.

Install Apache Webserver

Install apahe webserver terlebih dahulu. Disini menggunakan Lamp.

sudo apt-get install lamp-server^
sudo service mysql start
sudo service apache2 start

Setelah selesai install lamp, test apakah web server yang dibuat sudah aktif atau belum dengan cara ketik ip server pada browser. Jika sudah jalan, akan muncul tampilan seperti berikut ini:

Setup Apache Virtual Hosts

Misal domain yang akan dibuat adalah sub1.akh.al dan sub2.akh.al. Pada contoh ini digunakan sub domain dari akh.al.

  1. Buat Virtual Directory
    sudo mkdir -p /var/www/html/sub1.akh.al/public_html
    sudo mkdir -p /var/www/html/sub2.akh.al/public_html
  2. Setting Ownership dan Permissions
    sudo chown -R $USER:$USER /var/www/html/sub1.akh.al/public_html
    sudo chown -R $USER:$USER /var/www/html/sub2.akh.al/public_html

    $USER merukan user yang digunakan untuk login.
    Set permission untuk apache web root (/var/www/html/), sehingga semua user dapat membaca file yang ada di dalam directory.

    sudo chmod -R 755 /var/www/html/
  3. Buat Virtual Hosts Files
    Secara default, virtual hosts files mempunya nama 000-default.conf berlokasi di /etc/apache2/sites-available. Copy file tersebut dengan nama sub1.akh.al.conf.

    cd /etc/apache2/sites-available
    cp 00-default.conf sub1.akh.al.conf

    Ganti isi file sesua dengan domain yang digunakan.

    nano sub1.akh.al.conf
    <VirtualHost *:80>
            # The ServerName directive sets the request scheme, hostname and port that
            # the server uses to identify itself. This is used when creating
            # redirection URLs. In the context of virtual hosts, the ServerName
            # specifies what hostname must appear in the request's Host: header to
            # match this virtual host. For the default virtual host (this file) this
            # value is not decisive as it is used as a last resort host regardless.
            # However, you must set it for any further virtual host explicitly.
            #ServerName www.example.com
    
            ServerAdmin webmaster@akh.al
            ServerName sub1.akh.al
            ServerAlias www.sub1.akh.al
            DocumentRoot /var/www/html/sub1.akh.al/public_html
            <Directory /var/www/html/sub1.akh.al/public_html>
                AllowOverride all
            </Directory>
    
            # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
            # error, crit, alert, emerg.
            # It is also possible to configure the loglevel for particular
            # modules, e.g.
            #LogLevel info ssl:warn
    
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    
            # For most configuration files from conf-available/, which are
            # enabled or disabled at a global level, it is possible to
            # include a line for only one particular virtual host. For example the
            # following line enables the CGI configuration for this host only
            # after it has been globally disabled with "a2disconf".
            #Include conf-available/serve-cgi-bin.conf
    </VirtualHost>

    Buat virtual hosts file yang kedua dengan nama sub2.akh.al.conf, dan ganti isinya juga sesuai dengan domain yang akan digunakan.

    cp sub1.akh.al.conf sub2.akh.al.conf
    <VirtualHost *:80>
            # The ServerName directive sets the request scheme, hostname and port that
            # the server uses to identify itself. This is used when creating
            # redirection URLs. In the context of virtual hosts, the ServerName
            # specifies what hostname must appear in the request's Host: header to
            # match this virtual host. For the default virtual host (this file) this
            # value is not decisive as it is used as a last resort host regardless.
            # However, you must set it for any further virtual host explicitly.
            #ServerName www.example.com
    
            ServerAdmin webmaster@akh.al
            ServerName sub2.akh.al
            ServerAlias www.sub2.akh.al
            DocumentRoot /var/www/html/sub2.akh.al/public_html
            <Directory /var/www/html/sub2.akh.al/public_html>
                AllowOverride all       
            </Directory>
    
            # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
            # error, crit, alert, emerg.
            # It is also possible to configure the loglevel for particular
            # modules, e.g.
            #LogLevel info ssl:warn
    
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    
            # For most configuration files from conf-available/, which are
            # enabled or disabled at a global level, it is possible to
            # include a line for only one particular virtual host. For example the
            # following line enables the CGI configuration for this host only
            # after it has been globally disabled with "a2disconf".
            #Include conf-available/serve-cgi-bin.conf
    </VirtualHost>

    Setelah membuat virtual hosts files yang baru, non aktifkan virtual hosts files default dan aktifkan virtual hosts files yang baru.

    sudo a2dissite 000-default.conf
    sudo a2ensite sub1.akh.al.conf
    sudo a2ensite sub2.akh.al.conf

    Kemudian restart apache service

    sudo systemctl restart apache2
  4. Testing Virtual Hosts
    Untuk mencobanya, buka domain yang sudah ditambahkan dengan browser. Jika berhasil akan nampak seperti gambar dibawah ini:

Mengembalikan UEFI boot setelah install ulang windows

Karena suatu hal, kita perlu install ulang Windows sehingga boot Linux yang ada akan hilang. Pada boot yang menggunakan model UEFI, sebenarnya boot Linux tidaklah terhapus seluruhnya, melainkan hanya urutannya saja yang terhapus. Untuk mengembalikannya, dapat dilakukan dengan menggunakan live cd ataupun live usb Linux.

  1. Jalankan live cd atau live usb Linux. Untuk tutorial ini, digunakan Ubuntu 15.04.
  2. Buka terminal, kemudian install “efibootmgr”.
    sudo apt-get install efibootmgr
  3. Setelah “efibootmgr” berhasil diinstall, ketikkan “sudo efibootmgr -v” untuk mengetahui daftar boot yang ada pada komputer.
    ubuntu@ubuntu:~$ sudo efibootmgr -v
    BootCurrent: 0008
    Timeout: 0 seconds
    BootOrder: 000C,0006,0007,0008,0009,000A
    Boot0000  BIOS Setup        FvFile(721c8b66-426c-4e86-8e99-3457c46ab0b9)
    Boot0001  Boot Menu FvFile(86488440-41bb-42c7-93ac-450fbf7766bf)
    Boot0002  Diagnostic Screen FvFile(a7d8d9a6-6ab0-4aeb-ad9d-163e59a7a380)
    Boot0003  Recovery and Utility FvFile(0b150fda-3bdd-4406-9859-448177476993)
    Boot0004  Diagnostic Program FvFile(29f85733-2b1a-4821-8f61-2614778c0c73)
    Boot0005  Diagnostic Progrogram ROM VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,c0f527e7c05f4d498df59dc81ac2cfdd00)
    Boot0006* Floppy Disk Drive: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,6ff015a28830b543a8b8641009461e49)
    Boot0007* Drive0 HDD: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f600)
    Boot0008* USB HDD: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,33e821aaaf33bc4789bd419f88c50803)
    Boot0009* USB CD/DVD: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,d630a9056829ce41861e8c380ff2225a)
    Boot000A* NETWORK: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,78a84aaf2b2afc4ea79cf5cc8f3d3803)
    Boot000B* Erase Disk FvFile(43f9b080-c902-4737-b306-487050f7caa5)
    Boot000C* Windows Boot Manager HD(2,GPT,d35a43c9-1f37-4b08-a45e-e9ebff564374,0xe1800,0x31800)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
    Boot000D* ubuntu HD(2,GPT,d35a43c9-1f37-4b08-a45e-e9ebff564374,0xe1800,0x31800)/File(\EFI\ubuntu\shimx64.efi)
  4. Pada daftar diatas, boot Linux terdapat di “Boot000D*”, akan tetapi pada BootOrder tidak ada, sehingga “Boot000D*” perlu ditambahkan pada BootOrder. Untuk menambahkan BootOrder gunakan perintah sudo efibootmgr -o {list}”.
    ubuntu@ubuntu:~$ sudo efibootmgr -o 000D,000C,0006,0007,0008,0009,000A
    BootCurrent: 0008
    Timeout: 0 seconds
    BootOrder: 000D,000C,0006,0007,0008,0009,000A
    Boot0000  BIOS Setup       
    Boot0001  Boot Menu
    Boot0002  Diagnostic Screen
    Boot0003  Recovery and Utility
    Boot0004  Diagnostic Program
    Boot0005  Diagnostic Progrogram ROM
    Boot0006* Floppy Disk Drive:
    Boot0007* Drive0 HDD:
    Boot0008* USB HDD:
    Boot0009* USB CD/DVD:
    Boot000A* NETWORK:
    Boot000B* Erase Disk
    Boot000C* Windows Boot Manager
    Boot000D* ubuntu
  5. Seletah berhasil ditambahkan pada BootOrder, langkah selanjutnya adalah restart.

GDM dan LightDM pada Ubuntu 14.04

Ubuntu menggunakan LightDM sebagai default display manager. Tetapi, jika ingin kembali ke GDM bawaan gnome itu sangat mudah. Buka terminal, kemudian ketikkan perintah berikut:

sudo dpkg-reconfigure gdm

Akan dijumpai tampilan seperti berikut:

Pada tampilan selanjutnya, akan muncul pilihan display manager yang dapat digunakan.

Kemudian ok.


Mengembalikan grub yang hilang menggunakan boot-repair 2

Bagi teman-teman pengguna Linux dualboot, pasti tidak asing lagi mendengar istilah grub. Pada grub ini kita diberikan pilihan untuk memilih operating system yang akan kita gunakan. Banyak penyebab grub pada komputer kita menjadi error, salah satunya adalah karena kita install ulang windows sehingga grub tertimpa dengan  MBR windows. Banyak cara untuk mengembalikan grub tersebut, salah satunya adalah dengan menggunakan boot-repair. Berikut adalah langkah-langkah memperbaiki grub pada Ubuntu (sudah dicoba di Ubuntu 10.04 64 bit dan Ubuntu 12.04 32 bit) dengan bantuan boot-repair:
1. Booting menggunakan live CD Ubuntu.
2. Setalah masuk ke Ubuntu,buka terminal kemudian ikuti commands berikut:
– sudo add-apt-repository ppa:yannubuntu/boot-repair
– sudo apt-get update
– sudo apt-get install -y boot-repair
– boot-repair, kemudian pilih recommended repair
3. Setelah selesai, restart PC.


Auto Mount Partisi Ketika Booting pada Ubuntu

Buka terminal, kemudian ketikkan command berikut untuk mengetahu tabel partisi:

~$ sudo blkid

Contoh hasilnya:

/dev/sda1: UUID="344064B84064830A" TYPE="ntfs"
/dev/sda5: LABEL="Work" UUID="261C4E6A1C4E3559" TYPE="ntfs"
/dev/sda6: LABEL="VS" UUID="01CDA9D9EA9FF000" TYPE="ntfs"
/dev/sda7: UUID="3d8b9211-f43a-4f6f-806f-a7e4cffa81a5" TYPE="ext4"
/dev/sda8: UUID="cf0bd86c-1f85-4783-aae1-55b7e4013879" TYPE="swap"

Kemudian edit fstab dengan command:

~$ sudo gedit /etc/fstab

Kemudian tambahkan kode seperti berikut:

UUID=”261C4E6A1C4E3559    /media/Work    ntfs     defaults    0    0
UUID=”01CDA9D9EA9FF000     /media/VS    ntfs     defaults     0    0

Ganti UIID dengan yang ada di tabel partisi, dan /media/… sesuai dengan direktori target mount.

Reboot ubuntu.


Menjalankan 32bit App di 64bit pada Ubuntu

Kebanyakan distribusi linux mempunya 64bit app. Tetapi karena suatu hal terkadang tidak tersedia untuk 64bit, sehingga kita terpaksa harus memakai 32bit. Karena teknologi yang digunakan di 64bit lebih tinggi dari teknologi 32bit, kita dapat menjalankan program 32bit tanpa harus meng-install emulator. Yang perlu kita lakukan adalah meng-install  package tambahan. Untuk distribusi Ubuntu, ada package yang bernama ia32-libs. Untuk meng-install-nya, buka terminal kemudian ketikkan:

sudo apt-get install ia32-libs

Tunggu sampai instalasi selesai. Ketika meng-install package ini, akan disertai dengan meng-install beberapa package dependensi. Setelah meng-install package tersebut. Sekarang ubuntu kita sudah dapat menjalankan program 32bit.