Dig adalah tools yang berguna utk memberikan informasi suatu DNS.

contoh, kita ingin tahu, www.google.com lari ke mana saja, maka ketikkan

1
dig www.google.com +nostats +nocomments +nocmd

di lokal saya menghasilkan

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
; <<>> DiG 9.7.3 <<>> www.google.com +nostats +nocomments +nocmd
;; global options: +cmd
;www.google.com.          IN  A
www.google.com.       162 IN  A   114.121.192.42
www.google.com.       162 IN  A   114.121.192.46
www.google.com.       162 IN  A   114.121.192.48
www.google.com.       162 IN  A   114.121.192.49
www.google.com.       162 IN  A   114.121.192.53
www.google.com.       162 IN  A   114.121.192.57
www.google.com.       162 IN  A   114.121.192.59
www.google.com.       162 IN  A   114.121.192.16
www.google.com.       162 IN  A   114.121.192.20
www.google.com.       162 IN  A   114.121.192.24
www.google.com.       162 IN  A   114.121.192.26
www.google.com.       162 IN  A   114.121.192.27
www.google.com.       162 IN  A   114.121.192.31
www.google.com.       162 IN  A   114.121.192.35
www.google.com.       162 IN  A   114.121.192.37
www.google.com.       162 IN  A   114.121.192.38
google.com.       320440  IN  NS  ns4.google.com.
google.com.       320440  IN  NS  ns3.google.com.
google.com.       320440  IN  NS  ns1.google.com.
google.com.       320440  IN  NS  ns2.google.com.
ns1.google.com.       147620  IN  A   216.239.32.10
ns2.google.com.       147620  IN  A   216.239.34.10
ns3.google.com.       147620  IN  A   216.239.36.10
ns4.google.com.       147662  IN  A   216.239.38.10

Untuk menginstall dig di crunchbang, ketikkan perintah berikut

1
sudo apt-get install dnsutils 

Terkadang kita membutuhkan source code dan javadocs dari dependency yang kita gunakan di project kita. Untuk mendownload source code, lakukan perintah berikut:

1
mvn dependency:sources

Untuk mendownload javadocs, lakukan perintah berikut

1
mvn dependency:resolve -Dclassifier=javadoc

Untuk membuat Anchor Link, pertama, kita tentukan terlebih dahulu tujuan nya. Di sini, saya ingin membuat 1 link yang ketika di klik, akan menuju ke SubTitle tertentu di halaman yg sama.

1
### Resources<a id="#resources"></a>

Lalu, anggap, saya ingin membuat kata Resources, ketika di klik akan menuju ke SubTitle Resources.

1
[Resources](#resources)

pymongo adalah driver yang digunakan python untuk melakukan koneksi ke mongodb.

Berikut cara install pymongo menggunakan PIP

1
pip install pymongo

PIP adalah sebuah tools yang berguna utk install dan manage semua package yang ada di python.

Berikut cara untuk install PIP di CrunchBang

1
2
3
sudo apt-get install python-pip

sudo apt-get install build-essential python-dev

Berikut cara menampilkan versi dari package, kernel, debian, maupun crunchbang yang terinstall di environment kita.

Package

Cara ini hanya berjalan di linux turunan debian

Ketikkan perintah berikut, untuk mengetahui versi dari package yang sudah terinstall di environment kita, ganti <package_name> dengan package yang di inginkan

1
dpkg -l | grep <package_name>

contoh

1
dpkg -l | grep libc6

di environment saya akan menampilkan hasil seperti di bawah ini

1
2
ii  libc6                    2.11.3-4           Embedded GNU C Library: Shared libraries
ii  libc6-dev                2.11.3-4           Embedded GNU C Library: Development Libraries and Header Files

Kernel

Ada 2 cara untuk mengetahui versi kernel yang kita gunakan. Pertama, dengan mengetikkan perintah berikut:

1
uname -a

Perintah di atas, akan mencetak semua informasi dari kernel yang kita gunakan, di environment saya, menampilkan

1
Linux marjinal 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64 GNU/Linux

Kedua, dengan mengetikkan perintah berikut:

1
uname -r

Perintah diatas, hanya akan mencetak versi dari kernel, di environment saya, menampilkan

1
2.6.32-5-amd64

Cara kedua, sangat bermanfaat, jika kita ingin mengintall package yang membutuhkan versi kernel, contoh, kernel header, sehingga kita dapat mengetikkan

1
apt-get install linux-headers-$(uname -r)

Debian

Untuk mengetahui versi debian, ketikkan perintah berikut

1
cat /etc/debian_version

di environment saya menampilkan

1
6.0.4

Crunchbang

Untuk mengetahui versi Crunchbang, ketikkan perintah berikut

1
cat /etc/lsb-release-crunchbang

di environment saya menampilkan

1
2
3
4
DISTRIB_ID=CrunchBang
DISTRIB_RELEASE=10
DISTRIB_CODENAME=statler
DISTRIB_DESCRIPTION="CrunchBang 10 statler"

Persiapan

Sebelum mengikuti tutorial ini, berikut struktur direktori yang saya gunakan di environment saya:

  1. Application Directory: /home/hendrysuwanda/tools/mongodb
  2. Data directory: /home/hendrysuwanda/tools/mongodb/data

Linux yang saya gunakan CrunchBang 11 waldorf (64 bit), dan MongoDB yang akan saya install versi 2.4.7

Download

Untuk mendownload mongodb dengan mengetikkan command berikut:

1
cd /home/hendrysuwanda/tools

64 bit

1
wget -c http://downloads.mongodb.org/linux/mongodb-linux-x86_64-2.4.7.tgz

32 bit

1
wget -c http://downloads.mongodb.org/linux/mongodb-linux-i686-2.4.7.tgz

Install

Untuk menginstall mongodb, terlebih dahulu kita ekstrak file yang baru saja kita download.

1
$ tar -xzvf mongodb-linux-x86_64-2.4.7.tgz 

Output:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
mongodb-linux-x86_64-2.4.7/README
mongodb-linux-x86_64-2.4.7/THIRD-PARTY-NOTICES
mongodb-linux-x86_64-2.4.7/GNU-AGPL-3.0
mongodb-linux-x86_64-2.4.7/bin/mongodump
mongodb-linux-x86_64-2.4.7/bin/mongorestore
mongodb-linux-x86_64-2.4.7/bin/mongoexport
mongodb-linux-x86_64-2.4.7/bin/mongoimport
mongodb-linux-x86_64-2.4.7/bin/mongostat
mongodb-linux-x86_64-2.4.7/bin/mongotop
mongodb-linux-x86_64-2.4.7/bin/mongooplog
mongodb-linux-x86_64-2.4.7/bin/mongofiles
mongodb-linux-x86_64-2.4.7/bin/bsondump
mongodb-linux-x86_64-2.4.7/bin/mongoperf
mongodb-linux-x86_64-2.4.7/bin/mongosniff
mongodb-linux-x86_64-2.4.7/bin/mongod
mongodb-linux-x86_64-2.4.7/bin/mongos
mongodb-linux-x86_64-2.4.7/bin/mongo

Fungsi di atas untuk meng-ekstrak file mongodb*.tgz, lalu rename direktori mongodb-linux-x86_64-2.4.7 menjadi mongodb.

1
$ mv mongodb-linux-x86_64-2.4.7/ mongodb

Setting Path

Buka file ~/.bashrc lalu tambahkan

1
PATH=$PATH:$HOME/tools/mongodb/bin

di akhir file, lalu simpan.

Menjalankan service

Untuk menjalankan service mongodb, ketikkan command berikut

1
$ mongod

Untuk menyimpan file database, secara default mongodb akan menggunakan direktori /data/db, jadi ketika kita menjalankan service mongodb, direktori tersebut harus sudah tersedia, jika tidak, mongodb akan mengeluarkan error seperti ini.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
mongod --help for help and startup options
Fri Nov 15 11:14:27.190 [initandlisten] MongoDB starting : pid=4091 port=27017 dbpath=/data/db/ 64-bit host=hendrysuwanda
Fri Nov 15 11:14:27.193 [initandlisten] db version v2.4.7
Fri Nov 15 11:14:27.193 [initandlisten] git version: 0161738abf06c1f067b56a465b706efd6f4bf2aa
Fri Nov 15 11:14:27.193 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Fri Nov 15 11:14:27.193 [initandlisten] allocator: tcmalloc
Fri Nov 15 11:14:27.193 [initandlisten] options: {}
Fri Nov 15 11:14:27.193 [initandlisten] exception in initAndListen: 10296 
*********************************************************************
 ERROR: dbpath (/data/db/) does not exist.
 Create this directory or give existing directory in --dbpath.
 See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************
, terminating
Fri Nov 15 11:14:27.194 dbexit: 
Fri Nov 15 11:14:27.194 [initandlisten] shutdown: going to close listening sockets...
Fri Nov 15 11:14:27.194 [initandlisten] shutdown: going to flush diaglog...
Fri Nov 15 11:14:27.194 [initandlisten] shutdown: going to close sockets...
Fri Nov 15 11:14:27.194 [initandlisten] shutdown: waiting for fs preallocator...
Fri Nov 15 11:14:27.194 [initandlisten] shutdown: lock for final commit...
Fri Nov 15 11:14:27.194 [initandlisten] shutdown: final commit...
Fri Nov 15 11:14:27.194 [initandlisten] shutdown: closing all files...
Fri Nov 15 11:14:27.194 [initandlisten] closeAllFiles() finished
Fri Nov 15 11:14:27.194 dbexit: really exiting now

Jika kita ingin menggunakan direktori yang berbeda, kita bisa menggunakan parameter --dbpath. contoh saya ingin file database di letakkan di direktori /home/hendrysuwanda/tools/mongodb, maka ketika menjalankan command mongod, saya mengetikkan seperti ini

1
$ mongod --dbpath=$HOME/tools/mongodb

Output

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Fri Nov 15 11:19:36.444 [initandlisten] MongoDB starting : pid=4099 port=27017 dbpath=/home/hendrysuwanda/tools/mongodb 64-bit host=hendrysuwanda
Fri Nov 15 11:19:36.445 [initandlisten] db version v2.4.7
Fri Nov 15 11:19:36.445 [initandlisten] git version: 0161738abf06c1f067b56a465b706efd6f4bf2aa
Fri Nov 15 11:19:36.445 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Fri Nov 15 11:19:36.445 [initandlisten] allocator: tcmalloc
Fri Nov 15 11:19:36.445 [initandlisten] options: { dbpath: "/home/hendrysuwanda/tools/mongodb" }
Fri Nov 15 11:19:36.464 [initandlisten] journal dir=/home/hendrysuwanda/tools/mongodb/journal
Fri Nov 15 11:19:36.465 [initandlisten] recover : no journal files present, no recovery needed
Fri Nov 15 11:19:37.653 [initandlisten] preallocateIsFaster=true 21.86
Fri Nov 15 11:19:38.558 [initandlisten] preallocateIsFaster=true 15.9
Fri Nov 15 11:19:40.399 [initandlisten] preallocateIsFaster=true 15.26
Fri Nov 15 11:19:40.400 [initandlisten] preallocateIsFaster check took 3.934 secs
Fri Nov 15 11:19:40.400 [initandlisten] preallocating a journal file /home/hendrysuwanda/tools/mongodb/journal/prealloc.0
Fri Nov 15 11:19:43.011 [initandlisten]       File Preallocator Progress: 325058560/1073741824    30%
Fri Nov 15 11:19:46.218 [initandlisten]       File Preallocator Progress: 503316480/1073741824    46%
Fri Nov 15 11:19:48.070 [initandlisten] preallocating a journal file /home/hendrysuwanda/tools/mongodb/journal/prealloc.1
Fri Nov 15 11:19:50.577 [initandlisten] preallocating a journal file /home/hendrysuwanda/tools/mongodb/journal/prealloc.2
Fri Nov 15 11:19:53.753 [FileAllocator] allocating new datafile /home/hendrysuwanda/tools/mongodb/local.ns, filling with zeroes...
Fri Nov 15 11:19:53.754 [FileAllocator] creating directory /home/hendrysuwanda/tools/mongodb/_tmp
Fri Nov 15 11:19:53.765 [FileAllocator] done allocating datafile /home/hendrysuwanda/tools/mongodb/local.ns, size: 16MB,  took 0.002 secs
Fri Nov 15 11:19:53.781 [FileAllocator] allocating new datafile /home/hendrysuwanda/tools/mongodb/local.0, filling with zeroes...
Fri Nov 15 11:19:54.022 [FileAllocator] done allocating datafile /home/hendrysuwanda/tools/mongodb/local.0, size: 64MB,  took 0.24 secs
Fri Nov 15 11:19:54.025 [initandlisten] command local.$cmd command: { create: "startup_log", size: 10485760, capped: true } ntoreturn:1 keyUpdates:0  reslen:37 427ms
Fri Nov 15 11:19:54.077 [initandlisten] waiting for connections on port 27017
Fri Nov 15 11:19:54.079 [websvr] admin web console waiting for connections on port 28017

Jika mendapatkan output seperti diatas, kita sudah bisa melakukan koneksi ke mongodb

Tes koneksi

Untuk melakukan koneksi ke mongdb, ketikkan command berikut

1
$ mongo

Output

1
2
3
4
5
6
7
8
9
MongoDB shell version: 2.4.7
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
  http://docs.mongodb.org/
Questions? Try the support group
  http://groups.google.com/group/mongodb-user
> 

Tentang SSL Certificate

SSL Certificate adalah cara untuk mengenkripsi informasi situs dan membuat koneksi yang lebih aman. Selain itu, sertifikat dapan menunjukkan informasi identifikasi virtual private server untuk pengunjung situs.

Langkah 1 – Mengaktifkan SSL Module

Untuk mengaktifkan SSL Module ketikkan perintah berikut:

1
sudo a2enmod ssl

Setelah itu, restart apache:

1
sudo /etc/init.d/apache2 restart

Langkah 2 – Buat direktori baru

Kita butuh membuat direktory baru untuk menyimpan key dan cerfiticate server.

1
sudo mkdir /etc/apache2/ssl

Langkah 3 – Membuat Self Signed SSL Certificate

Untuk membuat sertifikat yang baru, ketikkan perintah di bawah ini. Kita dapat menentukan berapa lama sertifikat tersebut seharusnya tetap berlaku dengan mengubah 365 dengan jumlah hari yang kita inginkan.

1
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

Perintah di atas akan membuat key & sertifikat ke dalam direktori yang baru kita buat di langkah 2.

Perintah ini akan menampilkan field2 yang harus kita isikan, seperti di bawah ini (isi sesuai dengan keinginan kita):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:ID
State or Province Name (full name) [Some-State]:Jakarta
Locality Name (eg, city) []:Jakarta Selatan
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Hendry Suwanda
Organizational Unit Name (eg, section) []:-
Common Name (e.g. server FQDN or YOUR name) []:www.hendrysuwanda.com
Email Address []:suwanda.hendry@gmail.com

Langkah 4 – Setup Sertifikat

Buka file SSL config dengan mengetikan perintah berikut:

1
sudo vi /etc/apache2/sites-available/default

tambahkan settingan seperti di bawah ini:

1
2
3
4
5
6
7
<VirtualHost *:443>
  ServerName www.hendrysuwanda.com:443

  SSLEngine on
  SSLCertificateFile /etc/apache2/ssl/apache.crt
  SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>

Langkah 5 – Mengaktifkan VirtualHost baru

Untuk mengaktifkan VirtualHost yang baru kita buat, ketikkan perintah berikut:

1
sudo a2ensite default

Lalu restart service apache, dengan mengetikkan perintah:

1
sudo /etc/init.d/apache2 restart

Selesai, SSL Certificate sudah terpasang, untuk mencoba nya silahkan buka link https://localhost (address)

Perlengkapan

Berikut daftar tools/files yang di perlukan:

  • apache-maven-3.0.5
  • Terminal
  • wget
  • vi/vim

Langkah 1

Buka terminal dan ketikkan perintah berikut untuk melakukan download maven versi 3.0.5

1
wget -c http://apache.mesi.com.ar/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.zip

Langkah 2

Extract file maven hasil download dengan perintah berikut:

1
unzip apache-maven-3.0.5-bin.zip

Langkah 3

Selanjutnya, tambahkan direktori maven di letakkan ke system path. Ini gunanya, agar kita bisa gunakan perintah maven di direktori mana pun. Buka .bashrc menggunakan perintah berikut:

1
vi ~/.bashrc

Langkah 4

Tambahkan perintah di bawah ini, di akhir file tersebut:

1
2
3
export M2_HOME=/usr/local/maven

export PATH=${M2_HOME}/bin:${PATH}

Lalu simpan dengan tekan tombol escape, lalu :wq!

Langkah 5

Selesai, utk mengetesnya, ketikkan perintah berikut

1
mvn -version

di environment saya, muncul log berikut

1
2
3
4
5
6
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 08:51:28-0500)
Maven home: /home/marjinal/TOOLS/apache-maven-3.0.5
Java version: 1.7.0_10, vendor: Oracle Corporation
Java home: /usr/local/java/jdk1.7.0_10/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-5-amd64", arch: "amd64", family: "unix"

Jika kita telah membuat archetype, kita dapat menggunakan archetype tersebut utk membuat project, dengan mengetikkan perintah berikut:

1
mvn archetype:generate -DarchetypeCatalog=local

Maka, maven akan memberikan daftar archetype yang ada di local repository kita, seperti di bawah ini:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:2.0:generate (default-cli) @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:2.0:generate (default-cli) @ standalone-pom <<<
[INFO]
[INFO] --- maven-archetype-plugin:2.0:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: local -> project.zkoss.example-archetype (project.zkoss.example-archetype)
Choose a number: :

Kebetulan di local repo saya, masih memiliki 1 archetype. Selanjutnya, kita bisa memilih untuk menggunakan archetype yg kita inginkan.