Existe-t-il un moyen d'utiliser deux versions de PHP dans XAMPP?

157

Nous utilisons XAMPP avec PHP 7.0 car nos nouveaux produits nécessitent PHP 7.

Mais il y a d'anciens projets qui utilisent des fonctions comme mysql_connect, etc. Ceux-ci sont supprimés dans PHP 7.0.

Alors, y a-t-il un moyen de changer facilement les versions de PHP dans XAMPP?

Remarque : veuillez ne pas suggérer de mettre à niveau l'ancien projet vers une version compatible avec les nouvelles versions car je ne suis pas en mesure de le faire à cause de ces décisions que je ne peux pas obtenir en tant que développeur (juste un employé).

Je suis la personne la plus stupide
la source
Je ne pense pas qu'il existe une solution de contournement à ce que vous voulez faire autre que la mise à niveau. De plus, vous ne devriez pas trouver de moyens de rendre compatibles les API anciennes et obsolètes. Ils devraient être supprimés totalement. Évidemment, c'est beaucoup de travail, mais cela garantirait la tranquillité d'esprit
Rotimi
1
J'arrête et démarre Apache lorsque je souhaite changer de version de PHP dans MAMP. C'est une douleur, mais ça marche.
Scott C Wilson
vous pourriez dual boot
vous pouvez créer un hôte virtuel puis spécifier la version php pour chacun d'eux
Aref Ben Lazrek
2
@IlmariKaronen Je souhaite basculer entre eux sur votre poste de travail de développement. Je veux simplement utiliser PHP 5 lorsque je fais le projet A, je veux PHP 7 lorsque je fais le projet B. Même la réponse la plus élevée ne fonctionne pas, je ne la trouve pas ... Et de nombreux utilisateurs ..
Je Je suis la personne la plus stupide

Réponses:

133

Pourquoi basculer entre les versions de PHP lorsque vous pouvez utiliser plusieurs versions de PHP en même temps avec une seule installation xampp ? Avec une seule installation xampp, vous avez 2 options:

  1. Exécutez une ancienne version de PHP uniquement pour le répertoire de votre ancien projet: cela servira la plupart du temps, vous pouvez avoir un ou deux anciens projets que vous avez l'intention d'exécuter avec une ancienne version de PHP. Configurez simplement xampp pour exécuter une ancienne version de PHP uniquement pour ces répertoires de projet.

  2. Exécutez une ancienne version de PHP sur un port distinct de xampp: Parfois, vous pouvez mettre à niveau un ancien projet vers la dernière version de PHP lorsque vous devez exécuter le même projet sur une nouvelle et une ancienne version de PHP dans les deux sens. Ensuite, vous pouvez définir une ancienne version de PHP sur un port différent (disons 8056), donc lorsque vous allez sur http://localhost/any_project/xampp, lancez PHP 7 et lorsque vous accédez à http://localhost:8056/any_project/xampp, lancez PHP 5.6.

  3. Exécutez une ancienne version de PHP sur un hôte virtuel: vous pouvez créer un hôte virtuel comme localhost56 pour exécuter PHP 5.6 tandis que vous pouvez utiliser PHP 7 sur localhost.

Permet de le configurer.

Étape 1: Téléchargez PHP

Donc, vous avez PHP 7 sous xampp, vous voulez y ajouter une ancienne version de PHP, disons PHP 5.6. Téléchargez la version nts (Non Thread Safe) de l'archive zip PHP à partir de php.net (voir l' archive pour les anciennes versions) et extrayez les fichiers sous c:\xampp\php56. La version thread-safe n'inclut pas php-cgi.exe.

Étape 2: Configurerphp.ini

Ouvrez le c:\xampp\php56\php.inifichier dans le bloc-notes. Si le fichier n'existe pas, copiez- php.ini-developmentle php.iniet ouvrez-le dans le bloc-notes. Décommentez ensuite la ligne suivante:

extension_dir = "ext"

Étape 3: Configurer Apache

Ouvrez le panneau de configuration de xampp, cliquez sur le bouton de configuration pour apache, puis cliquez sur Apache (httpd-xampp.conf). Un fichier texte s'ouvre et place les paramètres suivants au bas du fichier:

ScriptAlias /php56 "C:/xampp/php56"
Action application/x-httpd-php56-cgi /php56/php-cgi.exe
<Directory "C:/xampp/php56">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

Remarque: vous pouvez ajouter d'autres versions de PHP à votre installation xampp en suivant les étapes 1 à 3 si vous le souhaitez.

Étape 4 (option 1): [Ajouter des répertoires pour exécuter une version PHP spécifique]

Vous pouvez maintenant définir des répertoires qui fonctionneront avec PHP 5.6. Ajoutez simplement ce qui suit au bas du fichier de configuration pour définir les répertoires.

<Directory "C:\xampp\htdocs\my_old_project1">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</Directory>

<Directory "C:\xampp\htdocs\my_old_project2">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</Directory>

Étape 4 (option 2): [Exécutez l'ancienne version de PHP sur un port séparé]

Maintenant, pour définir PHP v5.6 sur le port 8056, ajoutez le code suivant au bas du fichier de configuration.

Listen 8056
<VirtualHost *:8056>
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</VirtualHost>

Étape 4 (option 3): [Exécuter une ancienne version de PHP sur un hôte virtuel]

Pour créer un hôte virtuel (localhost56) sur un répertoire (htdocs56) pour utiliser PHP v5.6 sur http: // localhost56 , créez le répertoire htdocs56 à l'emplacement souhaité et ajoutez localhost56 à votre fichier hosts ( voir comment ), puis ajoutez le code suivant au bas du fichier httpd-xampp.conf.

<VirtualHost localhost56:80>
    DocumentRoot "C:\xampp\htdocs56"
    ServerName localhost56
    <Directory "C:\xampp\htdocs56">
        Require all granted    
    </Directory>
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56-cgi
    </FilesMatch>
</VirtualHost>

Terminer: enregistrer et redémarrer Apache

Enregistrez et fermez le fichier de configuration, redémarrez apache à partir du panneau de configuration xampp. Si vous avez opté pour l'option 2, vous pouvez voir le port supplémentaire (8056) répertorié dans votre panneau de configuration xampp.

entrez la description de l'image ici

Mise à jour pour l'erreur: en-
tête mal formé du script 'php-cgi.exe': en-tête incorrect

Si vous rencontrez l'erreur ci-dessus, ouvrez à httpd-xampp.confnouveau et commentez la ligne suivante avec un # (caractère dièse).

SetEnv PHPRC "\\path\\to\\xampp\\php"
Munim Munna
la source
9
Salut, j'essayais cette méthode (Étape 4 Option 1), mais j'obtiens un en-tête malformé d'erreur du script 'php-cgi.exe': Mauvais en-tête: <br />, des idées quel pourrait être le problème?
Priyanshu du
@Priyanshu est-ce que votre installation PHP est OK? Pouvez-vous exécuter des fichiers PHP à partir de la ligne de commande comme php somefile.phpsans aucune erreur?
Munim Munna
2
La réponse ne contient même plus le code à inclure SetEnv PHPRC, je ne peux donc pas la commenter, mais j'obtiens toujours cette erreur. :(
Brett
1
Salut. lorsque j'exécute localhost: 8056, j'obtiens la page objet non trouvé.
nas
1
quelqu'un capable de travailler plusieurs versions de php avec xdebug? j'ai euError message: End of script output before headers: php-cgi.exe
Noman
87

Vous pouvez télécharger toutes les versions de PHP dont vous avez besoin et les placer dans leurs propres répertoires, par exemple

c:\php5\

c:\php7\

Tout ce que vous avez à faire est d'indiquer à votre serveur Web (Apache) la version de PHP à utiliser, ce que vous faites en chargeant le module approprié. Dans Apache, vous pouvez le faire en recherchant le fichier httpd.conf, puis en modifiant la ligne appropriée:

LoadModule php7_module c:\php7\libphp7.so

Vous devrez bien sûr trouver les bons chemins - c'est juste à titre d'illustration.

Enregistrez httpd.confet redémarrez votre serveur. Notez que si vous ne le redémarrez pas, les modifications ne prendront pas effet.

Il n'y a pas de commutateur GUI pour pouvoir le faire, vous devez éditer le .conffichier, puis redémarrer Apache. Cela ne prend que quelques secondes et vous pouvez même commenter une version afin que le "changement" ne prenne que quelques touches, par exemple

Utilisez PHP 5:

LoadModule php5_module c:\php5\libphp5.so
#LoadModule php7_module c:\php7\libphp7.so

Utilisez PHP 7:

#LoadModule php5_module c:\php5\libphp5.so
LoadModule php7_module c:\php7\libphp7.so

Vous n'avez pas besoin de plusieurs versions de XAMPP , ni de double démarrage, ni d'utiliser une machine différente, ou l'une des autres «solutions» qui ont suggéré des solutions de contournement compliquées. L'OP veut utiliser XAMPP et lui dire quelle version de PHP utiliser. C'est le moyen le plus rapide et le plus efficace de le faire, et ne nécessite qu'une seule installation XAMPP.

Edit 1-Nov-2017: Apparemment, certaines personnes disent qu'il n'y a pas de .sofichiers sur Windows. La réponse que j'ai donnée a été adaptée de la façon dont j'ai configuré les choses sur mon Mac (qui utilise des .sofichiers au lieu de .dll). Le principe de la réponse est cependant toujours exactement correct. Vous utilisez le fichier de configuration d'Apache, httpd.confpour spécifier l' emplacement du module PHP ( .soou .dll) sur votre système. La seule différence pour Windows serait donc le nom du fichier et / ou l'emplacement du chemin. La réponse que j'ai donnée est également correcte pour une installation vanille d'Apache / PHP (sans XAMPP du tout).

Andy
la source
3
J'ai de nouveau vérifié. Je n'ai pas pu le trouver. Pouvez-vous s'il vous plaît vérifier mon fichier httpd.conf. Ceci est la copie de celui-ci. freetexthost.com/sjxz4lh1i5 S'il vous plaît laissez-moi savoir si vous trouvez cette ligne que je devrais changer.
Je suis la personne la plus stupide du
2
Il n'y a pas de libphp7.so dans XAMPP et de chaîne LoadModule dans le fichier de configuration
Federico Schiocchet
2
Je n'ai pas non plus pu trouver cette entrée. J'ai également cherché dans mon répertoire php et je n'ai trouvé aucun fichier .so.
Eoin
19
Dans la version 3.2.2, la ligne se trouve dans xampp / apache / conf / extra / httpd-xampp.conf
Manuel
5
Ce n'est pas qu'une seule ligne. Vous devez éditer une bonne partie de httpd-xampp.conf. Il est donc préférable de changer tout httpd-xampp.conf à chaque fois que vous le devez.
Jeffz
34

Vous pouvez télécharger et installer deux xampps différents comme je le fais: (le premier est php7, le second est php5) entrez la description de l'image ici

et si vous ne voulez pas faire cela, je vous suggère d'utiliser wamp et de changer les versions comme indiqué ici .

Maulik Gangani
la source
4
Pourquoi voudriez-vous faire cela? Vous installez à nouveau un grand nombre des mêmes logiciels, juste pour une petite différence (version différente de PHP, alors que le reste des logiciels comme Apache et MySQL est exactement le même). J'ai publié une solution où vous pouvez simplement utiliser 1 installation de XAMPP et la pointer vers la version appropriée de PHP.
Andy
15
Pourquoi voudriez-vous faire cela? parce que cela fonctionne, et cela ne me dérange pas d'avoir plusieurs apache et mysql installés si cela fait gagner du temps.
Maulik Gangani
23
pas besoin de se soucier des meilleures pratiques ici, c'est un environnement local
Ricardo Vigatti
2
J'utilise cette approche, en plus, je vous recommande d'ajouter des entrées de menu de démarrage spécifiques pour chaque installation, comme: C: \ ProgramData \ Microsoft \ Windows \ Menu Démarrer \ Programmes \ XAMPP56 et C: \ ProgramData \ Microsoft \ Windows \ Menu Démarrer \ Programmes \ XAMPP7 par exemple
Ricardo Vigatti
2
Si ce n'est pas une bonne solution, pourquoi ne publiez-vous pas une solution correcte? En fait, il est très difficile d'installer 2 versions sur le même xampp et toutes les solutions ici sont fausses ...
Federico Schiocchet
12

Je recommanderais d'utiliser Docker, cela vous permet de diviser l'environnement en différents composants et de mélanger et faire correspondre ceux que vous voulez à tout moment.

Docker vous permettra d'exécuter un conteneur avec MySQL, un autre avec PHP. Comme ce sont des images séparées, vous pouvez avoir deux conteneurs, un PHP 5 et un autre PHP 7, vous démarrez celui que vous souhaitez et le port 80 peut être mappé sur les deux conteneurs.

https://hub.docker.com propose une large gamme d'images préconfigurées que vous pouvez installer et exécuter sans trop de tracas.

J'ai également ajouté portainer en tant qu'image, ce qui vous permet de gérer les différents aspects de la configuration de votre docker - à partir d'une image de docker (j'ai démarré ce conteneur au démarrage pour m'éviter d'avoir à utiliser la ligne de commande). Il ne fait pas tout pour vous et il est parfois plus facile de configurer et de lancer les images pour la première fois à partir de la ligne de commande, mais une fois la configuration terminée, vous pouvez les démarrer et les arrêter via une interface Web.

Il est également possible d'exécuter les deux conteneurs en même temps et de mapper des ports distincts à chacun. Ainsi, le port 80 peut être mappé à PHP 5 et 81 à PHP 81 (ou PHP 7 si vous regardez cela en 2017).

Il existe différents didacticiels sur la façon d'installer Docker ( https://docs.docker.com/engine/installation/ ) et de nombreux autres éléments de type `` comment ''. Essayez http://www.masterzendframework.com/docker-development-environment/ pour une configuration d'environnement de développement.

Nigel Ren
la source
J'appuie cela. Rendez service à votre entreprise et lancez Docker. Changez de version de PHP, intégrez plus rapidement les nouveaux développeurs, facilitez le déploiement et pas de surprises en production.
Kris Peeling
et 81 à PHP 81. voulez-vous dire PHP 7? Je pense que nous sommes encore loin de PHP 81 :)
Andy
2
Errrr ... Je voulais vraiment dire 81 (je m'assure que ma réponse est à l'épreuve du temps: - /)
Nigel Ren
1
@NigelRen Je ne l'ai pas voté à la baisse, mais je suppose que c'est parce que vous proposez d'utiliser une solution complètement différente (Docker) plutôt que de vous demander comment c'est possible dans XAMPP - ce qui est certainement le cas. Votre réponse est une (très bonne) solution alternative au problème, mais pas une réponse à la question posée.
Andy
7

J'utilise Uniserver.

Il a cette fonctionnalité intégrée.

http://www.uniformserver.com/

C'est si simple.

Uniform Server est une solution de serveur WAMP légère et gratuite pour Windows. Moins de 24 Mo, conception modulaire, comprend les dernières versions d'Apache2, Perl5, PHP (basculement entre PHP53, PHP54, PHP55 ou PHP56), MySQL5 ou MariaDB5, phpMyAdmin ou Adminer4. Aucune installation requise! Pas de poussière de registre! Déballez et allumez!

Il fonctionne même sur un lecteur flash. Possède une émulation cron, un support pour perl, mariaDB, quelques versions de Mysql, un serveur filezilla et quelques autres choses.

entrez la description de l'image ici

ArtistiquePhoenix
la source
C'est la meilleure solution que je pense. J'ai sauvé ma vie.
skpaul
Je reçois une alerte virale. Win32 / Uwamson.A! Ml
Norman Huth
6

Vous pouvez avoir deux versions différentes de XAMPP.

  • Téléchargez ces fichiers depuis https://www.apachefriends.org/download.html et installez-les dans un répertoire de votre choix, par exemple dans C: \ 5.6.31 \ xampp et C: \ 7.1.18 \ xampp.
  • Après chaque installation, allez dans le répertoire installé (ex. C: \ 5.6.31 \ xampp, C: \ 7.1.18 \ xampp) et démarrez le "setup_xampp.bat" et vous devriez voir quelque chose comme ça.
  • Vous pouvez créer des raccourcis de "xampp-control.exe" sur votre bureau (clic droit sur "xampp-control.exe" Envoyer vers -> Bureau) et renommer les raccourcis par ex. "xampp 5.6.31" et "xampp 7.1.8".
  • Démarrez le panneau de configuration XAMPP en double-cliquant sur "xampp-control.exe" ou sur le raccourci précédemment créé et démarrez les serveurs Apache et MySQL.
  • Pour tester l'installation, ouvrez votre navigateur et tapez 127.0.0.1 ou localhost dans la barre d'adresse. Vous devriez voir l'écran de démarrage de XAMPP.
  • N'ouvrez pas plus d'un panneau de contrôle XAMPP.
  • Désinstaller XAMPP? Supprimez simplement le répertoire "xampp". Mais avant, veuillez arrêter apache et mysql.
  • C'est tout. Vous pouvez utiliser différentes versions de php en ouvrant le panneau de contrôle XAMPP correspondant.
og1842
la source
Si c'est vraiment possible, faites-le avec 1 installation, pourquoi ne publiez-vous pas de solution? En fait, il est très difficile d'installer 2 versions et toutes les solutions ici sont fausses ...
Federico Schiocchet
@Andy Si DB n'est pas si grand, la double installation est une option viable. Mais votre réponse a eu mon avis positif.
Jeffz
6

Je travaille sur un projet vieux de dix ans au travail. Donc 5.6 est ma valeur par défaut. Il existe également des petits projets plus anciens qui ne fonctionnent qu'avec la version 5.2 et je souhaite également travailler sur de nouvelles versions pour mes projets personnels avec la version 7.3.8

Voici ce que j'ai fait pour ajouter 5.2 et 7.3.8 sur la version 5.6 par défaut.

1 - Versions téléchargées de php TS;

2 - Extrait dans le dossier c: \ xampp \ php738 et c: \ xampp \ php52 dans l'ordre

3 - Ajout de ces lignes en bas de httpd-xampp.conf (ou httpd.conf);

*** AVIS IMPORTANT: Vous ne devez PAS utiliser le nom d'alias de script comme nom de dossier cible, ils doivent être différents. (par exemple / php7x est ok, / php7 ne l'est pas)

PHP 7.3.8 pour le dossier D: \ www \ php7

ScriptAlias /php7x "C:/xampp/php738"
Action application/x-httpd-php7-cgi /php7x/php-cgi.exe
<Directory "C:/xampp/php738">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

<Directory "D:\www\php7">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php7-cgi
    </FilesMatch>
</Directory>

PHP 5.2 pour le dossier D: \ www \ php52

ScriptAlias /phpold "C:/xampp/php52"
Action application/x-httpd-phpold-cgi /phpold/php-cgi.exe
<Directory "C:/xampp/php52">
    AllowOverride None
    Options None
    Require all denied
    <Files "php-cgi.exe">
        Require all granted
    </Files>
</Directory>

<Directory "D:\www\php52">
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-phpold-cgi
    </FilesMatch>
</Directory>

Quelques notes utiles:

  • Si vous rencontrez des problèmes avec php5.x lors de l'utilisation du terminal de commutation de composer vers la version 7.3.8
  • Si vous voulez faire de php 7.3.8 votre interpréteur php de ligne de commande par défaut sous Windows, changez simplement le chemin de votre environnement Windows pour php en chemin du dossier 7.3.8.
  • N'oubliez pas de modifier vos confs php.ini pertinents selon vos besoins dans chaque dossier de version.

Et comme dernier bonus, si vous avez besoin de définir un hôte virtuel avec l'une des versions, vous pouvez utiliser une approche similaire. Un échantillon laravel vhost conf pour php 7.3.8;

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "D:\www\vhosts\laravel.local\public"
ServerName  laravel.local
<FilesMatch "\.php$">
 SetHandler application/x-httpd-php7-cgi # escape for default php version
#SetHandler application/x-httpd-phpold-cgi # unescape for php 5.2
</FilesMatch>

ErrorLog "logs/laravel.local.log"
CustomLog "logs/laravel.local.log" combined

Merci à @Munim Munna pour une réponse détaillée, je voulais partager un échantillon solide avec la remarque importante ci-dessus.

Erdinç Çorbacı
la source
5

À moins que ce ne soit absolument et définitivement XAMPP, vous pouvez essayer d'obtenir ce que vous voulez avec WAMP. WAMP est à peu près la même chose dans un package différent.

Une fois que vous l'avez installé, vous pouvez simplement basculer entre les versions de php ici:

entrez la description de l'image ici

Vous pouvez installer autant de versions de PHP que nécessaire.

Voici comment cela se fait en détail.

Allez simplement ici: Télécharger WAMP

Ensuite, sélectionnez votre serveur de base, par exemple le dernier avec php7.

Ensuite, lorsque WAMP 3 est installé, allez dans le dossier: addons et sélectionnez la ou les versions de php que vous recherchez. Ils offrent des saveurs php à partir de php 5.3.29, qui devraient fonctionner avec mysql_connect.

Pour installer l'addon, lors de l'installation (double-cliquez sur le fichier exe), pointez simplement sur le dossier où vous avez installé votre WAMP 3.

Ensuite, vous pouvez utiliser le contenu d'autres dossiers, tels que: applications, etc. pour ajouter plus de fonctionnalités

Tout est interfacé, vous pouvez donc vous concentrer sur le codage et non sur le piratage de votre environnement.

Jeffz
la source
4

Oui, vous pouvez. Je suppose que vous avez déjà installé un xampp. Alors,

  • Fermez toutes les instances xampp. L'utilisation du gestionnaire de tâches arrête apache et mysqld.
  • Puis renommez le xampp en xampp1 ou quelque chose après le nom de xampp.
  • Téléchargez maintenant l'autre version de xampp. Créez uniquement un nom de dossier xampp. Installez-y le xampp téléchargé.
  • Maintenant, en fonction de la version xampp de vos besoins, renommez simplement le dossier cible en xampp uniquement et l'autre dossier sous un nom différent.

Voilà comment je travaille avec plusieurs xampp installés

Shuvro
la source
4
Je ne sais pas pourquoi cela est downvotet car cette réponse fonctionne et c'est exactement ce que la question pose. Un vote négatif silencieux sans suggérer d'améliorations n'est pas du tout une chose intelligente en général.
Fabian Schöner
@ FabianSchöner Merci. Je ne sais pas pourquoi je recevais un vote négatif sur cette réponse.
Shuvro
1
La raison pour laquelle il a été refusé est que quelqu'un a déjà publié exactement cette réponse. Et deuxièmement, c'est une façon totalement inutile de faire les choses puisque vous réinstallez TOUS les mêmes logiciels juste pour obtenir une petite différence. Il est possible - comme indiqué dans la réponse que j'ai publiée - d'utiliser 1 installation de XAMPP, puis de la configurer pour utiliser différentes versions de PHP.
Andy
3

Il est possible de configurer plusieurs versions de PHP avec une seule installation XAMPP. Les instructions ci-dessous fonctionnent pour Windows.

  1. Installez la dernière version de XAMPP pour Windows (dans mon cas, c'était avec PHP 7.1)
  2. Assurez-vous qu'Apache ne s'exécute pas à partir du panneau de configuration XAMPP
  3. Renommez le répertoire php dans le répertoire d'installation de XAMPP, par exemple C:\xampp\phpdevenir C:\xampp\php-7.1.11.
  4. Téléchargez la version de PHP que vous souhaitez exécuter en plus (Ex: PHP 5.4.45 )
  5. Déplacez le répertoire php de la version que vous avez téléchargée vers le répertoire d'installation de XAMPP. Renommez-le pour qu'il inclue la version PHP. Tels que C:\xampp\php-5.4.45.

Vous devez maintenant modifier la configuration XAMPP et Apache:

  1. Dans C:\xampp\apache\conf\httpd.conf, recherchez les paramètres XAMPP pour PHP, vous devez le changer en quelque chose comme:

Où vous devez commenter (avec #) les autres versions de PHP afin qu'une seule Includesoit interprétée à la fois.

#XAMPP settings PHP 7
Include "conf/extra/httpd-xampp.conf.7.1"

#XAMPP settings PHP 5.4.45
#Include "conf/extra/httpd-xampp.conf.5.4.45"
  1. Maintenant , dans C:\xampp\apache\conf\extrarenommage de répertoire httpd-xampp.confpour httpd-xampp.conf.7.1et ajouter un nouveau fichier de configuration httpd-xampp.conf.5.4.45. Dans mon cas, j'ai copié le fichier de configuration d'une autre installation de XAMPP pour php 5.5 car la syntaxe peut être légèrement différente pour chaque version.

  2. Editez httpd-xampp.conf.5.4.45et httpd-xampp.conf.7.1remplacez là toute la référence au phprépertoire par la nouvelle php-X.Xversion. Il y a au moins 10 modifications à apporter ici pour chaque fichier.

  3. Vous devez maintenant éditer php.ini pour les deux versions. Par exemple , pour php 7.1, modifier C:\xampp\php-7.1.11\php.inioù vous remplacerez le chemin du répertoire php pour include_path, browscap, error_log, extension_dir..

Et c'est tout. Vous pouvez maintenant démarrer Apache à partir du panneau de configuration XAMPP. Et pour passer d'une version à une autre, il vous suffit d'éditer C:\xampp\apache\conf\httpd.confet de changer la version PHP incluse avant de redémarrer Apache.

maxime_039
la source
3

exécutez-le dans les fenêtres d'invite de commandes (cmd.exe).

set PATH=C:\xampp\php;%PATH%

changez-le en fonction de l'emplacement de l'installation de php 7.

Adam Endvy
la source
2

Vous n'avez pas besoin de perdre votre temps avec ces configurations, utilisez simplement MAMP :)

MAMP a une fonction de sélection de version PHP sur l'interface.

Gokturk
la source
2

C'est probablement la réponse la moins technique à la question, mais c'est aussi la plus simple à réaliser.

Si vous avez deux lecteurs tels que C: et D: vous pouvez installer une instance distincte de XAMPP sur les deux lecteurs avec des versions php différentes. Cela m'a pris moins de 10 minutes à faire et est le moins sujet aux erreurs.

Je viens de créer deux raccourcis de bureau vers xampp-control.exe et nommez les raccourcis après leur version php. J'espère que cela aide quelqu'un comme moi qui préfère une solution très rapide et sale.

JacobRossDev
la source
1

Suivez ces étapes simples . J'utilise actuellement XAMPP sur PHP 7.2 mais j'ai besoin de PHP 5.6 pour travailler sur d'anciens projets

ÉTAPE 1

Téléchargez la version Thread Safe de PHP sur https://windows.php.net/download

Placez les fichiers sur votre [Drive]: \ xampp \ php5.6

  • Renommez le dossier en fonction de la version Php

ÉTAPE 2

Copiez [Lecteur]: \ xampp \ apache \ conf \ extra \ httpd-xampp.conf

Renommez-le en [Drive]: \ xampp \ apache \ conf \ extra \ httpd-xampp5.6.confRenommez le fichier en fonction de la version de Php

ÉTAPE 3

Modifiez le nouveau 'httpd-xampp5.6.conf'

fondamentalement, vous devez changer toutes les sources PHP et .dll

Avant

LoadFile "C:/xampp/php/php7ts.dll"
LoadFile "C:/xampp/php/libpq.dll"
LoadModule php7_module "C:/xampp/php/php7apache2_4.dll"

Après

LoadFile "C:/xampp/php5.6/php5ts.dll"
LoadFile "C:/xampp/php5.6/libpq.dll"
LoadModule php5_module "C:/xampp/php5.6/php5apache2_4.dll"

Voici mon fichier: https://gist.github.com/mpalencia/f8a20c31bffb02fe20d371218c23d1ec

ÉTAPE 4

Modifiez le fichier [Drive]: \ xampp \ apache \ conf \ httpd.conf

Avant

# XAMPP settings
Include "conf/extra/httpd-xampp.conf"

Après

# XAMPP settings
Include "conf/extra/httpd-xampp5.6.conf"
  • Vous pouvez simplement modifier cette ligne lors du passage à une version différente

ÉTAPE 5

Modifiez votre configuration PHP 5.6 - php.ini

Ajoutez votre répertoire d'extension: extension_dir = "C: \ xampp \ php5.6 \ ext"

ÉTAPE 6

Démarrez Apache

ÉTAPE 7

Modifier le chemin de la variable d'environnement PHP sous Windows

mpalencia
la source
0

Peut-être un peu tard, mais j'utilise un lot pour renommer les dossiers PHP (une version légèrement modifiée du phpswitch que j'ai trouvée il y a des années).

Vous copiez les différents dossiers dans votre installation XAMPP. Chaque dossier PHP (à l'exception du dossier actif) reçoit le numéro de version sous forme de suffixe (par exemple, php_5.6.32 ). Dans TOUS les dossiers PHP, un fichier (PHP_VERSION) est créé, qui ne contient que le numéro de version respectif, afin que le script puisse saisir ces informations. Mais tout est décrit dans le README.

Depuis PHP7, le httpd-xampp.conf charge le php7ts.dll au lieu du php5ts.dll . J'ai donc dû étendre le script (PHPSwitch.php) pour renommer ces fichiers de configuration également en suivant la même approche.

    $renameCur = new PHPSwitch_Rename($currInst['path'], $this->_cfg['phpInstallationsPath'] . $this->_cfg['phpDirName'] . '_' . $currInst['version']);
    $renameNew = new PHPSwitch_Rename($newInst['path'], $this->_cfg['phpInstallationsPath'] . $this->_cfg['phpDirName']);

    $apache_curent      = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp.conf";
    $apache_curent_rename   = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp_".$currInst['version'].".conf";
    $apache_new             = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp_".$newInst['version'].".conf";
    $apache_new_rename      = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp.conf";

    $renameCur_apache_conf = new PHPSwitch_Rename($apache_curent, $apache_curent_rename);
    $renameNew_apache_conf = new PHPSwitch_Rename($apache_new, $apache_new_rename);

    $transaction = new PHPSwitch_Rename_Transaction();
    $transaction->add($renameCur);
    $transaction->add($renameNew);
    $transaction->add($renameCur_apache_conf);
    $transaction->add($renameNew_apache_conf);
Ebby
la source
0

J'avais besoin de faire la même chose, alors j'ai cherché sur Google comment et je suis arrivé au débordement de la pile, où l'OP avait le même problème ... Donc mes découvertes .. J'ai essayé de renommer des fichiers de toutes les directions différentes ET ma conclusion était essentiellement que cela me prenait trop long. SOOOO J'ai fini par installer la version 7 à partir d'ici:

https://www.apachefriends.org/index.html (tuez les services et quittez xampp avant de tenter)

Lorsqu'on lui a demandé où mettre le nom du répertoire comme tel (donnez-lui un nom différent):

entrez la description de l'image ici

et

DONEZO! Maintenant, assurez-vous simplement de tuer les services et de quitter avant de permuter et vous avez 2 envs XAMPP stériles pour jouer.

Hourra! maintenant je peux me mettre au travail!

hackdotslashdotkill
la source
Je pense que c'est déjà suggéré par 2 réponses ci-dessus, Maulik Gangani et og1842.
Munim Munna
0

Utilisez ce commutateur php

Vous pouvez contrôler la version php de n'importe quel projet de votre choix via vhost config.

étape
la source
0

Je sais que c'est l'ancien article mais je veux partager qu'il existe une bibliothèque pour toujours exécuter mysql_connect () dans PHP 7. Cela fonctionne en remplaçant la fonction réelle (mysql_connect () est remplacé par mysqli_connect () qui fonctionne sur cette bibliothèque).

J'ai trouvé de cette vidéo https://www.youtube.com/watch?v=Eqd-jJu4sQ4

j'espère que cela aide

f_anto
la source