Wednesday, June 3, 2015

Problem Timezone pada PHP di Openwrt

Jika script PHP Anda di openwrt menggunakan fungsi date time, misalnya strftime(), dsb ... dan Anda mendapatkan message seperti ini :

Warning
It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. 
In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier.
We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.

kemungkinan besar karena proses install php kita belum "selesai".
Cara supaya error itu tidak terjadi lagi, yaitu setelah melakukan proses instalasi php dengan menggunakan :

#opkg update
#opkg install php5-cgi

selanjutnya lakukanlah langkah ini :

#opkg install zoneinfo-core zoneinfo-asia

Setelah itu, edit file /etc/php.ini di bagian :

[Date]
date.timezone = "Asia/Jakarta"

(seandainya Anda berada di Jakarta) ...
Jangan lupa hilangkan tanda remark (;) di awal baris jika sebelumnya masih ada.

Jika sudah selesai, coba lagi script yang tadi error ... seharusnya bisa berjalan normal tanpa mengeluarkan warning.

Semoga membantu,

Tuesday, June 2, 2015

Mengubah IP menjadi Domain

Bagi kita yang berlangganan internet dan mendapatkan IP public, dan butuh akses secara remote ke network tersebut, maka domain name akan jauh mudah diingat dibanding dengan IP. Apalagi kalo IP-nya berubah-ubah, setiap kali koneksi putus dan nyambung lagi (IP dynamic).

Di jaringan internet, yang bertugas untuk mengubah nama domain menjadi IP adalah DNS (Domain Name Server). Selain normal DNS, ada dynamic DNS. Perbedaan mendasar keduanya adalah waktu refresh. Dynamic DNS mempunyai waktu refresh yang jauh lebih cepat, misalnya setiap 10menit, sedangkan DNS normal biasanya waktu refreshnya adalah 24 jam.

Kalau koneksi kita menggunakan IP dynamic, maka mau tidak mau, dynamic DNS (DDNS) menjadi solusi supaya kita tetap bisa punya nama domain. Salah satu layanan DDNS yang cukup menarik adalah dyndns.dk.

Setelah masuk ke dyndns.dk, silakan register (kalau belum), masukkan nama domain yang diinginkan, misalnya : serverku2015 ... lalu ikuti petunjuk selanjutnya (butuh email untuk konfirmasi). Nantinya, kita bisa mengakses IP kita menggunakan nama serverku2015.dyndns.dk ...

Untuk melakukan refresh (jika misalnya IP berubah karena router/modem restart), hanya perlu masuk ke site tersebut lagi, http://dyndns.dk lalu login, dan pilih menu update/refresh. Selain secara manual seperti itu, dyndns.dk juga menyediakan URL langsung yang bisa dipanggil untuk melakukan refresh IP (tanpa butuh interaksi dengan kita). URL ini akan sangat berguna kalau kita ingin melakukan proses update IP secara berkala, misalnya melalui cron / scheduler.

Semoga bermanfaat,

Install PHP dan mysql di Openwrt mr3420 v1

Karena pengen trial wordpress di router Openwrt rumah yang pake TP-Link MR3420 v1 (model lama), akhirnya harus install PHP dan mysql. Openwrt saya menggunakan OpenWrt Chaos Calmer r43530 / LuCI Master (git-14.328.38244-91532de).

Sebelum install, pastikan dulu bahwa router kita sudah pake exroot, alias hasil install-nya akan disimpan di USB flash-disk external.

Pertama, mari kita install PHP dulu (php5) :
# opkg update
# opkg install php5-cgi

Openwrt akan men-download semua file dan paket yang dibutuhkan, dan meng-configure setiap modul sampai siap digunakan.

Untuk memastikan bahwa php sudah terinstall dengan benar,
# php-cgi -v

Akan muncul seperti ini :
root@TL3420:/# php-cgi -v
PHP Warning:  Module 'mysql' already loaded in Unknown on line 0
PHP 5.6.9 (cgi-fcgi) (built: May 31 2015 04:41:27)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

Setelah itu, install mysql :

# opkg install mysql-server

Jika semuanya berjalan normal, mysql sudah terinstall. Lanjutkan dengan configurasi awal mysql.

#mkdir /mnt/mysql/
#mkdir /mnt/tmp
#mysql_install_db --force

Selanjutnya, jalankan mysql :

#/etc/init.d/mysqld start
#/etc/init.d/mysqld enable
#mysqladmin -u root password 'password-baru-root'

Jika langkah terakhir error, kemungkinan karena tabel user masih kosong.
Langkah alternatifnya adalah :

#/etc/init.d/mysqld stop
#mysqld --skip-grant-tables --skip-networking &

#mysql mysql
mysql> insert into user values('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','','0','0','0','0');
mysql> exit

baru setelah itu jalankan lagi command terakhir (mysqladmin ...)

Setelah beres, stop mysqld ... lalu jalankan lagi
#/etc/init.d/mysqld start

Langkah terakhir adalah dengan mengaktifkan modul mysql di php.ini. Bisa dengan vi secara manual file /etc/php.ini, atau dengan command sed ...

sed -i 's,;extension=mysql.so,extension=mysql.so,g' /etc/php.ini

PHP dan mysql di openwrt Anda siap dipakai ...

Semoga membantu,