Je veux avoir à la fois PHP 5.2.17 et PHP 5.3.5 installés sur ma machine Ubuntu et changer selon mes besoins. Comment puis-je réaliser cela ?
Réponses
Trop de publicités?Vous pouvez utiliser un gestionnaire de version de php pour y parvenir. Différents gestionnaires de version sont disponibles comme :
- https://github.com/phpbrew/phpbrew
- https://github.com/CHH/phpenv
- https://github.com/wilmoore/php-version
Mon préféré est phpbrew. J'espère que cela vous aidera.
Usted peut exécuter deux versions différentes de PHP en même temps, mais ce n'est pas aussi simple que de les installer avec apt-getting. Vous devez faire tourner une version installée séparément et la servir en fonction des paramètres de votre configuration Apache.
Vous pouvez le faire en utilisant fastcgi par exemple : ce que vous cherchez est la configuration que vous voyez sur cette page . Vous ajoutez un gestionnaire différent dans votre configuration en fonction de la situation/du port/du domaine dont vous avez besoin. L'astuce, après avoir installé les deux versions, est cette étape :
\===de cette page==
- La dernière étape consistait à créer des hôtes virtuels. Au final, j'ai trois fichiers dans /etc/apache2/sites-enabled : 000-default, php5.3.17 et php5.4.7 avec le contenu suivant
par défaut :
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www
<Directory "/var/www">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
AddHandler php-cgi .php
Action php-cgi /php-fcgi/php5317.fcgi
</Directory>
</VirtualHost>
php5.3.17 :
<VirtualHost *:80>
ServerName 5317.localhost
DocumentRoot /var/www
<Directory "/var/www">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
AddHandler php-cgi .php
Action php-cgi /php-fcgi/php5317.fcgi
</Directory>
</VirtualHost>
php5.4.7 :
<VirtualHost *:80>
ServerName 547.localhost
DocumentRoot /var/www
<Directory "/var/www">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
AddHandler php-cgi .php
Action php-cgi /php-fcgi/php547.fcgi
</Directory>
</VirtualHost>
Voir pour l'installation complète la question liée . N'oubliez pas de regarder également les deux liens dans l'en-tête, ils ressemblent à de beaux tutoriels (mais moins compressés). Ce site y Ce
(Ne vous laissez pas décourager par le fait que la question liée est une question importante à laquelle il n'y a pas de réponse reconnue. La méthode devrait fonctionner (et fonctionne) correctement, mais l'utilisateur a oublié d'utiliser la fonction <?php
et utilisé <?
avec les étiquettes courtes désactivées, voir les commentaires)
Celui-là marche pour moi : https://lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu
Identique au script de "Growling Flea", mais utilisant de nouvelles versions.
Ajouter le PPA
Les paquets PHP 5.6 et PHP 7.0 proviennent d'un PPA tiers, et ne sont pas fourni par les dépôts officiels d'Ubuntu de Canonical. Les PPAs que je recommande ici sont ceux d'Ondrej Surý qui empaquette PHP pour Debian (qui est ensuite utilisé par Ubuntu), donc bien qu'il ne s'agisse pas d'un référentiel officiel officiel, il n'est pas vraiment aléatoire ! Le PPA lui-même est aquí
Pour ajouter le PPA à votre installation :
sudo add-apt-repository ppa:ondrej/php
Ensuite, nous voudrons aussi obtenir des informations sur ce que propose ce nouveau ce nouveau PPA, alors exécutez :
sudo apt-get update
Installer les nouvelles versions de PHP
J'avais déjà installé certains des paquets php5, mais je n'ai pas mais je n'ai rien désinstallé, j'ai juste laissé apt faire ce qu'il voulait faire lorsque quand je lui ai demandé d'installer les nouvelles versions :
sudo apt-get install php5.6 php7.0
Cela a donné lieu à de nombreuses plaintes de la part d'apt et à de nombreux conflits. La première résolution proposée était de supprimer tous les paquets php5 afin que PHP 5.6 puisse être installé - j'ai donc accepté la proposition d'apt. première suggestion.
J'utilise Apache, donc cette configuration m'a donné Apache avec les modules php5.6 et php7.0 disponibles. disponibles, et le module php5.6 est effectivement chargé.
En plus du PHP lui-même, toutes les extensions et autres outils que l'on peut attendre de PHP sont disponibles pour les deux versions de PHP. facile d'ajouter les modules dont vous avez besoin. J'ai été très, très impressionné de voir à quel point c'est bien fait.
Configurer et changer de version
Maintenant, vous avez deux versions complètement différentes de PHP installées sur votre ordinateur. système, alors regardons où sont passées toutes les pièces !
Les fichiers de configuration sont tous dans
/etc/php/5.6
y/etc/php/7.0
respectivement - à l'intérieur, c'est ici que vous pouvez configurer quelles extensions sont chargées, les paramètres ini, et tout le reste pour chaque version. en isolation.Je suis un utilisateur d'apache, et comme je l'ai mentionné, les deux modules sont disponibles. Donc pour passer de l'un à l'autre, je dois faire ce qui suit :
sudo a2dismod php5.6 sudo a2enmod php7.0 sudo service apache2 restart
Pour les utilisateurs de nginx, les changements sont presque aussi faciles, Digital Ocean a une bonne documentation à ce sujet (ils ont vraiment une bonne documentation !). leur guide : https://www.digitalocean.com/community/tutorials/how-to-upgrade-to-php-7-on-ubuntu-14-04 car il comprend une section sur la reconfiguration de nginx pour utiliser une autre version de PHP.
Depuis la ligne de commande, j'ai à la fois php5.6 et php7.0 disponibles en tant que commandes. J'ai aussi toujours une commande php - regardez dans /etc/alternatives pour voir qu'il s'agit d'un lien symbolique vers une version particulière de PHP cli*. Vous pouvez Vous pouvez également vérifier rapidement laquelle utilise la vôtre en exécutant
php -v
.* Plus précisément, exécutez which php pour voir quelle version de PHP est utilisée, mais cela mènera probablement à
/usr/bin/php
qui, pour est lui-même un lien symbolique vers le/etc/alternatives/php
comando.Travailler avec des extensions
Ce PPA est fourni avec le paquetage habituel php-pear qui offre la commande pecl pour les deux versions de PHP, de sorte que toutes les extensions qui sont disponibles via PECL peuvent être installées de la manière habituelle. Vous aurez également besoin des en-têtes Vous aurez également besoin des en-têtes appropriés, donc soit php5.6-dev, soit php7.0-dev. installé.
Lorsque l'installation de pecl sera terminée, vous recevrez une note vous demandant d'ajouter le fichier *.so à votre php.ini. *.so à votre php.ini ; en fait, la meilleure chose à faire ici est de regarder ce qui se trouve dans le fichier
/etc/php/mods-available
. Il y aura quelques modules déjà présents, chacun dans son propre fichier nommé après l'extension et se terminant par .ini. Vous pouvez en copier un pour l'utiliser comme modèle ou créer ou créer le vôtre et y mettre toute la configuration nécessaire pour l'extension (au minimum, vous avez besoin deextension=[extensionName].so
).Une fois la nouvelle extension disponible dans les modules, activez-la et vérifiez-la ensuite en faisant :
sudo phpenmod extension php -m
Cela créera les liens symboliques aux bons endroits pour que votre version actuelle de PHP pour charger ce module, et vous devriez le voir dans la liste des des modules affichée par la fonction
php -m
. Conseil de pro : si vous ne le voyez pas dans la sortie sortie, faites défiler jusqu'en haut de la sortie et regardez s'il n'y a pas des messages d'erreur utiles.
De ce poste J'ai juste mis dans l'ordre les commandes et expliqué dans l'ordre ce qui m'a été servi (Ubuntu 12.04).
Cette méthode vous donne :
-
script avec menu, qui permet de basculer entre les versions de php installées (pas les deux en même temps).
-
les différentes versions de PHP installées sur votre serveur
-
fichiers de conf séparés
Installer toutes les versions dont vous avez besoin (j'en ai deux)
Installer les dépendances :
sudo apt-get install flex apache2-threaded-dev libxml2-dev apache2 apache2-mpm-prefork apache2-threaded-dev apache2-utils apache2.2-bin apache2.2-common
Installer PHP 5.3 pour la première fois. Télécharger les sources de php
md5sum Downloads/php-5.3.10.tar.bz2
mkdir ~/Sources
cd ~Sources/
cp -Rf ../Downloads/php-5.3.10.tar.bz2 .
tar xjf php-5.3.10.tar.bz2
cd php-5.3.10/
sudo mkdir /usr/local/php/php_5.3.10
Installez PHP5.6 pour la première fois. Télécharger les sources de php
md5sum Downloads/php-5.6.11.tar.bz2
mkdir ~/Sources
cd ~Sources/
cp -Rf ../Downloads/php-5.6.11.tar.bz2 .
tar xjf php-5.6.11.tar.bz2
cd php-5.6.11/
sudo mkdir /usr/local/php/php-5.6.11
script gestionnaire de versions PHP : Créez un fichier appelé php.sh
et le mettre dans /bin/
:
#!/bin/bash
opcion=0
cat << CABECERAMENU
Opciones del menu
1 => PHP 5.3.10
2 => PHP 5.6.11
CABECERAMENU
echo -n "Ingrese su eleccion: "
read opcion
echo
case $opcion in
"1")
rm /etc/apache2/php.conf
ln -s /usr/local/php/php_5.3.10.conf /etc/apache2/php.conf
/etc/init.d/apache2 restart
;;
"2")
rm /etc/apache2/php.conf
ln -s /usr/local/php/php_5.6.11.conf /etc/apache2/php.conf
/etc/init.d/apache2 restart
;;
*)
echo "Opcion no valida"
;;
esac
Compilez et installez php 5.3 :
cd ~/Sources/php-5.3.10/
sudo ./configure --prefix=/usr/local/php/php_5.3.10 --with-config-file-path=/usr/local/php/php_5.3.10/lib --with-mysql --with-libdir=/lib/x86_64-linux-gnu --with-apxs2=/usr/bin/apxs2 --enable-zip --with-gd --with-curl --with-xmlrpc --with-freetype-dir=/usr/lib/x86_64-linux-gnu --with-jpeg-dir=/usr/lib/x86_64-linux-gnu --with-pdo-mysql --with-pdo-pgsql --enable-soap
sudo make clean
sudo make
sudo ls -lhart /usr/lib/apache2/modules/libphp5.*
sudo rm -rf /usr/lib/apache2/modules/libphp5.*
sudo make install
sudo ls -lhart /usr/lib/apache2/modules/libphp5.*
sudo rm -rf /usr/local/php/php-5.3.10/modules/libphp5.so
sudo mv /usr/lib/apache2/modules/libphp5.so /usr/local/php/php_5.3.10/modules/
ls -lhart /usr/local/php/php_5.3.10/modules/
sudo a2dismod php5
sudo service apache2 restart
Compiler et installer php 5.6
cd ~/Sources/php-5.6.11
sudo ./configure --prefix=/usr/local/php/php_5.6.11 --with-config-file-path=/usr/local/php/php_5.6.11/lib --with-mysql --with-libdir=/lib/x86_64-linux-gnu --with-apxs2=/usr/bin/apxs2 --enable-zip --with-gd --with-curl --with-xmlrpc --enable-calendar --enable-sockets --with-freetype-dir=/usr/lib/x86_64-linux-gnu --with-jpeg-dir=/usr/lib/x86_64-linux-gnu --with-pdo-mysql --with-pdo-pgsql --enable-soap
sudo make clean
sudo make
sudo ls -lhart /usr/lib/apache2/modules/libphp5.*
sudo rm -rf /usr/lib/apache2/modules/libphp5.*
sudo make install
sudo ls -lhart /usr/lib/apache2/modules/libphp5.*
sudo rm -rf /usr/local/php/php_5.6.11/modules/libphp5.so
sudo mv /usr/lib/apache2/modules/libphp5.so /usr/local/php/php_5.6.11/modules
ls -lhart /usr/local/php/php_5.6.11/modules
sudo a2dismod php5
sudo service apache2 restart
Il faut les utiliser :
$ sudo php.sh
Opciones del menu
1 => PHP 5.3.10
2 => PHP 5.6.11
Ingrese su eleccion: 1
* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
- Réponses précédentes
- Plus de réponses