02 December 2013

Cara Arahkan Domain ke IP dari VPS (CentOS 6.4 64bit)

Ceritanya bermula dari penyewaan VPS (Virtual Private Server ) di http://www.cyberlie.com/ . Prosesnya begitu cepat dan bahkan  cukup dilakukan melalui handphone. Setelah diaktifkan maka mulailah utak-atik-nya. VPS nya ber OS -kan CentOS 6.4 dan terus terang masih awam sama neh OS.

Yang pertama saya lakukan adalah menginstall lighttpd dan php di servernya. Berdasarkan panduan dari Google maka webservernya pun berhasil di buat. Walaupun ada sedikit kebingungan pada saat install php -nya di bagian konfigurasi /etc/lighttpd/conf.d/fastcgi.conf yakni seharusnya sebagai berikut:

fastcgi.server             = ( ".php" =>
                               ( "localhost" =>
                                 (
                                   "socket" => "/tmp/php-fastcgi.socket",
                                   "bin-path" => "/usr/bin/php-cgi"
                                 )
                               )
                            )



Lalu tugas berikutnya adalah pembelian domain di http://www.eazysmart.com/ . Inipun berlangsung cepat dan lancar. Yang menjadi masalah adalah bagaimana menghubungkan / mengarahkan alamat domain yang telah kita daftarkan dengan alamat IP VPS -nya. Artinya begitu diketik alamat domain di browser maka akan muncul website kitanya. Nah supaya tidak bingung  dan pusing seperti guenya maka mau di sharing disini.

Yang pertama di perlukan adalah mendaftarkan nameserver di domain. Untuk itu saya mesti login ke www.eazysmart.com. Lalu di bagian pengaturan domainnya saya ubah nameservernya. Contohnya adalah:
ns1.namadomainsaya.com  dan IP -nya dimasukkan IP dari VPS kitanya.

Berikutnya adalah menginstall DNS server di VPS kitanya. Saya memakai bind sebagai DNS servernya. Untuk instalasi silahkan google lagi. Konfigurasi -nya yang akan saya sharingkan :

 /etc/named.conf 

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
    directory     "/var/named";
    dump-file     "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
    recursion yes;

    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;

    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.iscdlv.key";

    managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
    type hint;
    file "named.ca";
};
zone "namadomainsaya.com" {
    type master;
    file "namadomainsaya.com.fwd";
};
zone "1.2.3.in-addr.arpa" {
    type master;
    file "namadomainsaya.com.rev";
};

include "/etc/named.root.key";
include "/etc/named.rfc1912.zones";


Berikutnya buat file baru di var/named masing - masing adalah :

var/named/namadomainsaya.com.fwd

 $TTL 3h
@       IN      SOA     ns1.namadomainsaya.com.     admin.namadomainsaya.com. (12 4h 1h 1w 1h)
@       IN      NS      ns1.namadomainsaya.com.
namadomainsaya.com.        IN          A     xx.xx.xx.xx
ns1                                       IN          A     xx.xx.xx.xx
www                                    IN          CNAME     namadomainsaya.com.


var/named/namadomainsay.com.rev

$TTL 604800
1.2.3.in-addr.arpa.           IN      SOA     ns1.namadomainsaya.com.     admin.namadomainsaya.com. (12 4h 1h 1w 1h)
1.2.3.in-addr.arpa.           IN      NS      ns1.namadomainsaya.com.
1.2.3.in-addr.arpa.           IN      PTR     namadomainsaya.com.


 
Isikan xx.xx.xx.xx dengan IP dari VPS kitanya sedangkan namadomainsaya.com adalah contoh nama domain yang telah saya daftarkan.

Yang tak kalah penting adalah setting dari firewall/iptables di VPS-nya (CentOS 6.4):

/etc/sysconfig/iptables :

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m tcp -p tcp --dport 53 -j ACCEPT
-A INPUT -m udp -p udp --dport 53 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT


Lalu terakhir di
/etc/resolv.conf

; generated by /sbin/dhclient-script
search namadomainsaya.com
nameserver xx.xx.xx.xx


Tinggal di refresh firewall -nya dan semoga domainnya telah bisa diarahkan ke IP VPS-nya. Kalaupun belum bisa tunggu beberapa jam agar pendaftarannya telah aktif. Selamat mencoba !

NB : Terkadang Name Server-nya (ns1.namadomainsaya.com.) mesti didaftarkan juga terlebih dahulu di domain providernya selain alamat IP server VPS-nya. 

22 September 2013

OpenWrt + PHP/MySQL + Hot Potatoes = Localhost Quiz

Kali ini saya ingin berbagi pengalaman membuat Quiz dan bisa di akses melalui localhost/router. Sebelumnya saya telah terbiasa memakai Moodle untuk memberikan quiz. Tetapi Moodle tidak mungkin di install ke router saya yang kebetulan bertipe MR3020. Jadi tujuan postingan kali ini adalah solusi alternatif agar quiz tetap bisa diakses offline dan hasilnya bisa disimpan di database.

Saya anggap para pembaca sekalian sudah bisa menginstall php dan mysql server di router berbasis OpenWrt. Langkah selanjutnya adalah mendowload quizmaker berjudul Hot Potatoes di http://hotpot.uvic.ca/ . Program ini cukup sederhana dan mudah di operasikan. 


Yang pertama kita buat terlebih dahulu adalah soal/quiz yang akan kita ujikan dengan Hot Potatoes. Dengan petunjuk di http://jalt-publications.org/tlt/departments/tlt-wired/articles/700-saving-hot-potatoes-quiz-results-database , kita bisa menyimpan hasil quiz tersebut di database MySQL.

Yang perlu di perhatikan adalah beberapa baris kode yang mesti diperbaiki. Agar tidak pusing tujuh keliling, jungkir balik dan google sana-sini seperti saya, berikut ini adalah perbaikan kodenya (diberi warna merah) agar berjalan sempurna:
---------------------------
// Connect to the local database using username root and no password.
mysql_connect ("localhost", "root", "");
// Select our database named scores.
mysql_select_db ("scores");
// insert our 5 fields into the table eng101
mysql_query ("insert into eng101
(
realname,
Exercise,
Score,
Start_Time,
End_Time
)
VALUES
(
'$_POST[realname]',
'$_POST[Exercise]',
'$_POST[Score]',
'$_POST[Start_Time]'
, '$_POST[End_Time]'
)
");
//Provide some feedback to the student.
echo ("Your answers have been saved!");
------------------------

Jikalau tidak ada kesalahan maka  melalui phpMyAdmin hasil quiz akan nampak seperti gambar diatas.
Agar lebih mudah , maka kita juga bisa menampilkan isi database melalui php dengan kode sebagai berikut:
-------------------------------------
$con=mysqli_connect("localhost","root","","scores");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT * FROM eng101 ORDER BY Score DESC");

echo "
Exercise

Name

Score

Start Time

End Time

";

while($row = mysqli_fetch_array($result))
  {
  echo " ";
  echo "
" . $row['Exercise'] . "
";
  echo "
" . $row['realname'] . "
";
  echo "
" . $row['Score'] . "
";
  echo "
" . $row['Start_Time'] . "
";
  echo "
" . $row['End_Time'] . "
";
  echo "
";
  }
echo "
";

mysqli_close($con);

---------------------------------------------------------------------------
Hasil tampilan dari kode diatas sederhananya adalah sebagai berikut:
Semua file diatas tinggal di upload ke satu folder di router yang sudah terinstall OpenWrt + PHP + MySQL. Semoga ini menjadi solusi ringkas dan ringan bagi yang lagi ingin memberikan quiz melalui router OpenWrt. Contoh file diatas bisa di download di Sample.zip . Mohon maaf tampilan kode diatas kurang sempurna melalui blogspot. Silahkan lihat kode yang lebih sempurna di Sample.zip -nya. Akhir kata selamat mencoba ! .

07 August 2013

OpenWrt + Transmission = Mesin Torrent

Suka ke www.piratebay.se untuk download sesuatu? Mesti hidupkan komputer semalam suntuk untuk download file yang gede? Kalau jawabannya iya maka pengalaman saya satu ini mungkin bisa jadi pertimbangan. 


Di OpenWrt juga tersedia aplikasi untuk mendowload torrent. Berhubung daya listrik yang terpakai untuk hidupkan satu router tentunya jauh lebih kecil untuk hidupkan satu buah laptop atau desktop, maka ini bisa menjadi solusi yang hemat listrik.

Seperti biasa routernya terlebih dahulu di flash dengan OpenWrt dan sekaligus di extroot agar kapasitas penyimpanan bertambah. Setelah itu ketikkan perintah berikut di Putty :

opkg update
opkg install transmission-daemon transmission-cli transmission-remote transmission-web luci-app transmission

Selanjutnya di web interface LUCI sudah akan bertambah satu menu tambahan di bagian Service yakni Transmission. Ada beberapa konfigurasi yang mungkin perlu di utak-atik. Setelah di simpan konfigurasinya maka akan muncul tombol Open Web Interface. Nah disitulah kita bisa memasukkan link torrent yang ingin kita download. Untuk lebih jelasnya silahkan ke sini .

Ada kalanya tombol Open Web Interface -nya menghilang , jangan panik. Itu artinya aplikasi Transmission tiba-tiba stop. Aktifkan kembali dengan mengetikkan perintah berikut di Putty :

/etc/init.d/transmission restart


Semoga tombol Open Web Interface -nya kembali muncul. Selamat mencoba !