Résolu le 10-06-19 LAMP + PHP X Versions

Installation, configuration et utilisation des logiciels que vous souhaitez installer.
Avatar du membre
amilcar
Messages : 98
Enregistré le : jeu. 26 nov. 2015 07:18
Localisation : 59138
Contact :

LAMP + PHP X Versions

Message par amilcar »

j'ai donc un LAMP Fonctionnel avec la dernière version php.


Mon soucis , j'ai parfois de jongler entre version php dans mon lamp

Comment faire ça ?


j'ai bien tenté ceci, mais bon pour l'instant ça casse

<quote>
Ajouter le PPA à votre système

Code : Tout sélectionner

    sudo add-apt-repository ppa:ondrej/php
mettre votre système à jour :

Code : Tout sélectionner

    sudo apt-get update
Installer de nouvelles versions de PHP

Code : Tout sélectionner

sudo apt-get install php5.6 php7.0
Vous avez maintenant deux versions complètement séparées de PHP installées sur votre système.

Vous pouvez de même obtenir toutes les extensions de cette version de PHP de la même manière que vous le feriez avec la version actuelle de PHP, en indiquant bien sûr le numéro de version.

Configurer et changer de version
Les fichiers de configuration de vos deux versions de PHP sont respectivement situés sous /etc/php/5.6 et /etc/php/7.0. C’est sous ces répertoires que vous pourrez modifier le fichier php.ini propre à chaque version, afin d’ajouter vos extensions, et paramétrer PHP plus en détail.

Activer une version de PHP

Code : Tout sélectionner

    sudo a2enmod php7.0
Désactiver une version de PHP

Code : Tout sélectionner

    sudo a2dismod php5.6
Attention deux versions de PHP ne peuvent être actives en même temps

Afin d’appliquer votre changement de version, vous devrez redémarrer votre serveur web Apache pour qu’il prenne en compte les modifications :

Code : Tout sélectionner

sudo service apache2 restart
Vous disposez maintenant de toutes les clés pour gérer les versions de PHP sur votre serveur "manuellement" !
</quote>
System: Kernel: 4.15.0-51-generic x86_64 bits: 64 compiler: gcc v: 7.3.0
Desktop: Cinnamon 4.0.10 wm: muffin dm: LightDM Distro: Linux Mint 19.1 Tessa
base: Ubuntu 18.04 bionic
Machine: Type: Portable System: Dell product: Inspiron N5110 v
CPU: Dual Core model: Intel Core i3-2310M bits: 64 type
Graphics: NVIDIA GF108M [GeForce GT 525M]
Drives: Local Storage: total: 465.76 GiB
Partition: ID-1: / size: 457.45 GiB used: 16.15 GiB (3.5%) fs: ext4 dev: /dev/sda1

Avatar du membre
cyrille
Administrateur du site
Messages : 12429
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: LAMP + PHP X Versions

Message par cyrille »

Tu n'as pas pris la méthode la plus simple
L'idée :
tu installes autant de version de php que tu veux et tu associes chacune de ces versions à un répertoire virtuel

tu suis la doc que j'ai t'ai déjà filée viewtopic.php?f=12&t=13032
pour les bases et tu adaptes en fonction de ci dessous


Un module d'apache nécessaire à ce type de conf

Code : Tout sélectionner

sudo apt install apache2 libapache2-mod-fcgid
Activer des modules d'apache :

Code : Tout sélectionner

sudo a2enmod actions fcgid alias proxy_fcgi

L'install php

Code : Tout sélectionner

sudo apt install php5.6 php5.6-fpm
sudo apt install php7.2 php7.2-fpm
Vérifier l'installation

Code : Tout sélectionner

sudo systemctl status php5.6-fpm
sudo systemctl status php7.2-fpm
Les rep de pub apache

Code : Tout sélectionner

sudo mkdir /var/www/php56
sudo mkdir /var/www/php72
avec un fichier phpinfo

Code : Tout sélectionner

echo "<?php phpinfo(); ?>" > /var/www/php56/index.php
echo "<?php phpinfo(); ?>" > /var/www/php72/index.php
Les VirtualsHosts (je te file l'exemple d'un pour l'autre tu fais de même en adaptant à la conf de phpp

Code : Tout sélectionner

sudo nano /etc/apache2/sites-available/php56.example.com.conf
<VirtualHost *:80>
    ServerName php56.example.com
    DocumentRoot /var/www/php56
    <Directory /var/www/php56>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
    <FilesMatch \.php$>
        # Apache 2.4.10+ can proxy to unix socket
        SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost/"
    </FilesMatch>
</VirtualHost>
Tu charrges ces V.Hotst et redémarre apache pour prise en compte

Code : Tout sélectionner

sudo a2ensite php56.example.com
sudo a2ensite php72.example.com
sudo systemctl restart apache2
Tu mets à jour ton /etc/hosts

Code : Tout sélectionner

127.0.0.1 php72.example.com
127.0.0.1 php56.example.com
Dans un navigateur
http://127.0.0.1/php72.example.com puis
http://127.0.0.1/php56.example.com
Et ça devrait le faire. N'ai pas testé, dsl pas le temps, mais c'est la marche à suivre ;)

Rien à redémarrer pour passer d'une version à l'autre, une fois configuré ça tourne en parallèle... ;)
Have luck

(les commandes sont pour une base bionics, sinon elles sont à adapter (si base ubuntu 16.X)
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
amilcar
Messages : 98
Enregistré le : jeu. 26 nov. 2015 07:18
Localisation : 59138
Contact :

Re: LAMP + PHP X Versions

Message par amilcar »

tu installes autant de version de php que tu veux et tu associes chacune de ces versions à un répertoire virtuel
Bingo c'est exactement ça, car pour dépanner ou upgrader certain sites j'ai besoin d'une version php précise sur un répertoire
Répertoire :
CMS 3.0 version php 5.6
CMS 3.1 version php 7.1
CMS 3.2 version php 7.2

Donc le LAMP a été installé avec la dernière version php que je peu lire dans mon fichier info.php créer pour l'occasion :
=> http://localhost/info.php
PHP Version 7.3.6-1+ubuntu18.04.1+deb.sury.org+1

Code : Tout sélectionner

<?php phpinfo(); ?>
j'install donc les versions php dont j'ai besoin

Code : Tout sélectionner

sudo apt install php5.6 php5.6-fpm
sudo apt install php7.1 php7.1-fpm
sudo apt install php7.2 php7.2-fpm
je verifie dans etc/php
j'ai 4 dossier (5.6 - 7.1 - 7.2 - 7.3)

Les repertoire dont j'ai besoin (je donne que pour 56)
/var/www/html/php56.spipfactory.fr

Dans chaque répertoire le info.php pour contrôle; a ce stade ils utilise tous php 7.3



Les VirtualsHosts

Code : Tout sélectionner

cd /etc/apache2/sites-available/
je créer les trois .conf nouveau

Code : Tout sélectionner

 sudo touch 
 php56.spipfactory.fr.conf   
avec le contenu suivant (exemple pour php56.spipfactory.fr) , j'ai fais le même pour php71 et php72

Code : Tout sélectionner

<VirtualHost *:80>
    ServerName php56.spipfactory.fr
    DocumentRoot /var/www/html/php56
    <Directory /var/www//html/php56>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
    <FilesMatch \.php$>
        # Apache 2.4.10+ can proxy to unix socket
        SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost/"
    </FilesMatch>
</VirtualHost>

bon j'arrive a rien que ce soit mon exemple ou en ayant suivie pas a pas ton tuto, je reste en php 7.3



une idée ?

actuellement
un repertoire /var/www/html/php56.spipfactory.fr
son virtual host

Code : Tout sélectionner

<VirtualHost *:80>
    ServerName php56.spipfactory.fr
    DocumentRoot /var/www/html/php56
    <Directory /var/www/html/php56>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
    <FilesMatch \.php$>
        # Apache 2.4.10+ can proxy to unix socket
        SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost/"
    </FilesMatch>
</VirtualHost>
et le host general

Code : Tout sélectionner

127.0.0.1	localhost
127.0.1.1	spipfactory
127.0.0.1   php72.spipfactory.fr
127.0.0.1   php71.spipfactory.fr
127.0.0.1   php56.spipfactory.fr
System: Kernel: 4.15.0-51-generic x86_64 bits: 64 compiler: gcc v: 7.3.0
Desktop: Cinnamon 4.0.10 wm: muffin dm: LightDM Distro: Linux Mint 19.1 Tessa
base: Ubuntu 18.04 bionic
Machine: Type: Portable System: Dell product: Inspiron N5110 v
CPU: Dual Core model: Intel Core i3-2310M bits: 64 type
Graphics: NVIDIA GF108M [GeForce GT 525M]
Drives: Local Storage: total: 465.76 GiB
Partition: ID-1: / size: 457.45 GiB used: 16.15 GiB (3.5%) fs: ext4 dev: /dev/sda1

Avatar du membre
cyrille
Administrateur du site
Messages : 12429
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: LAMP + PHP X Versions

Message par cyrille »

Tu peux filer le fichier de conf de chaque virtual hosts, thx

ainsi que

Code : Tout sélectionner

 ls -l /etc/apache2/sites-enabled/
et tes

Code : Tout sélectionner

sudo systemctl status php5.6-fpm
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
amilcar
Messages : 98
Enregistré le : jeu. 26 nov. 2015 07:18
Localisation : 59138
Contact :

Re: LAMP + PHP X Versions

Message par amilcar »

bien sur donc pour

Code : Tout sélectionner

ls -l /etc/apache2/sites-enabled/
total 0
lrwxrwxrwx 1 root root 35 juin   8 22:52 000-default.conf -> ../sites-available/000-default.conf
lrwxrwxrwx 1 root root 44 juin   9 20:50 php56.spipfactory.fr.conf -> ../sites-available/php56.spipfactory.fr.conf
lrwxrwxrwx 1 root root 44 juin   9 22:44 php71.spipfactory.fr.conf -> ../sites-available/php71.spipfactory.fr.conf
lrwxrwxrwx 1 root root 44 juin   9 22:44 php72.spipfactory.fr.conf -> ../sites-available/php72.spipfactory.fr.conf

php56.spipfactory.fr.conf

Code : Tout sélectionner

<VirtualHost *:80>
    ServerName php56.spipfactory.fr
    DocumentRoot /var/www/html/php56
    <Directory /var/www/html/php56>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
    <FilesMatch \.php$>
        # Apache 2.4.10+ can proxy to unix socket
        SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost/"
    </FilesMatch>
</VirtualHost
php71.spipfactory.fr.conf

Code : Tout sélectionner

<VirtualHost *:80>
    ServerName php71.spipfactory.fr
    DocumentRoot /var/www/html/php71
    <Directory /var/www/html/php71>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
    <FilesMatch \.php$>
        # Apache 2.4.10+ can proxy to unix socket
        SetHandler "proxy:unix:/var/run/php/php7.1-fpm.sock|fcgi://localhost/"
    </FilesMatch>
</VirtualHost>

Code : Tout sélectionner

php72.spipfactory.fr.conf
<VirtualHost *:80>
ServerName php72.spipfactory.fr
DocumentRoot /var/www/html/php72
<Directory /var/www/html/php72>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
# Apache 2.4.10+ can proxy to unix socket
SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>


Merci pour le coup de pouce et pour ton temps et ta pédagogie ;)
System: Kernel: 4.15.0-51-generic x86_64 bits: 64 compiler: gcc v: 7.3.0
Desktop: Cinnamon 4.0.10 wm: muffin dm: LightDM Distro: Linux Mint 19.1 Tessa
base: Ubuntu 18.04 bionic
Machine: Type: Portable System: Dell product: Inspiron N5110 v
CPU: Dual Core model: Intel Core i3-2310M bits: 64 type
Graphics: NVIDIA GF108M [GeForce GT 525M]
Drives: Local Storage: total: 465.76 GiB
Partition: ID-1: / size: 457.45 GiB used: 16.15 GiB (3.5%) fs: ext4 dev: /dev/sda1

Avatar du membre
cyrille
Administrateur du site
Messages : 12429
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: LAMP + PHP X Versions

Message par cyrille »

bon on va déjà voir si tes virtualhosts fonctionnent.
Dans chaque de ceux ci, par /var/www/html/php56.spipfactory.fr
tu as dû mettre un index.php avec phpinfo();

avant ce php tu mets un ligne style

Code : Tout sélectionner

echo "<p>Virtual hosts du 5.6</p>";
pour le 5.6 et tu adaptes la version pour les autres pour les autres...

Tu testes tes virtuals hosts voir si les messages ont bien un nom différent en fonction de leur config
dsl, si pas très clair, mais un peu HS ;)

(AI remarqué que sous certaines config, il faut des fois vider le cache du navigateur ou redémarrer les services réseau pour que les modif du fichier hosts soient prises en compte)

Donc on va régler les soucis 1 à 1...

Et aussi tu as quelle version d'APACHE ?
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
amilcar
Messages : 98
Enregistré le : jeu. 26 nov. 2015 07:18
Localisation : 59138
Contact :

Re: LAMP + PHP X Versions

Message par amilcar »

bon j'ai fait vite fait et j'ai bien pour chaque appel de site

http://127.0.0.1/php72.pipfactory.fr/info.php

la petite phrase qui va bien

echo " Virtual hosts du 7.2 ";


mais qui affiche
PHP logo
PHP Version 7.3.6-1+ubuntu18.04.1+deb.sury.org+1


et pour apache

Code : Tout sélectionner

 whereis apache whereis apache2
apache:
whereis: /usr/bin/whereis /usr/share/man/man1/whereis.1.gz
apache2: /usr/sbin/apache2 /usr/lib/apache2 /etc/apache2 /usr/share/apache2 /usr/share/man/man8/apache2.8.gz
Modifié en dernier par amilcar le dim. 9 juin 2019 23:17, modifié 1 fois.
System: Kernel: 4.15.0-51-generic x86_64 bits: 64 compiler: gcc v: 7.3.0
Desktop: Cinnamon 4.0.10 wm: muffin dm: LightDM Distro: Linux Mint 19.1 Tessa
base: Ubuntu 18.04 bionic
Machine: Type: Portable System: Dell product: Inspiron N5110 v
CPU: Dual Core model: Intel Core i3-2310M bits: 64 type
Graphics: NVIDIA GF108M [GeForce GT 525M]
Drives: Local Storage: total: 465.76 GiB
Partition: ID-1: / size: 457.45 GiB used: 16.15 GiB (3.5%) fs: ext4 dev: /dev/sda1

Avatar du membre
cyrille
Administrateur du site
Messages : 12429
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: LAMP + PHP X Versions

Message par cyrille »

Et ta version d'apache ?

Et tes

Code : Tout sélectionner

sudo systemctl status php5.6-fpm
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
amilcar
Messages : 98
Enregistré le : jeu. 26 nov. 2015 07:18
Localisation : 59138
Contact :

Re: LAMP + PHP X Versions

Message par amilcar »

whereis apache whereis apache2
apache:
whereis: /usr/bin/whereis /usr/share/man/man1/whereis.1.gz
apache2: /usr/sbin/apache2 /usr/lib/apache2 /etc/apache2 /usr/share/apache2 /usr/share/man/man8/apache2.8.gz
System: Kernel: 4.15.0-51-generic x86_64 bits: 64 compiler: gcc v: 7.3.0
Desktop: Cinnamon 4.0.10 wm: muffin dm: LightDM Distro: Linux Mint 19.1 Tessa
base: Ubuntu 18.04 bionic
Machine: Type: Portable System: Dell product: Inspiron N5110 v
CPU: Dual Core model: Intel Core i3-2310M bits: 64 type
Graphics: NVIDIA GF108M [GeForce GT 525M]
Drives: Local Storage: total: 465.76 GiB
Partition: ID-1: / size: 457.45 GiB used: 16.15 GiB (3.5%) fs: ext4 dev: /dev/sda1

Avatar du membre
cyrille
Administrateur du site
Messages : 12429
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: LAMP + PHP X Versions

Message par cyrille »

Code : Tout sélectionner

man whereis
ça ne donne pas la version d'apache....

Code : Tout sélectionner

httpd -v
ou sinon phpinfo() te la retourne aussi

Et que donne

Code : Tout sélectionner

sudo systemctl status php5.6-fpm
pour chaque version de php
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Répondre