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é).
Réponses:
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.
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.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.
É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: Configurer
php.ini
Ouvrez le
c:\xampp\php56\php.ini
fichier dans le bloc-notes. Si le fichier n'existe pas, copiez-php.ini-development
lephp.ini
et ouvrez-le dans le bloc-notes. Décommentez ensuite la ligne suivante:É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: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.
É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.
É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.
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.
Si vous rencontrez l'erreur ci-dessus, ouvrez à
httpd-xampp.conf
nouveau et commentez la ligne suivante avec un # (caractère dièse).la source
php somefile.php
sans aucune erreur?SetEnv PHPRC
, je ne peux donc pas la commenter, mais j'obtiens toujours cette erreur. :(Error message: End of script output before headers: php-cgi.exe
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.conf
et 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
.conf
fichier, 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 exempleUtilisez PHP 5:
Utilisez PHP 7:
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
.so
fichiers 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.so
fichiers au lieu de.dll
). Le principe de la réponse est cependant toujours exactement correct. Vous utilisez le fichier de configuration d'Apache,httpd.conf
pour spécifier l' emplacement du module PHP (.so
ou.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).la source
Vous pouvez télécharger et installer deux xampps différents comme je le fais: (le premier est php7, le second est php5)
et si vous ne voulez pas faire cela, je vous suggère d'utiliser wamp et de changer les versions comme indiqué ici .
la source
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.
la source
J'utilise Uniserver.
Il a cette fonctionnalité intégrée.
http://www.uniformserver.com/
C'est si simple.
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.
la source
Vous pouvez avoir deux versions différentes de XAMPP.
la source
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;
v7.3.8 (dernière): https://windows.php.net/download/
v5.2: https://www.apachelounge.com/viewtopic.php?t=7349
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
PHP 5.2 pour le dossier D: \ www \ php52
Quelques notes utiles:
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;
Merci à @Munim Munna pour une réponse détaillée, je voulais partager un échantillon solide avec la remarque importante ci-dessus.
la source
À 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:
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.
la source
Oui, vous pouvez. Je suppose que vous avez déjà installé un xampp. Alors,
Voilà comment je travaille avec plusieurs xampp installés
la source
Il est possible de configurer plusieurs versions de PHP avec une seule installation XAMPP. Les instructions ci-dessous fonctionnent pour Windows.
C:\xampp\php
devenirC:\xampp\php-7.1.11
.C:\xampp\php-5.4.45
.Vous devez maintenant modifier la configuration XAMPP et Apache:
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 seuleInclude
soit interprétée à la fois.Maintenant , dans
C:\xampp\apache\conf\extra
renommage de répertoirehttpd-xampp.conf
pourhttpd-xampp.conf.7.1
et ajouter un nouveau fichier de configurationhttpd-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.Editez
httpd-xampp.conf.5.4.45
ethttpd-xampp.conf.7.1
remplacez là toute la référence auphp
répertoire par la nouvellephp-X.X
version. Il y a au moins 10 modifications à apporter ici pour chaque fichier.Vous devez maintenant éditer php.ini pour les deux versions. Par exemple , pour php 7.1, modifier
C:\xampp\php-7.1.11\php.ini
où vous remplacerez le chemin du répertoire php pourinclude_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.conf
et de changer la version PHP incluse avant de redémarrer Apache.la source
exécutez-le dans les fenêtres d'invite de commandes (cmd.exe).
changez-le en fonction de l'emplacement de l'installation de php 7.
la source
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.
la source
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.
la source
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
É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
Après
Voici mon fichier: https://gist.github.com/mpalencia/f8a20c31bffb02fe20d371218c23d1ec
ÉTAPE 4
Modifiez le fichier [Drive]: \ xampp \ apache \ conf \ httpd.conf
Avant
Après
É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
la source
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.
la source
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):
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!
la source
Utilisez ce commutateur php
Vous pouvez contrôler la version php de n'importe quel projet de votre choix via vhost config.
la source
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
la source