Cara Install Yii2

yii
Standar

Oke, ini sudah menjadi draft lama banget -_-. Dari Yii Mei tahun lalu pada saat Yii2 public preview di-release. Karena sekarang bisa pake composer create-project, jadi tulis ulang deh.

First, you need composer. It’s the future of php. So, grab it from http://getcomposer.org/

Lalu create project baru.

composer create-project yiisoft/yii2-app-basic [folder baru] --prefer-dist -s dev

Sebenarnya Yii2 menyediakan dua template/skeleton untuk starting a project. Yaitu basic dan advanced. Untuk belajar, coba-coba atau project kecil-kecilan, basic lebih dari cukup.

That’s it…

Mengecek Penggunaan Storage di *nix

Standar

Overview

Saya biasa mengecek penggunaan storage di *nix dengan menggunakan command df. Contoh menggunakan df -h

Filesystem   Size    Used   Avail  Use%  Mounted on
/dev/sda5    55G     13G    40G     24%  /
dev          3.9G    0      3.9G     0%  /dev
run          3.9G    916K   3.9G     1%  /run
tmpfs        3.9G    7.6M   3.9G     1%  /dev/shm
tmpfs        3.9G    0      3.9G     0%  /sys/fs/cgroup
tmpfs        3.9G    268K   3.9G     1%  /tmp
/dev/sda7    19G     14G    3.5G    80%  /opt
/dev/sda8    95G     90G    220M   100%  /home

Tapi belakangan ini saya mulai merasa kurang nyaman. Saya butuh sesuatu yang hanya dilihat sekilas, langsung terlihat jelas. Jika menggunakan GUI, seperti gnome-system-monitor, mate-system-monitor, kdisk-free, etc agak merepotkan. Apalagi kalau menggunakan tiling window manager, dan aktivitas saya sebagian besar di terminal.

Saya coba cari di repository dengan keyword “df”, pacman -Ss df. Yup… saya menemukan pydf, dfc dan di. Berikut tampilan masing-masing:

pydf

☁  ~  pydf
Filesystem Size Used Avail Use%                                Mounted on
/dev/sda5   55G  12G   40G 22.3 [########....................] /         
/dev/sda8   95G  90G  221M 94.7 [##########################..] /home     
/dev/sda7   18G  14G 3579M 75.6 [####################........] /opt

Konfigurasi global pydf ada di /etc/pydfrc. Anda bisa menggunakan konfigurasi level user dengan cara copy ke home directory anda.

cp /etc/pydfrc ~/.pydfrc

Edit ~/.pydfrc sesuai dengan keinginan anda.

dfc

☁  ~  dfc
FILESYSTEM  (=) USED      FREE (-) %USED AVAILABLE     TOTAL MOUNTED ON 
rootfs      [======--------------]   27%     39.8G     54.9G /
dev         [--------------------]    0%      3.9G      3.9G /dev
run         [=-------------------]    0%      3.9G      3.9G /run
/dev/sda5   [======--------------]   27%     39.8G     54.9G /
tmpfs       [=-------------------]    0%      3.9G      3.9G /dev/shm
tmpfs       [--------------------]    0%      3.9G      3.9G /sys/fs/cgroup
tmpfs       [=-------------------]    0%      3.9G      3.9G /tmp
/dev/sda7   [=================---]   81%      3.5G     18.2G /opt
/dev/sda8   [====================]  100%    219.6M     94.6G /home

Konfigurasi global pydf ada di /etc/xdg/dfc/. Anda bisa menggunakan konfigurasi level user dengan cara copy ke home directory anda.

mkdir ~/.config/dfc/ -p
cp -r /etc/xdg/dfc/ ~/.config/dfc/

Edit ~/.config/dfc/dfcrc sesuai dengan keinginan anda.

di

☁  ~  di
Filesystem         Mount             Size     Used    Avail %Used  fs Type
/dev/sda5          /                54.9G    12.2G    39.8G   27%  ext4   
tmpfs              /dev/shm          3.9G     0.0G     3.9G    0%  tmpfs  
/dev/sda8          /home            94.6G    89.6G     0.2G  100%  ext4   
/dev/sda7          /opt             18.2G    13.8G     3.5G   81%  ext4   
run                /run              3.9G     0.0G     3.9G    0%  tmpfs  
tmpfs              /sys/fs/cgroup    3.9G     0.0G     3.9G    0%  tmpfs  
tmpfs              /tmp              3.9G     0.0G     3.9G    0%  tmpfs

Finally…

Setelah mencoba beberapa saat, saya langsung memutuskan untuk menggunakan dfc. Alasannya sederhana… Saat menggunakan dfc terasa lebih cepat dibandingkan menggunakan pydf. Itu wajar karena dfc dibuat dengan menggunakan bahasa C.

Gangguan setelah update Apache HTTPD 2.4 di Arch Linux

mantle-asf
Standar

Saya tidak ingat awalnya, tapi saat membuka localhost, tidak bisa. Setelah mengecek dengen systemctl status httpd, ternyata ada yang aneh. File mod_authn_default tidak dapat ditemukan. Saya cari dengan locate juga tidak ketemu :/

Setelah menelusuri /var/log/pacman.log, ternyata ada perubahan major version pada apache httpd. Dari versi 2.2 ke 2.4. Dan ada informasi untuk mengecek manual. Selama ini biasanya setiap upgrade selalu saya perhatikan package apa saja yang di-upgrade. Dan stdout yang muncul saat upgrade juga saya baca. Tapi untuk kasus kali ini, terlewat.

Solusi agar daemon dapat kembali diaktifkan sebenarnya cukup mudah. Setiap pacman melakukan upgrade dan ada perubahan file konfigurasi, otomatis akan dibuat file konfigurasi default baru yang berada di lokasi sama, dengan tambahan ekstensi .pacnew. Jadi misalnya konfigurasi apache httpd /etc/httpd/conf/httpd.conf. Maka file barunya adalah /etc/httpd/conf/httpd.conf.pacnew.

Cara paling mudah dengan me-replace langsung file lama dengan yang baru. Tapi bila anda pernah melakukan modifikasi, sebaiknya backup dulu file lama, lalu gunakan tool semacam vimdiff, meld atau kdiff untuk membandingkan sekaligus mengedit file lama.

Setelah konfigurasi diperbaharui, ternyata PHP tidak jalan. Muncul error message seperti berikut

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP.
 AH00013: Pre-configuration failed
httpd.service: control process exited, code=exited status=1

Apakah saya harus compile PHP? :/
Bisa sebenarnya. Tapi karena buru-buru, saya memilih untuk menggunakan php-fpm. Kebetulan di sistem saya juga sudah ready nginx + php-fpm. Jadi tinggal sedikit konfigurasi pada /etc/httpd/conf/httpd.conf

# PHP-FPM
<IfModule proxy_fcgi_module>
  ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/srv/http/$1 
</IfModule>

Tadaa… PHP di apache sudah bisa digunakan kembali. Sesuaikan konfigurasi php-fpm anda. Misalnya anda menggunakan port yang berbeda, atau menggunakan unix-socket.

Mungkin nanti akan ada update untuk masalah ini. Stay tune…

UPDATE (March 11, 2014)

Cara untuk load php sebagai module di Apache HTTPD sangat mudah.

Edit file /etc/httpd/conf/httpd.conf

Hapus/ubah/beri tanda comment # pada

LoadModule mpm_event_module modules/mod_mpm_event.so

Ganti dengan

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Load PHP module seperti biasa

LoadModule php5_module modules/libphp5.so
<IfModule dir_module>
  <IfModule php5_module>
    DirectoryIndex index.php index.html
    <FilesMatch "\.php$">
      SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
      SetHandler application/x-httpd-php-source
    </FilesMatch>
  </IfModule>
</IfModule>

Referensi:

Ganapatih – Sistem & Aplikasi Tanggap Bencana

Standar

Tulisan ini akan membahas tentang sebuah aplikasi yang bernama Ganapatih. Apa itu Ganapatih? Ganapatih adalah aplikasi tanggap bencana, dan sesuai dengan definisinya, aplikasinya ini memang didesain untuk membantu para korban bencana alam.

Logo Ganapatih

Aplikasi ini diprakarsai oleh Dashboard PHP Indonesia – Jogjakarta yang kemudian mengajak teman-teman programmer lainnya lintas bahasa untuk berkontribusi menyumbangkan ilmunya untuk membantu masyarakat di negara kita ini yang saat ini sedang tertimpa banyak musibah.

Bahasa pemrograman yang digunakan untuk aplikasi ini antara lain:

  • Java, untuk pengembangan aplikasi android (native)
  • PHP, untuk pengembangan website & API
  • Javascript & NodeJS untuk pengembangan realtime mapping
  • Python, untuk data processing.
  • Bash/Shell scripting, untuk manajemen server

Tools yang digunakan untuk aplikasi ini adalah :

  • PHP Framework: Laravel 4.1.x
  • UI Framework: Zurb Foundation
  • Framework JS: jQuery
  • Database: MongoDB (2.4.9)
  • Message Queue: Gearman
  • Forever (nodejs)
  • Socket.io (nodejs)
  • Python 2.7.x (pymongo, gearman)

Konsep aplikasi ini adalah sebuah aplikasi yang didesain se-simple mungkin yang ditujukan untuk user/orang awam yang sedang berada di lokasi bencana, atau dengan kata lain korban bencana alam.

Definisi korban disini bisa masyarakat awam ataupun juga relawan, atau pejabat pemerintah, atau siapapun itu yang sedang berada di lokasi bencana. Kenapa seperti ini? Karena konsep berpikir kami, siapapun itu baik pejabat, relawan, ataupun masyarakat siapapun itu bisa menjadi korban bencana alam, dan siapapun itu berhak untuk mendapatkan pertolongan.

Versi pertama aplikasi ini dirancang agar seorang user yang menginstall aplikasi ini pada smart phone. Ketika dia sedang dalam kondisi panik (korban) cukup menekan satu buah tombol (tanpa form, tanpa input) yang kemudian oleh aplikasi ini akan mengirimkan data GPS dirinya, sehingga user lain yang sedang login di website bisa langsung memantau laporannya, dengan kata lain arus informasi terjadi secara realtime.

Untuk relawan, aplikasi ini juga bisa digunakan untuk memberikan informasi tentang apa yang sedang terjadi di lokasi bencana, kemudian bisa langsung mengirimkan ke server dan dipantau secara realtime pula oleh user lainnya.

Untuk versi pertama ini, kami sengaja setup khusus untuk lokasi Jogjakarta, yang kebetulan ketika aplikasi ini dibuat, sedang tertimpa hujan abu dari letusan Gunung Kelud.

Harapan kami para pengembang / developer / programmer aplikasi ini adalah, dengan adanya aplikasi ini, kita bisa memantau secara realtime apa yang sedang terjadi di lokasi bencana, dengan menggunakan bantuan koneksi internet.

Fitur utama aplikasi ini adalah:

  • Mengirim data GPS baik itu untuk korban maupun relawan
  • Mengirim data tentang status & deskripsi apa yang sedang terjadi di lokasi bencana (khusus relawan)
  • Pantauan realtime hasil report lokasi bencana di website.

Karena keterbatasan tenaga kami, masih banyak beberapa fitur yang belum sempat kami kerjakan, beberapa di antaranya:

  1. Verifikasi report (sudah kami rancang sebenarnya, tetapi belum sempat kami kerjakan) secara realtime dengan user terdekat
  2. Proses scanning area untuk melakukan proses pencarian orang hilang
  3. Proses filtering data berdasarkan lokasi,tipe bencana,hari
  4. Proses filtering data user (data lokasi terakhir)
  5. Proses broadcast data via mobile (memanfaatkan teknologi Google Cloud Messaging)
  6. Proses pendistribusian bencana (ada teman yang mau menawarkan konsep pendistribusian bantuan untuk lokasi bencana)
  7. SMS Gateway, fitur ini dirancang agar ketika koneksi internet tidak tersedia, user tetap masih bisa menggunakan aplikasi walaupun hanya lewat SMS.

Tetapi walaupun aplikasi dibuat dan diselesaikan dengan penuh keterbatasan, harapan kami para developer, ada programmer lainnya yang mungkin bersedia membantu meneruskan development aplikasi ini.

Oleh karena itu, kami memutuskan source code aplikasi akan kami open di GitHub:
https://github.com/ganapatih

Semoga apliasi ini bisa membantu banyak pihak (khususnya korban bencana alam), terlebih lagi kondisi negara kita yang juga berada di lokasi “Ring of Fire”.

NOTE

Walaupun aplikasi ini kami opensource-kan, tetapi kami sudah menggunakan lisensi BSD-3 Clause, dimana dari ketiga point dalam lisensi penggunaan yang paling penting adalah:

Nama Ganapatih, dan juga nama SELURUH KONTRIBUTOR dari aplikasi GANAPATIH ini, tidak boleh digunakan sebagai ajang promosi oleh pihak siapapun dengan alasan apapun tanpa ijin baik tertulis maupun lisan dari pihak-pihak yang bersangkutan.

Untuk selebihnya tentang lisensi bisa dibaca lebih detail:

Web: https://github.com/ganapatih/web/blob/dev/LICENSE
Processor (python): https://github.com/ganapatih/processor/blob/master/LICENSE
Android : https://github.com/ganapatih/android/blob/master/LICENSE

DISCLAIMER

Aplikasi Ganapatih tidak dibuat untuk mengambil alih kepentingan atau wewenang siapapun atau dari pihak manapun itu!!

Tahap akhir dari aplikasi ini adalah sedang menunggu proses submit ke Google Play Store yang sedang diurus oleh beberapa orang teman.

~ Semoga bermanfaat

 

Sumber: http://tulisanhiraq.net/ganapatih-apps/

Tulisan ini sudah diubah beberapa bagian seperti typo, perbaikan EYD dan penambahan abbreviation.

Easy Install: CakePHP + Composer

Standar

Untuk mempermudah update, saya biasa menggunakan composer untuk instalasi CakePHP. Bila mengikuti instruksi di dokumentasi, cukup merepotkan karena harus update file webroot/index.php dan Config/bootstrap.php. Saya membuat file composer.json sendiri yang sudah di-inject sedikit script untuk mempermudah proses instalasi.

Copy isi dari gist berikut https://gist.github.com/mul14/7599875, lalu paste dan save dengan nama composer.json. Lalu jalankan composer install. Yup, proses download selesai, tinggal hapus bagian scripts. Anda siap menggunakan CakePHP.

Atau, anda cukup copy paste ini di terminal:

curl -L https://gist.github.com/mul14/7599875/raw > composer.json && composer install