Codeigniter yang selalu 404



Singkat cerita, lagi ga mood bikin cerita.
Masalah : codeigniter yang saya intall hanya bisa menampilkan halaman default, yang di set lewat routes.php walaupun pada config.php sudah di set base_url dan index_page.
Saya ambil contoh halaman default / bawaan codeigniter, dalam kasus ini server yang digunakan adalah:

OS Ubuntu 12.04.2
apache2 2.2.22-1ubuntu1.3
php5 5.3.10-1ubuntu3.6
codeigniter 2.1.3

Diasumsikan alamat server adalah localhost, dan Codeigniter diinstall dalam folder /var/www/codeigniter. Setalah instalasi dan arahkan browser ke folder codeigniter (http://localhost/codeigniter/) maka kita akan menemukan halaman welcome (welcome_message.php) yang di load dari routes.php. Dimana halaman tersebut seharusnya bisa ditampilkan juga dengan mengarahkan URI ke http://localhost/codeigniter/index.php/welcome, namun yang ditampilkan browser adalah 404 alias page not found. Saya pikir ada setting yang salah pada config.php saya, mengikuti rekomendasi dari user guide codeigniter, saya coba mencoba mengubah satu persatu uri_protocol dari nilai default (AUTO) menjadi PATH_INFO, QUERY_STRING, REQUEST_URI, ORIG_PATH_INFO, namun tidak membuahkan hasil. Setelah googling mengenai PATH_INFO, akhirnya saya temukan bahwa si apache yang terinstall ini tidak memiliki settingan tersebut.

Solusinya adalah dengan menambahkan AcceptPathInfo On pada /etc/apache2/sites-available/default, isinya menjadi seperti ini :


<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
AcceptPathInfo On
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
AcceptPathInfo On
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
AcceptPathInfo On
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
AcceptPathInfo On
    </Directory>

</VirtualHost>

Kemudian restart apache service dengan perintah /etc/init.d/apache2 restart
Selesai :)

VPN, dengan TCP atau UDP?

Mumpung lagi sempet nulis, abis baca artikel di www.vpnanonymous.com.
Langsung aja, akan saya tuturkan perbedaan koneksi melalui protokol TCP dan UDP yang saya sendiri baru tau, dan ternyata :

Koneksi TCP lebih stabil, karena koneksi TCP mengirim paket dan memastikan paket diterima dengan mendapatkan reply, sedangkan koneksi UDP lebih cepat karena mengirimkan paket dan mengasumsikan paket telah diterima.

Jadi, untuk kestabilan koneksi dan memastikan data kita terkirim, gunakanlah protokol TCP
Untuk koneksi yang lebih cepat, gunakanlah UDP.

Prakteknya?
UDP bisa digunakan untuk voice / video over IP, atau maen game, yang kalau datanya ada yang loss, yaa.. ga penting - penting amat. Selain itu lebih baik gunakan TCP untuk menjaga kelangsungan hidup umat manusia :D

Semoga bermanfaat

Aries W.

Menggunakan nslookup

Menurut wikipedia, nslookup merupakan network administration tool (dalam command line) yang berlaku di berbagai sistem operasi, dengan meng-query DNS untuk mendapatkan nama domain, alamat IP, atau DNS record yang spesifik.

Sebagai contoh, kita akan melakukan nslookup untuk beberapa situs.
Sebelum mulai, ada beberapa "type" dalam nslookup yang akan saya gunakan

  1. A, adalah type default ketika kita tidak mengganti / set type, digunakan untuk memperoleh alamat IP
  2. CNAME, atau canonical name, merupakan alias nama dari suatu domain, misalkan domain www.cendolnesia.com bisa diakses dengan hanya mengetikan cendolnesia.com pada browser, atau dengan mengetikan nama lain.
  3. MX, atau mail exchange, sesuai namanya, digunakan untuk transaksi email
  4. NS, atau name server, untuk mendapatkan DNS dari alamat yang kita masukan
 Contoh penggunaan:

:# nslookup

> www.google.co.id
Server: 127.0.0.1
Address: 127.0.0.1#53

Non-authoritative answer:
Name: www.google.co.id
Address: 173.194.38.151
Name: www.google.co.id
Address: 173.194.38.159
Name: www.google.co.id
Address: 173.194.38.152
c
Dengan mengetikan nslookup pada terminal, kemudian kita masukan nama domain www.google.co.id, maka informasi yang muncul adalah seperti di atas. Dengan perintah sederhana seperti itu, artinya kita menggunakan type A dan server DNS default yaitu local / 127.0.0.1
Jika kita memiliki DNS server dalam jaringan lokal / intranet, hasil  nslookup akan berdasarkan pada DNS server tersebut, artinya ketika kita mengganti DNS server dangan milik google misalnya, lalu kita melakukan nslookup ke alamat yang hanya dimengerti oleh DNS server lokal, maka tidak akan mengembalikan hasil. Untuk alasan keamanan, saya tidak bisa menuliskan contohnya disini :D

Mari kita ganti DNS servernya:

>server 8.8.8.8
>server

Default server: 8.8.8.8
Address: 8.8.8.8#53

Saya mengganti DNS server ke server milik Google (8.8.8.8), kemudian mengetik "server" lagi untuk mendapatkan nama server yang digunakan, #53 menunjukan port 53 yang digunakan oleh DNS.
Sekarang saatnya bermain dengan "type".
Kita masukan perintah berikut:

Dengan type default (A):
> detik.com
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
Name: detik.com
Address: 203.190.242.69
Name: detik.com
Address: 203.190.241.43

Kita mendapatkan alamat  IP dari detik.com, jika yang dimasukan adalah www.detik.com (dengan awalan www) maka :

>www.detik.com

www.detik.com canonical name = detik.com.
Name: detik.com
Address: 203.190.241.43
Name: detik.com
Address: 203.190.242.69

Muncul cname = detik.com diikuti dengan alamat IP
Berikutnya kita ganti type dengan CNAME:


> set type=cname
> detik.com
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
*** Can't find detik.com: No answer

Authoritative answers can be found from:
detik.com
origin = ns1.detik.net.id
mail addr = sigit-is.ipv6.detik.net.id
serial = 2012110537
refresh = 1200
retry = 900
expire = 604800
minimum = 1800

Muncul keterangan no answer, karena nslookup tidak mendapatkan jawaban atas detik.com, namun jika kita menggunakan awalan www, maka keterangan yang muncul adalah seperti dibawah:

> www.detik.com
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
www.detik.com canonical name = detik.com.

Authoritative answers can be found from:



Berikutnya kita ganti typenya dengan ns:


> set type=ns
> detik.com
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
detik.com nameserver = ns1.detik.net.id.
detik.com nameserver = ns.detik.net.id.

Maka kita dapatkan DNS-nya, dimana disana tertera 2 alamat.
Yang terakhir kita coba type MX:


> set type=mx
> detik.com
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
detik.com mail exchanger = 20 ALT2.ASPMX.L.GOOGLE.com.
detik.com mail exchanger = 30 ASPMX3.GOOGLEMAIL.com.
detik.com mail exchanger = 10 ASPMX.L.GOOGLE.com.
detik.com mail exchanger = 30 ASPMX4.GOOGLEMAIL.com.
detik.com mail exchanger = 20 ALT1.ASPMX.L.GOOGLE.com.
detik.com mail exchanger = 30 ASPMX5.GOOGLEMAIL.com.
detik.com mail exchanger = 30 ASPMX2.GOOGLEMAIL.com.

Authoritative answers can be found from:
>

Kita dapatkan alamat server mailnya, disana tertera 7 alamat, dimana angka 10, 20, 30 menunjukan prioritas, semakin kecil semakin tinggi prioritasnya / menjadi alamat primer.

Tulisan ini pertama dibuat saat ujicoba menggunakan nslookup, kemungkinan besar akan mengalami perubahan seiring saya mencoba-coba :D cheers...!




Problem Setelah Migrasi 10.04 ke 12.04 #1

Salah satu masalah yang saya hadapi setelah upgrade ke versi 12.04 adalah tidak bisa menambahkan resource atau repositori baru menggunakan perintah 'add-apt-repository' maupun via GUI. Ketika menjalankan perintah 'add-apt-repository' di terminal, munculah pernyataan


Traceback (most recent call last):
  File "/usr/bin/add-apt-repository", line 8, in <module>
    from softwareproperties.SoftwareProperties import SoftwareProperties
  File "/usr/lib/python2.7/dist-packages/softwareproperties/SoftwareProperties.py", line 53, in <module>
    from ppa import AddPPASigningKeyThread, expand_ppa_line
  File "/usr/lib/python2.7/dist-packages/softwareproperties/ppa.py", line 31, in <module>
    import pycurl
ImportError: librtmp.so.0: cannot open shared object file: No such file or directory

Menurut askubuntu.com, hal tersebut dikarenakan versi  librtmp yang terinstall tidak sesuai dengan yang diperlukan, kita disarankan untuk men-downgrade ke versi sebelumnya dengan perintah



sudo apt-get install librtmp0=2.4~20110711.gitc28f1bab-1

dan, setelah downgrade selesai, saya pun dapat menambahkan repositori baru baik via CLI maupun GUI.

Koneksikan database MySQL dengan LibreOffice Base

Ini pengalaman pertama saya menggunakan aplikasi Base dari LibreOffice, saya berpikir untuk mendesain database sederhana dengan ERD (Entity Relationship Diagram). Saya menggunakan MySQL untuk menangani database, saya pikir bisa saja jika dikoneksikan dengan LibreOffice Base, namun saat pertama kali dijalankan, ternyata tidak semudah yang saya pikirkan. Base menyuguhkan saya sebuah dialog box wizard untuk membuat, membuka, atau mengoneksikan database. Karena saya ingin menggunakan database MySQL, dipilihlah opsi mengoneksikan database, pada pilihan database sudah tersedia berbagai koneksi seperti JDBC, Oracle JDBC,  Adabas D, dll. Untungnya

My Lucid Screenshot