Mod Fcgid merupakan modul Apache yang melakukan spawning terhadap proses terisolasi mirip dan kompatibel dengan FastCGI yang muncul sebelumnya untuk memperbaiki kekurangan yang ada pada CGI. Mod Fcgid menjawab ketidakstabilan FastCGI, dan dapat memberikan ruang lebih pada RAM anda karena secara efektif memisahkan proses terhadap request dinamis dan request statis.
Tulisan ini dibuat untuk memandu anda mendeploy LAMP (Apache, MySQL, PHP) dengan konfigurasi di atas pada mesin Ubuntu 9.04 Jaunty Jackalope, mesin yang digunakan adalah VPS di Magnet Hosting.
Universe
Tambahkan universe pada sources.list anda;
sudo nano /etc/apt/sources.list
Menjadi kurang lebih sebagai berikut (tergantung repo yang anda gunakan);
deb http://ubuntu.indika.net.id jaunty main universe deb http://security.ubuntu.com/ubuntu jaunty-security main universe
Update Paket
sudo aptitude update sudo aptitude upgrade
Instalasi Paket
Instalasi beberapa paket dasar;
sudo aptitude install bzip2 gcc gzip iptables ispell libc6-dev libmcrypt4 libsasl2-2 libsasl2-modules locales lsb-base make original-awk perl perl-base perl-modules tar wget
Instalasi MySQL Server
sudo aptitude install mysql-client mysql-common mysql-server
Setelah MySQL Server terinstall, username root tidak otomatis masuk ke dalam table user di database mysql, untuk memperbaiki hal tersebut silahkan start mysql dengan skip-grant-tables di my.cnf
sudo nano /etc/mysql/my.cnf
Tambahkan baris berikut pada bagian [mysqld]
skip-grant-tables
Kemudian restart mysql
sudo /etc/init.d/mysql restart
Masuk ke dalam mysql, pilih database mysql dan masukkan user root@localhost pada table user, gantikan newpassword dengan password root yang anda inginkan;
mysql use mysql; INSERT INTO user VALUES ('localhost','root',password('newpassword'), '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);
Instalasi Apache dan Mod_fcgi
Lakukan instalasi melalui aptitude, sesuaikan dengan modul PHP yang anda butuhkan;
sudo aptitude install apache2-mpm-worker apache2 apache2.2-common apache2-suexec apache2-utils libapache2-mod-fcgid php-pear php5 php5-cgi php5-gd php5-mcrypt php5-mhash php5-mysql php5-curl
Konfigurasi Apache
sudo nano /etc/apache2/apache2.conf
Modifikasi direktif berikut;
Timeout 60 KeepAlive Off
sudo nano /etc/apache2/conf.d/security
ServerTokens Prod ServerSignature Off TraceEnable Off
Buat konfigurasi fcgid;
sudo nano /etc/apache2/conf.d/php-fcgid.conf
Isikan keterangan berikut, bisa diadjust sesuai dengan kebutuhan;
AddHandler fcgid-script .fcgi .php # Where to look for the php.ini file? DefaultInitEnv PHPRC "/etc/php5/cgi" # Maximum requests a process should handle before it is terminated MaxRequestsPerProcess 1000 # Maximum number of PHP processes MaxProcessCount 15 # Number of seconds of idle time before a php-cgi process is terminated IPCCommTimeout 120 IdleTimeout 120 #Or use this if you use the file above FCGIWrapper /usr/bin/php-cgi .php
Virtual Host Apache
Buat direktori yang dibutuhkan di home direktori user yang anda gunakan, sesuaikan semua parameter di dalam < > dengan keinginan anda;
cd ~ mkdir <www_dir>
Masukkan user anda ke dalam group www-data
sudo nano /etc/group
www-data:x:<xx>:<username>
Berikan permission pada www_dir anda
sudo chgrp www-data /home/<username>/<www_dir>
Hapus virtual host default;
sudo a2dissite 000-default
Persiapkan virtual host Apache untuk situs / domain anda;
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/<domainanda.com>
Sesuaikan isi konfigurasi virtual host tersebut;
sudo nano /etc/apache2/sites-available/<domainanda.com>
<VirtualHost *:80> ServerAdmin hostmaster@<domainanda.com> ServerName <domainanda.com> ServerAlias www.<domainanda.com> DocumentRoot /home/<username>/<domainanda.com> <Directory /home/<username>/<domainanda.com>/> Options Indexes FollowSymLinks MultiViews Includes ExecCGI AllowOverride All Order allow,deny allow from all </Directory> ErrorLog /var/log/apache2/<domainanda.com>-error.log LogLevel warn CustomLog /var/log/apache2/<domainanda.com>-access.log combined </VirtualHost>
Enable Virtual Host anda;
sudo a2ensite <domainanda.com>
Restart Apache
sudo /etc/init.d/apache2 restart
Referensi: