In this example we will assume that the server is called "gamma" and have the primary address "192.168.0.50". The virtual host will be called "gamma2" and will be located at address "192.168.0.51". The easiest way to add another address alias is to use yast2 and the network configuration module and simple add a new alias.
In preparation of the new virtual host we want it to have a separate document and cgi (where we will store the PHP5 binary) roots compared with the standard server. For this purpose we add two new directories "/srv/www/gamm2-htdocs/" and "/srv/www/gamma2-cgi-bin/" on the server.
For his we add a new small config file named "gamma2_vhost.conf" (the exact name is not important as long as it ends in *.conf) in the "/etc/apache2/vhosts.d/" directory. The script we add is
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | # Setup gamma2 on secondary IP-address
<VirtualHost 192.168.0.51>
DocumentRoot /srv/www/gamma2-htdocs/
ServerName gamma2
ServerAdmin root@localhost
# We use a separate CGI directory
ScriptAlias /cgi-bin/ /srv/www/gamma2-cgi-bin/
# For good measure we also add recognition of PHP5 index
DirectoryIndex index.php5
# This is the two critical statement for this virtual
# host we activate PHP5 as a CGI module
Action php5-cgi /cgi-bin/php
AddHandler php5-cgi .php5 .php
<Directory /srv/www/gamma2-cgi-bin/>
AllowOverride None
Options +ExecCGI -Includes
Order allow,deny
Allow from all
</Directory>
<Directory "/srv/www/gamma2-htdocs/">
Options None
AllowOverride None
Order allow,deny
Allow from all
DirectoryIndex index.html index.php
</Directory>
UserDir public_html
</VirtualHost> |
We do not go into any more detail of this configuration since it should be fairly easy to understand. For details we refer to the Apache documentation.
What we have accomplished with this file is that when we call the server on the second address any php file will be recognized by apache as a file to be handled by the "php5-cgi" action. This in turn means that whenever Apache encounters a *.php5 (or *.php) file it will run the program "/cgi-bin/php". This path in turn will be expanded to " /srv/www/gamma2-cgi-bin/php".
In the next section we will show how to compile PHP5 and put the executable CGI version in this directory.