Tuesday, June 28, 2011

MySql: SELECT #1

Berikut ini saya jelaskan secara singkat penggunakan perintah select untuk mengabungkan dua buah tabel. Terdapat tabel t_mahasiswa yang berisi data-data inti mahasiswa, dan kemudian tabel t_info_tambahan_mhs yang menyimpan informasi tambahan bagi mahasiswa. Tidak semua mahasiswa memiliki informasi tambahan, sehingga informasi tambahan ini dibuat dalam tabel terpisah yang berelasi satu-kesatu yang bersifat opsional.

SELECT
t_mahasiswa.idMhs,
t_mahasiswa.angkatan,
t_mahasiswa.NIM,
t_mahasiswa.nama,
t_info_tambahan_mhs.kodeStatusMahasiswa as StatusBelajar,
t_info_tambahan_mhs.instansi,
t_info_tambahan_mhs.kotaInstansi
FROM
t_mahasiswa
LEFT JOIN t_info_tambahan_mhs ON t_info_tambahan_mhs.NIM = t_mahasiswa.NIM
WHERE
t_info_tambahan_mhs.kodeStatusMahasiswa = 'TB';


Hasil query tersebut adalah:


Select#1

Sunday, June 19, 2011

www-data problem on Ubuntu

Secara default, Apache pada server ubuntu berjalan dengan user dan grup www-data. Masalah sering timbul apabila website yang dibuat tidak menggunakan user www-data, melainkan menggunakan user lain (user baru dengan lokasi direktori sesuai direktori ftp). Masalah umum yang terjadi adalah terkait privilege file atau folder yang diupload menggunakan website. Secara default, file atau folder yang dibuat melalui website, maka pemiliknya adalah user www-data. Akibatnya, apabila user ftp akan menghapus, atau mengedit atau bahkan menambahkan file lain ke dalam folder yang dibuat sebelumnya oleh www-data, user ftp ini tidak punya hak akses. Umumnya orang masuk sebagai root kemudian melakukan chmod 777 terhadap file atau folder. Namun demikian, cara ini tidak efektif apabila website yang dibuat berfungsi untuk mengupload banyak file/folder yang namanya berubah sesuai waktu dan terkadang penambahan bisa melalui web ataupun ftp.

Cara ini sebenarnya tidak disarankan, namun cukup ampuh apabila di dalam satu server hanya ada sebuah website saja.

Masukklah sebagai root:

hpserver# nano /etc/apache2/envvars

Ubah user dan group www-data menjadi user ftp yang akan digunakan (misal user ftp adalah hpserver):

export APACHE_RUN_USER=hpserver
export APACHE_RUN_GROUP=hpserver
export APACHE_PID_FILE=/var/run/apache2.pid

Kemudian restart apache

hpserver# /etc/init.d/apache2 restart

Silahkan lihat di phpinfo(), sekarang user handler apache bukan lagi www-data melainkan hpserver :)