Archive for the 'tutorial' Category

Catatan Ngoprek dari Rumah Sakit

Jadi ceritanya, saya ditelpon Pak Kun, server yang setahun lalu saya pasangi CentOS 5.8 mulai macet. Muncul pesan galat saat membuka terminal baru, ‘There was an error creating the child process for this terminal’ yang berbuntut panjang; tidak bisa ssh, scp dan lainnya. Akar masalahnya karena /dev/pts tidak bisa di-mount dengan benar. Tapi anehnya, masalah tersebut hilang setelah saya mengomentari baris /dev/pts di fstab. Mungkin langkah mount sudah dimasukkan ke dalam proses booting di luar fstab. Masalah usai. Tapi tetap saja, Pak Kun dan Pak Maman minta pasang ulang.

Saya bawa DVD CentOS 5.8 yang sama dengan tahun lalu, setelah database dibackup (dengan susah payah) ke server cadangan lain, saya memasang ulang. Setelah kitar 2 jam ngalor ngidul sambil nungguin proses update ke 5.10 (Cepul datang juga sebentar terus ngilang), saya menyesal tidak membackup berkas-berkas konfigurasi penting, terutama konfigurasi BIND yang njelimet (itu sebabnya saya catat di sini).

Panduan garis besarnya, saya bergantung pada catatan di http://server-world.info/en/, sangat membantu.

Partisi

Dulu partisinya hanya satu. Sekarang dipisah, root dan var (partisi lebih besar, berkas aplikasi web dan database berada di bawah /var), ah, dan sedikit SWAP.

MySQL dan PHPMyAdmin

Karena CentOS 5.8 sudah termasuk jadul dan versi PHP-nya juga jadul, mau tidak mau PHPMyAdmin-nya (programmernya bergantung pada front-end ini) juga jadul, semaksimal yang bisa saya pasang yaitu versi 2.11.

Apache dan PHP

Masalah kedua muncul pada opsi register global. Jika anda yakin sudah menambahkan parameter register_globals on di berkas php.ini namun tidak berpengaruh apa pun , silakan letakkan baris di bawah ini di berkas httpd.conf :

php_flag register_globals on

Btw secara keamanan, mengaktifkan register_globals tidak disarankan. Tapi kalau aplikasinya sudah jadi dan bergantung pada itu, apa boleh buat. Fitur ini sudah dihapus di PHP sejak versi 5.4.

Setelan waktu

Saya bergantung pada layanan NTP dari LIPI, tinggal masukkan parameter ntp.kim.lipi.go.id di berkas /etc/ntpd.conf. Masalah waktu ini terlambat diurus alias lupa, sehingga menyebabkan data yang di-entry selama hampir dua hari jadi acak kadul dan merepotkan (maaf pak kun, ahem).

DNS

Agar petugas rumah sakit bisa langsung mengakses aplikasi dari domain, BIND diperlukan. Saya mengikuti panduan dari sini , penjelasannya begitu terang dan paling mudah dari panduan manapun yang pernah saya temukan di internet.

Firewall

DNS bekerja sempurna dari server itu sendiri, tapi tidak bisa digunakan oleh komputer lain dalam satu jaringan, maka anda perlu membukakan pintu firewall untuk port 53.

Aktifkan semua service yang diperlukan saat boot dengan

/sbin/chkconfig namaservice on

dan tambahkan parameter

onboot=yes

di berkas konfigurasi ethernet (/etc/sysconfig/network-scripts/)untuk ethernet kedua dan seterusnya, jika mau diakfitkan juga.

Selesai.

Ruangan SIRS

reblog dari http://blog.pdft.net/2013/12/catatan-ngoprek-dari-rsu-prov-ntb/

Membangun apt-web

Saya hanya menyalin tulisan dari berkas INSTALL.id.txt pada paket apt-web yang dibuat oleh Pak Fajran Imam Rusadi. Penjelasan di berkas tersebut sudah cukup baik, jadi rasanya tidak perlu menulis ulang, saya hanya menambahkan contoh konfigurasi pada apt-web.ntb.linux.or.id. Apt-web dapat diunduh di https://github.com/fajran/apt-web .

Kebutuhan
=========

1. Sistem yang terpasang apt-get. Apt-web membutuhkan apt-get dan apt-cache.
2. Web server dengan php4 (atau lebih baru)

Konfigurasi
===========

1. Atur nilai URL repositori yang akan dijadikan referensi, contoh
http://archive.ubuntu.com/ubuntu/

Buka berkas config.php dan atur nilai $_repo_mirror_base.

2. Jika Anda ingin menambah repositori baru, lakukan langkah berikut.

a. Masuk ke direktori virtual/

      $ cd virtual

b. Salin direktori “base” ke sebuah direktori baru

      $ cp -a base ubuntu-8.04-i386

c. Sunting berkas sources.list di dalam direktori tersebut.

      $ cd ubuntu-8.04-i386
      $ cat sources.list
      deb http://archive.ubuntu.com/ubuntu/ hardy main restricted universe multiverse

Pastikan menggunakan referensi URL repositori yang diatur dalam
berkas konfigurasi. Jika Anda mengubah nilainya, pastikan Anda
memperbaharui seluruh repositori yang ada.

d. Letakkan berkas “status” (/var/lib/dpkg/status) dari sebuah sitem
yang baru diinstal.
e. Perbaharui indeks.

      $ apt-get -c apt.conf update

f. Perbaharui berkas konfigurasi config.php. Tambahkan repositori baru
dalam variabel $_repo_list.

      $_repo_list = array(
        array('repository-directory', 'Deskripsi repsitori'),
        array('ubuntu-8.04-i386', 'Ubuntu 8.04 "Hardy Heron" i386')
      );

3. Jika Anda ingin menambah mirror baru, ubah variabel $_mirror_list dalam
berkas konfigurasi config.php

   $_mirror_list = array(
     array('http://url.mirror/ubuntu/', 'Nama Repositori'),
     array('http://kambing.ui.ac.id/ubuntu/', 'KAMBING.ui.ac.id')
   );

Tambahan

Contoh konfigurasi config.php pada http://apt-web.ntb.linux.or.id :

Update : wordpress.com menolak kode sumber php meskipun saya sudah mengapit dengan tag


. Silakan melihat contoh di http://blog.pdft.net/2013/11/membangun-apt-web/

Memasang PlanetPlanet di Shared Hosting

Saya berniat membuat feed aggregator untuk blog teman-teman Kaipang dan mencoba plugin-plugin dari wordpress. Tapi tidak ada yang sesimpel, sebagus, dan terutama sekhas planet dengan hackergotchi-nya. Rata-rata, komunitas perangkat lunak terbuka mempunyai feed aggregator sendiri untuk blog pengembangnya dan mereka menggunakan planet. Misal seperti :

dan lain sebagainya.

Yep, planet.ntb.linux.or.id sudah up! Belum keren benar sih, CSS-nya belum dibenahin.

Planet dapat diunduh di http://planetplanet.org. Pasang/unggah berkas-berkas planet ke server anda, ke path yang dikehendaki. Planet berbasis python dan pada mulanya saya mengira script python tersebut mesti dijalankan via browser, seperti halnya django. Ternyata tidak demikian. Terberkatilah otak saya yang bego ini.

Cara kerja planet adalah, kita mengkonfigurasi berkas config.ini, melengkapinya dengan umpan rss yang ingin kita kumpulkan, membuat cron job untuk menjalankan script planet yang mana akan meng-generate sebuah berkas html yang sudah lengkap dengan kumpulan umpan RSS. Berkas html itulah yang dikonsumsi publik.

Di shared hosting, python memang tidak tertulis sebagai fitur di cpanel, tapi mengingat betapa python sudah menjadi dependensi yang hampir selalu ada di setiap distribusi GNU/Linux, terutama server, maka bisa dipastikan, pada shared hosting tersebut python bisa dijalankan, meski pun tidak secara langsung.

Di shared hosting saya, juga tidak disediakan fitur akses shell. Jadi satu-satunya jalan adalah saya mencoba menjalankan perintah python tersebut di fitur cron dan menunggu outputnya via email.

Saya menggunakan perintah berikut untuk dicron setiap 12 jam.

python /home/username/public_html/planet/planet.py /home/username/public_html/planet/examples/fancy/config.ini.

Awalnya, karena tidak sabaran, saya men-set cron untuk berjalan setiap menit supaya bisa lihat langsung hasilnya. Akibatnya fatal, CPU load-nya full terus dan situs menjadi sulit diakses, termasuk cpanel. Jadi untuk testing-lihat-langsung, saya kira interval 3-5 menit sudah cukup. Mesti sabar. 😛

Satu lagi catatan untuk konfigurasi planet pada berkas config.ini, mengganti setiap path di berkas tersebut dengan path absolute adalah sangat disarankan. Pada kasus saya, tanpa melakukannya, skrip planet.py hasilnya random, kadang berhasil kadang gagal (gagal mendeteksi berkas yang diperlukan). Konfigurasi selebihnya sudah dijelaskan dengan gamblang pada komentar di berkas config.ini.

Contoh output cron yang berhasil dan saya terima di email :

DEBUG:planet.runner:Socket timeout set to 50 seconds
INFO:planet.runner:Loading cached data
INFO:planet:Feed <http://doomplo.linux-id.net/feeds/posts/default> unchanged
INFO:planet:Updating feed <http://amrinz.wordpress.com/feed/>
DEBUG:planet:Last Modified: 2013-09-30T08:33:24+00:00
DEBUG:planet:Items in Feed: 8
INFO:planet:Feed <http://blog.pdft.net/feed/> (formerly <http://blog.pdft.net/feed>) unchanged
INFO:planet:Updating feed <http://furkan.dompu.info/feeds/posts/default>
DEBUG:planet:E-Tag: W/"D0YGR3k4cCl7ImA9Wh5SGUk."
DEBUG:planet:Last Modified: 2013-10-16T17:38:46+00:00
DEBUG:planet:Items in Feed: 25
INFO:planet:Feed <http://blackclaw.wordpress.com/feed/> unchanged

INFO:planet.runner:Processing template /home/username/public_html/planet/index.html.tmpl
INFO:planet.runner:Writing /home/username/public_html/planet/index.html
INFO:planet.runner:Processing template /home/username/public_html/planet/examples/atom.xml.tmpl
INFO:planet.runner:Writing /home/username/public_html/planet/atom.xml
INFO:planet.runner:Processing template /home/username/public_html/planet/examples/rss20.xml.tmpl
INFO:planet.runner:Writing /home/username/public_html/planet/rss20.xml
INFO:planet.runner:Processing template /home/username/public_html/planet/examples/rss10.xml.tmpl
INFO:planet.runner:Writing /home/username/public_html/planet/rss10.xml
INFO:planet.runner:Processing template /home/username/public_html/planet/examples/opml.xml.tmpl
INFO:planet.runner:Writing /home/username/public_html/planet/opml.xml
INFO:planet.runner:Processing template /home/username/public_html/planet/examples/foafroll.xml.tmpl
INFO:planet.runner:Writing /home/username/public_html/planet/foafroll.xml

Kemudian silakan dicek berkas html yang berhasil di-generate. 🙂

Mas Willy Permana atas bisikannya yang sakti. 😀

Repost dari :
[0] http://blog.pdft.net/2013/10/memasang-planetplanet-di-shared-hosting/

Build System untuk freepascal di Sublime Text

Meskipun hasil kompilasinya kadang-kadang berbeda dengan turbo pascal (yang bahkan sudah discontinued) yang dipakai dan disarankan oleh dosen, saya bersikeras tetap menggunakan fpc (freepascal) dan berusaha mencari lingkungan yang nyaman untuk itu.

Pilihan pertama jatuh pada Geany, yang secara default mendukung fpc plus tombol “compile” dan “run”-nya yang mudah dijangkau. Tapi lagi-lagi saya jatuh cinta pada Sublime-text, terutama pada kesederhanaan dan fitur distraction mode-nya. Sublime-text mendukung sintaks pascal namun secara default tidak mendukung kompilasi langsung. Untungnya Sublime-text sangat fleksiblel, menyediakan fitur untuk membuat lingkungan build sendiri dengan dukungan regex. Setelah baca-baca dokumentasi dan otak-atik sedikit, jadilah ini.

{
“cmd”: [“fpc”, “$file”],
“file_regex”: “^[ ]*File \”(…*?)\”, line ([0-9]*)”,
“selector”: “source.pascal”
}

Simpan di ~/.config/sublime-text-3/Packages/User/ dengan ekstensi *.sublime-build, misal fpc.sublime-build. Berikutnya tinggal dipilih di Tools>Build System>fpc. Jalan pintas kompilasi dengan kombinasi tombol Ctrl+B dan eksekusi hasilnya via terminal.

Referensi :

[0] : http://sublimetext.info/docs/en/reference/build_systems.html

repost dari http://blog.pdft.net/2013/10/build-system-untuk-freepascal-di-sublime-text/


RSS Linux Tutorial

  • Sebuah galat telah terjadi; umpan tersebut kemungkinan sedang anjlok. Coba lagi nanti.

Sahabat Kaipang


%d blogger menyukai ini: