Tutorial ini akan menjelaskan bagaimana menginstall Apache2 dengan mod_fcgid dan PHP5 di ubuntu 12.04.
Saya menggunakan Ubuntu 12.04 server dengan hostname server1.example.com dan IP Address 192.168.0.100
Disini saya akan membuat 2 Apache vhosts, www.example1.com dan www.example2.com untuk mendemostrasikan cara menggunakan mod_fcgid
Pertama, pastikan kamu login sebagai root atau user yang bisa melakukan sudo
sudo su
/bin/sh symlink ke /bin/dash. Maka dari itu kita ketikkan command berikut :
dpkg-reconfigure dash
Install dash as /bin/sh <– NO
Apache2/mod_fcgi/PHP5
Untuk menginstall Apache2, mod_fcgid dan PHP5 jalankan command berikut :
apt-get install apache2 apache2-suexec libapache2-mod-fcgid php5-cgi
Jika Apache2 sudah di install dengan PHP5 sebagai Apache Module, maka anda harus menonaktifkan module tersebut sekarang. Jalankan command :
a2dismod php5
Lalu aktifkan modul dibawah ini :
a2enmod rewrite a2enmod suexec a2enmod include a2enmod fcgid
dan buka /etc/php5/cgi/php.ini
nano /etc/php5/cgi/php.ini
hapus comment ( # ) di baris cgi.fix_pathinfo=1
[...] ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo cgi.fix_pathinfo=1 [...]
lalu buka /etc/apache2/mods-available/fcgid.conf…
tambahkan code berikut di line PHP_Fix_Pathinfo_Enable 1
AddHandler fcgid-script .fcgi FcgidConnectTimeout 20 PHP_Fix_Pathinfo_Enable 1
lalu restart apache
/etc/init.d/apache2 restart
Membuat Vhosts untuk www.example1.com dan www.example2.com
Sekarang saya akan membuat 2 vhosts, www.example1.com ( dengan document root adalah /var/www/web1 ) dan www.example2.com ( dengan document root adalah /var/www/web2 ). www.example1.com akan OWNED oleh user dan group web1, dan www.example2.com oleh user dan group web2
Pertama, kita akan membuat users dan group :
groupadd web1 groupadd web2 useradd -s /bin/false -d /var/www/web1 -m -g web1 web1 useradd -s /bin/false -d /var/www/web2 -m -g web2 web2
Lalu kita akan membuat document roots yang owned oleh user dan groups yang bersangkutan ( web1 dan web2 )
mkdir -p /var/www/web1/ chown web1:web1 /var/www/web1/ mkdir -p /var/www/web2/ chown web2:web2 /var/www/web2/