J'ai installé avec succès PHP 5.3.29 sur Ubuntu 14 avec Apache 2 séparément.
J'ai installé PHP avec la méthode suivante:
Sudo -i
wget http://in1.php.net/distributions/php-5.3.29.tar.bz2
tar -xvf php-5.3.29.tar.bz2
cd php-5.3.29
./configure
make
make install
Cependant, PHP et Apache ne semblent pas avoir de lien. Cela signifie que j'ai installé Apache et PHP, mais Apache n'exécute pas PHP.
Ce que j'ai essayé:
Depuis ce site: https://docs.moodle.org/28/fr/Compiling_PHP_from_source
"Configurer Apache et PHP", il m'a demandé d'ajouter ceci dans le fichier de configuration Apache:
LoadModule php5_module modules/libphp5.so
Cependant, je n'ai pas le module "libphp5.so".
Certaines personnes m'ont demandé de lancer ceci:
Sudo apt-get install libapache2-mod-php5
Mais après avoir exécuté la commande, il a installé PHP 5.5.9 pour moi, mais il me faut PHP 5.3.29.
Comment puis-je faire exécuter Apache PHP 5.3.29 que j'ai installé?
Cela fonctionne pour moi:
Sudo -s
mkdir /usr/local/src/php5-build
cd /usr/local/src/php5-build
wget -O php-5.3.29.tar.gz http://de1.php.net/get/php-5.3.29.tar.gz/from/this/mirror
tar -xzf php-5.3.29.tar.gz
cd php-5.3.29
apt-get install Apache2 php5 php5-common php5-cli php5-mysql php5-Gd php5-mcrypt php5-curl libapache2-mod-php5 php5-xmlrpc mysql-server mysql-client libapache2-mod-fastcgi
apt-get install build-essential php5-dev libbz2-dev libmysqlclient-dev libxpm-dev libmcrypt-dev libcurl4-gnutls-dev libxml2-dev libjpeg-dev libpng12-dev
./configure --prefix=/usr/share/php53 --datadir=/usr/share/php53 --mandir=/usr/share/man --bindir=/usr/bin/php53 --includedir=/usr/include/php53 --sysconfdir=/etc/php53/Apache2 --with-config-file-path=/etc/php53/Apache2 --with-config-file-scan-dir=/etc/php53/conf.d --enable-bcmath --with-curl=shared,/usr --with-mcrypt=shared,/usr --enable-cli --with-Gd --with-mysql --with-mysqli --enable-libxml --enable-session --enable-xml --enable-simplexml --enable-filter --enable-inline-optimization --with-jpeg-dir --with-png-dir --with-zlib --with-bz2 --with-curl --enable-exif --enable-soap --with-pic --disable-rpath --disable-static --enable-shared --with-gnu-ld --enable-mbstring
make && make install
a2enmod cgi fastcgi actions
service Apache2 restart
vi /etc/Apache2/php53.conf
Insérer:
#Include file for virtual hosts that need to run PHP 5.3
SetHandler application/x-httpd-php5
ScriptAlias /php53-cgi /usr/lib/cgi-bin/php53-cgi
Action application/x-httpd-php5 /php53-cgi
AddHandler application/x-httpd-php5 .php
Créer un script d'environnement pour démarrer la version supplémentaire PHP
vi /usr/lib/cgi-bin/php53-cgi
Insérer:
#!/bin/sh
PHPRC="/etc/php53/Apache2/"
export PHPRC
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_MAX_REQUESTS
exec /usr/bin/php53/php-cgi
Configurer les hôtes virtuels d'Apache 2
Include php53.conf
ServerName example.org
DocumentRoot /var/www/sites/example.org
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all granted
Enfin, redémarrez ...
service Apache2 restart
Source: https://erdfisch.de/en/multiple-versions-php-Apache-under-linux
La réponse de Wittich est fabuleuse! Je l'ai utilisé afin de remplacer php 5.1 par php 5.6 sur mon site web unix. Contrairement à Wittich, je n'essayais pas de faire fonctionner deux versions simultanément; J'essayais simplement de faire une mise à niveau d'une ancienne version de php intégrée à Apache vers une version plus récente exécutée à partir de cgi.
Pour une raison quelconque, plusieurs commandes de Wittich (telles que la commande SetHandler) ont empêché Apache de se charger après que je les ai essayées. J'ai fini par avoir à simplifier sa réponse pour qu'Apache s'exécute correctement. J'ai apporté 6 modifications aux procédures de Wittich:
J'ai utilisé yum au lieu d'apt-get car apt-get ne fonctionnerait pas sur mon système Unix.
Depuis que j'installais php 5.6 et non pas php 5.3, j'ai changé toutes les instances de "php53" en "php56" dans les commutateurs de la commande configure. Ce n'était pas nécessaire pour que tout fonctionne, mais cela vous aidera à comprendre mes chemins ci-dessous:
Dans l'un de mes dossiers de configuration httpd (/etc/httpd/conf.d), j'ai trouvé un fichier qui était déjà configuré pour une implémentation php de php (php_cgi.conf). Son contenu était:
scriptAlias / phppath/"/ var/www/cgi-bin/cgi_wrapper /"
Action php-script /phppath/cgi_wrapper
Le contenu et l'existence de ce fichier me permettent d'ignorer ou de modifier plusieurs étapes de Wittich. Je n'ai ni créé php53-cgi, ni php53.conf.
\#!/bin/sh
exec /usr/bin/php56/php-cgi
AddHandler php-script .php
En résumé, il est donc facile de convertir la réponse de Wittich en un moyen de mettre à niveau une version plus ancienne de PHP basée sur Apache vers une version plus récente basée sur cgi si vous disposez d'un fichier php_cgi.conf existant que vous pouvez détourner et utiliser comme guide.
J'ai trouvé une publication de David Brogdon être un bon complément à la réponse de Wittich pour ceux qui débutent dans les commandes configure, make et make install:
http://www.onlamp.com/pub/a/php/2000/11/17/php_admin.html
J'ai cherché Internet pendant des heures et je n'ai jamais rien trouvé d'aussi utile que le message de Brogdon et la réponse de Wittich. La réponse de Wittich a dû fonctionner parfaitement sur son système Unix, mais je devais le modifier un peu pour le faire fonctionner sur le mien.
Cela fonctionne pour moi sur un scratch Ubuntu 14.04:
Mettre à jour les packages systèmes
apt-get update
apt-get upgrade -y
Installer les dépendances et préparer l'environnement
apt-get install -y build-essential libxml2-dev Apache2 Apache2-dev
echo "export PATH=/usr/local/bin:/usr/local/sbin:$PATH" >> ~/.bashrc
apt-get install -y libapache2-mod-php5 --no-install-recommends
Télécharger PHP 5.3.29
apt-get install -y wget && cd /tmp && wget http://php.net/distributions/php-5.3.29.tar.bz2
Décompressez et configurez le module Apache apxs2
tar -xvf php-5.3.29.tar.bz2 && cd php-5.3.29 && ./configure --with-apxs2=/usr/bin/apxs2
Installez-le
make && make install
Vérifiez si fonctionne
service Apache2 restart && php -v
docker pull fabriciohp/php-5.3.29