Obvykle jednu verzi PHP mame nainstalovanou jako modul apache serveru, druhou verzi PHP nejde naistalovat jako modul, je tedy nutné ho rouběhnout jako CGI skript. Pak je ale nutné rozlišit ktere php se má použít na interpretování kterého souboru. Na to jsou v principu tři přístupy, pomocí adresáře kde se soubory nachází, podle přípony souboru, nebo podle virtuálního hosta apache serveru. Pro použití na vývoj je podle mě nejlepší třetí varianta, protože pak se dá přepínat verze jen podle hosta (např 127.0.0.1 pro php5, např 127.0.0.2 pro php4).
Jelikož já mám na kompu php5 jako modul, tak popíšu postup, jak nainstalovat php4 jako cgi. Je potřeba stáhnout php4 ve zdrojácích, je dobré opravit volby v ./configure --with-config-file-path (kde bude php.ini) a --with-mysql (jestli bude kompilováno s podporou MySQL). Jinak se defaultně php přeloží jako cgi.
make install, nainstaluje se do /usr/local/bin
:No to asi nebude popsáno úplně ideálně, ale funguje to. v adresáři, kde je hhtpd.conf jsem udělal hhtpd.conf.local, který jsem do toho původního naicludoval jeho obsah víceméně byl následující
<VirtualHost 127.0.0.2:80> DocumentRoot /srv/www/htdocs/ ServerName gamma2 ServerAdmin tomas.pop@seznam.cz # We use a separate CGI directory ScriptAlias /cgi-bin/ /usr/local/bin/ # For good measure we also add recognition of PHP5 index DirectoryIndex index.php # 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 /usr/local/bin/> AllowOverride None Options +ExecCGI -Includes Order allow,deny Allow from all </Directory> <Directory "/srv/www/htdocs/"> Options None AllowOverride None Order allow,deny Allow from all DirectoryIndex index.html index.php </Directory> UserDir public_html </VirtualHost>No a potom se to přepíná pomocí hosta, jak bylo napsáno v příkladu nahoře.
PHP4 má starší api mySQL, pokud je novější verze MySQL, než něco jako 4.1, je to problém nejjednoduší řešení je použít sql příkaz
SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('newpwd');více o změně klientského api Mysql.
http://www.aditus.nu/jpgraph/apache2suse10.php
http://gentoo.neysx.org/proj/en/php/php4-php5-configuration.xml
http://schlitt.info/applications/blog/index.php?/archives/83-How-to-run-PHP4-and-PHP-5-prallel.html
http://blog.bitflux.ch/archive/2004/01/19/how_to_run_php4_and_php_5_parallel.html