As it took me quite a lot of time to do this, I’ll post it here so I can find it later if needed.
I tried it on Squeeze but it should be OK on Wheezy too.
We can’t install both PHP 4 and PHP 5 as Apache module. So what we’re going to do is install PHP 5 as Apache module and PHP 4 as CGI.
First, install apache 2.
1 |
apt-get install apache2 |
Secondly, install MySQL server and phpmyadmin if needed.
1 |
apt-get install mysql-server |
1 |
apt-get install phpmyadmin |
Then, don’t forget to install FCGID for Apache
1 |
apt-get install libapache2-mod-fcgid |
Hardest part now : install PHP 4. You can’t imagine how many hours I waste onto trying to install this old s****. But I clearly had no choice.
There is a nice dude which shares packages of PHP 4 online. The best part is, you can add it as a repo for apt.
Packages are there for 64bits versions : http://www.cecak.cz/debian/squeeze/php4/amd64/
Then, just edit you /etc/apt/sources.lists and add
1 |
deb http://www.cecak.cz/debian/squeeze/php4/amd64/ ./ |
In a terminal, go for
1 |
apt-get --allow-unauthenticated update |
Then you’re good to go !
1 |
apt-get install php4-cgi |
And then all extensions you need :
1 |
apt-get install php4-curl php4-domxml php4-gd php4-imap php4-ldap php4-mcal php4-mcrypt php4-mhash php4-ming php4-mysql php4-odbc php4-pspell php4-recode php4-snmp |
Now, let’s tell Apache to use PHP 4 on a separate virutal host, so you keep PHP 5 by default and PHP 4 only on a special address.
I just copied the default site config. You can call the new file whatever you want.
1 |
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/php-four |
My virtual host files will be stored in /var/www/php4. My config file looks like this :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName localhost.php4 ServerAlias www.localhost.php4 DocumentRoot /var/www/php4 <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/php4> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> <FilesMatch "\.ph(p3?|tml)$"> Options ExecCGI FollowSymLinks SetHandler fcgid-script FCGIWrapper /usr/bin/php-cgi .php </FilesMatch> </VirtualHost> |
The most important part is FilesMatch, which will tell Apache to use PHP CGI (PHP 4 here) to execute php files.
Save the file and enable it using
1 |
a2ensite php-four |
Then restart Apache so it takes all modifications into account.
1 |
service apache2 restart |
Last part, we need to edit /etc/hosts file to add our virtual host address to point it to localhost. Simply add
1 |
127.0.0.1 localhost.php4 |
at the end of the file.
Now you should be good to go !
You can show php version putting this code
1 2 3 |
<?php phpinfo(); ?> |
into a file and go for it into your browser.
/etc/apt/sources.lists
Es heißt: /etc/apt/sources.list (ohne s)
funktioniert auf Debian 7 nicht:
apt-get install php4-cgi
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen…. Fertig
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:
Die folgenden Pakete haben unerfüllte Abhängigkeiten:
php4-cgi : Hängt ab von: libdb4.8 ist aber nicht installierbar
Hängt ab von: libssl0.9.8 (>= 0.9.8m-1) ist aber nicht installierbar
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.
Salut paquet plus dipo