Howto Directadmin+Apache 2.2+PHP5+SUPHP+Suexec perfect setup

To configure SUPHP in directadmin is an easy task. There are a number of ways to do it. But this method seems to be a perfect setup for it .

Why this method is better than default suphp?

  • The php will be installed under /usr/local/
  • There is no conflict with multiple server phps
  • The php ini path is /usr/local/lib/php.ini
  • This will help to set correct path for php scripts or crons without modifying the client files
  • No modification for default template , just use custom.
  • Use server mysql for php-mysql client , this will avoid client API conflict
  • Easy to implement

Any Auto installer script ?

Yes you can download an auto installer script from here.

How to setup is manually?

Please see the procedure below,

cd /usr/local/directadmin/custombuild
./build clean
./build update
mkdir -pv custom/ap2 
mkdir -pv custom/suphp
rm -rf custom/ap2/*
rm -rf custom/suphp/*
wget -c http://files.syslint.com/da/conf/suphp/configure.apache.conf
mv -vf  configure.apache.conf  custom/ap2/configure.apache
wget -c http://files.syslint.com/da/conf/suphp/configure.php5.conf
mv -vf  configure.php5.conf  custom/ap2/configure.php5
cp -vf  custom/ap2/configure.php5 custom/suphp/
wget -c http://files.syslint.com/da/conf/suphp/configure.suphp.conf
mv -vf configure.suphp.conf custom/suphp/configure.suphp

Now edit /usr/local/directadmin/custombuild/options.conf and make the following changes

php5_cli=no
php5_cgi=yes

Now build apache as follows

./build apache

Now build php as follows

./build php 5

Now create the custom config folder , so that you can simply include all thirdpary php extensions

mkdir -pv /usr/local/lib/php.d

Now make all required soft links

ln -sf  /usr/local/bin/php-cgi /usr/local/bin/php
ln -sf /usr/local/bin/php /usr/bin/php

Now set suphp.conf for the php-cgi location

sed -i 's/x-httpd-php5=.*/x-httpd-php5=\"php:\/usr\/local\/bin\/php-cgi\"/g' /usr/local/suphp/etc/suphp.conf

Now set the php.ini location for suphp

sed -i 's/suPHP_ConfigPath.*/suPHP_ConfigPath\  \/usr\/local\/lib\//g' /etc/httpd/conf/extra/httpd-suphp.conf

Restart apache

/etc/init.d/httpd restart

Testing :

Create a phpinfo page on you domain document root and check it.

Optional Settings:

The following settings are not recommended in a production environment . It will enable user_dir access to your domains and disable some security

Read more about this from here