suPHP adalah sebuah modul dari Apache2 yang digunakan untuk
mengeksekusi sebuah script PHP menggunakan hak akses dari pemilik script
tersebut.
Pada umumnya Apache akan menjalankan
sebuah script PHP dengan menggunakan UID dari user www-root, apache, atau
nobody (tergantung user yang digunakan oleh apache), dengan menggunakan suPHP
jika sebuah script PHP memiliki hak akses dari sebuah user didalam sistem, maka
Apache2 akan menjalankan script tersebut dengan menggunakan UID user tersebut.
Hal yang perlu diperhatikan disini
adalah bahwa suPHP meningkatkan faktor keamanan serta membantu mengatasi
masalah ijin/hak akses khususnya untuk mengatasi masalah penulisan sebuah
file/directory pada server, namun menuntut lebih banyak penggunaan memory dan
CPU, dan dapat menurunkan kinerja server.
Untuk menginstalkan modul ini dapat
diguanakan perintah berikut:
dave@devbox:~$ sudo apt-get
install libapache2-mod-suphp
Atau bisa juga menggunakan aplikasi
installer seperti Synaptic Package Manager atau Ubuntu Software Center. Setelah
terinstall aktifkan modul tersebut dengan menggunakan perintah berikut
dave@devbox:~$ sudo a2enmod suphp
Setelah module diaktifkan edit file /etc/apache2/mods-available/php5.conf
dengan menggunakan tools nano, pico, vi, atau gedit.
dave@devbox:~$ sudo pico /etc/apache2/mods-available/php5.conf
Buat sebuah baris baru dibagian awal
isi file, dan isikan dengan baris berikut.
<Directory /usr/share>
Lalu tambahkan baris derikut
dibagian paling bawah/akhir dari isi file tersebut.
</Directory>
Kemudian simpan perubahan pada file.
Lanjutkan dengan mengedit file /etc/suphp/suphp.conf
dave@devbox:~$ sudo
pico /etc/suphp/suphp.conf
Cari bagian seperti terlihat pada
baris berikut.
docroot=/var/www
Berdasarkan value pada option
tersebut, maka module suPHP hanya dijalankan dalam directory /var/www
saja, edit baris tersebut agar suPHP juga bisa dijalankan pada folder public_html.
docroot=/var/www:${HOME}/public_html
Simpan perubahan setelah mengedit
file tersebut. Kemudian restart service Apache2 dengan perintah berikut.
dave@devbox:~$ sudo
/etc/init.d/apache2 restart
Buat sebuah PHP file untuk menguji
apakah module suPHP sudah berjalan dengan baik, gunakan perintah berikut.
dave@devbox:~$ echo “<?php
echo ‘whoim = ‘.exec(‘/usr/bin/whoami’);?>” | \
tee ~/public_html/whomi.php
Buka file PHP teersebut dengan mengakses http://localhost/~usernameanda/whoami.php
melalui Web Browser.tee ~/public_html/whomi.php