¿Hay alguna forma de usar dos versiones de PHP en XAMPP?

157

Estamos ejecutando XAMPP con PHP 7.0 porque nuestros nuevos productos requieren PHP 7.

Pero hay proyectos antiguos que utilizan funciones como mysql_connect, etc. Se eliminan en PHP 7.0.

Entonces, ¿hay alguna manera de cambiar fácilmente las versiones de PHP en XAMPP?

Nota : No sugiera actualizar el proyecto anterior a compatible con nuevas versiones porque no estoy en condiciones de hacerlo debido a las decisiones que no puedo tomar como desarrollador (solo un empleado).

Soy la persona mas estupida
fuente
No creo que haya una solución alternativa a lo que desea hacer además de actualizar. Además, no debería encontrar formas de hacer que las API antiguas y obsoletas sean compatibles. Deben eliminarse totalmente. Obviamente, eso es mucho trabajo, pero garantizaría tranquilidad
Rotimi
1
Paro e inicio Apache cuando quiero cambiar las versiones de PHP en MAMP. Es un dolor, pero funciona.
Scott C Wilson
podría iniciar dual
puede crear un host virtual y luego especificar la versión de php para cada uno
Aref Ben Lazrek
2
@IlmariKaronen Quiero cambiar entre ellos en su estación de trabajo de desarrollo. Simplemente quiero usar PHP 5 cuando estoy haciendo el Proyecto A, quiero PHP 7 cuando estoy haciendo el Proyecto B. Incluso la respuesta mejor calificada no funciona, no puedo encontrarla ... Y muchos usuarios ...
Yo Soy la persona más estúpida

Respuestas:

133

¿Por qué cambiar entre versiones de PHP cuando puede usar varias versiones de PHP al mismo tiempo con una sola instalación de xampp ? Con una sola instalación de xampp, tiene 2 opciones:

  1. Ejecute una versión PHP anterior solo para el directorio de su proyecto anterior: esto servirá para el propósito la mayor parte del tiempo, es posible que tenga uno o dos proyectos antiguos que desee ejecutar con una versión PHP anterior. Simplemente configure xampp para ejecutar una versión PHP anterior solo para esos directorios de proyecto.

  2. Ejecute una versión anterior de PHP en un puerto separado de xampp: a veces puede estar actualizando un proyecto anterior a la última versión de PHP cuando necesita ejecutar el mismo proyecto en versiones de PHP nuevas y anteriores de un lado a otro. Luego puede configurar una versión anterior de PHP en un puerto diferente (digamos 8056) para que cuando vaya a http://localhost/any_project/xampp ejecute PHP 7 y cuando vaya a http://localhost:8056/any_project/xampp ejecute PHP 5.6.

  3. Ejecute una versión anterior de PHP en un host virtual: puede crear un host virtual como localhost56 para ejecutar PHP 5.6 mientras puede usar PHP 7 en localhost.

Vamos a configurarlo.

Paso 1: descarga PHP

Entonces, tiene PHP 7 ejecutándose bajo xampp, desea agregar una versión anterior de PHP, digamos PHP 5.6. Descargue la versión nts (Non Thread Safe) del archivo zip PHP de php.net (consulte el archivo para versiones anteriores) y extraiga los archivos que se encuentran debajo c:\xampp\php56. La versión segura para subprocesos no incluye php-cgi.exe.

Paso 2: configurarphp.ini

Abrir c:\xampp\php56\php.iniarchivo en el bloc de notas. Si el archivo no existe copia php.ini-developmentde php.iniy abrirlo en el Bloc de notas. Luego, descomenta la siguiente línea:

extension_dir = "ext"

Paso 3: configurar apache

Abra el panel de control de xampp, haga clic en el botón de configuración para apache y haga clic en Apache (httpd-xampp.conf). Se abrirá un archivo de texto, coloque la siguiente configuración en la parte inferior del archivo:

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>

Nota: Si lo desea, puede agregar más versiones de PHP a su instalación de xampp siguiendo los pasos 1 a 3.

Paso 4 (opción 1): [Agregar directorios para ejecutar una versión específica de PHP]

Ahora puede configurar directorios que se ejecutarán en PHP 5.6. Simplemente agregue lo siguiente en la parte inferior del archivo de configuración para establecer directorios.

<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>

Paso 4 (opción 2): [Ejecutar una versión PHP anterior en un puerto separado]

Ahora para configurar PHP v5.6 en el puerto 8056, agregue el siguiente código al final del archivo de configuración.

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

Paso 4 (opción 3): [Ejecutar una versión PHP anterior en un host virtual]

Para crear un virtualhost (localhost56) en un directorio (htdocs56) para usar PHP v5.6 en http: // localhost56 , cree el directorio htdocs56 en la ubicación deseada y agregue localhost56 a su archivo de hosts ( vea cómo ), luego agregue el siguiente código al final del archivo 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>

Finalizar: guardar y reiniciar Apache

Guarde y cierre el archivo de configuración, reinicie apache desde el panel de control de xampp. Si eligió la opción 2, puede ver el puerto adicional (8056) en su panel de control de xampp.

ingrese la descripción de la imagen aquí

Actualización del error:
encabezado con formato incorrecto del script 'php-cgi.exe': encabezado incorrecto

Si encuentra el error anterior, abra de httpd-xampp.confnuevo y comente la siguiente línea con un número inicial (carácter hash).

SetEnv PHPRC "\\path\\to\\xampp\\php"
Munim Munna
fuente
9
Hola, estaba probando este método (Paso 4 Opción 1), pero recibí un error de encabezado con formato incorrecto del script 'php-cgi.exe': Encabezado incorrecto: <br />, ¿alguna idea de cuál podría ser el problema?
Priyanshu
@Priyanshu, ¿está bien su instalación de PHP? ¿Se pueden ejecutar archivos PHP desde la línea de comandos como php somefile.phpsin ningún error?
Munim Munna
2
La respuesta ya no contiene el código para incluir, SetEnv PHPRCpor lo que no puedo comentarlo, pero sigo recibiendo ese error. :(
Brett
1
Hola. cuando ejecuto localhost: 8056, obtengo la página objeto no encontrado.
nas
1
Alguien capaz de trabajar múltiples versiones de php con xdebug? TengoError message: End of script output before headers: php-cgi.exe
Noman
87

Puede descargar cualquier versión de PHP que necesite y colocarla en sus propios directorios, p. Ej.

c:\php5\

c:\php7\

Todo lo que necesita hacer es decirle a su servidor web (Apache) qué versión de PHP usar, lo que debe hacer cargando el módulo apropiado. En Apache puede hacer esto buscando el archivo httpd.confy luego editando la línea apropiada:

LoadModule php7_module c:\php7\libphp7.so

Tendrás que descubrir los caminos correctos, por supuesto, esto es solo para ilustración.

Guarde httpd.confy reinicie su servidor. Tenga en cuenta que si no lo reinicia, los cambios no tendrán efecto.

No hay un interruptor de GUI para poder hacer esto, debe editar el .confarchivo y luego reiniciar Apache. Hacer esto solo lleva un par de segundos e incluso puede comentar una versión, por lo que "cambiar" solo requiere un par de pulsaciones de teclas, por ejemplo

Usa PHP 5:

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

Usa PHP 7:

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

No necesita múltiples versiones de XAMPP , ni un arranque dual, ni usar una máquina diferente, ni ninguna de las otras "soluciones" que han sugerido soluciones complicadas. El OP quiere usar XAMPP y decirle qué versión de PHP usar. Esta es la forma más rápida y eficiente de hacerlo, y solo requiere una instalación de XAMPP.

Edición 1 de noviembre de 2017: Al parecer, algunas personas dicen que no hay .soarchivos en Windows. La respuesta que di fue adaptada de cómo tengo las cosas configuradas en mi Mac (que usa .soarchivos en lugar de .dll). Sin embargo, el principio de la respuesta sigue siendo exactamente correcto. Está utilizando el archivo de configuración de Apache httpd.confpara especificar dónde se encuentra el módulo PHP ( .soo .dll) en su sistema. Entonces, la única diferencia para Windows sería el nombre del archivo y / o la ubicación de la ruta. La respuesta que he dado también es correcta para una instalación estándar de Apache / PHP (sin XAMPP).

Andy
fuente
3
Contraté el cheque. No pude encontrarlo. ¿Puede verificar mi archivo httpd.conf? Esta es la copia de la misma. freetexthost.com/sjxz4lh1i5 Avíseme si encuentra esa línea que debería cambiar.
Soy la persona más estúpida
2
No hay ningún libphp7.so en XAMPP y ninguna cadena LoadModule en el archivo conf
Federico Schiocchet
2
Tampoco pude encontrar esta entrada. También busqué en mi directorio php y no pude encontrar ningún archivo .so en absoluto.
Eoin
19
En v3.2.2 la línea se encuentra en xampp / apache / conf / extra / httpd-xampp.conf
Manuel
55
No es solo una línea. Tiene que editar una buena porción de httpd-xampp.conf. Por lo tanto, es mejor cambiar httpd-xampp.conf completo cada vez que sea necesario.
Jeffz
34

Puede descargar e instalar dos xampps diferentes como yo: (primero es php7, segundo es php5) ingrese la descripción de la imagen aquí

y si no quiere hacer eso, le sugiero que use wamp y cambie las versiones como se muestra aquí .

Maulik Gangani
fuente
44
¿Por qué harías esto? Estás instalando una gran cantidad del mismo software nuevamente, solo por una pequeña diferencia (versión diferente de PHP, cuando el resto del software como Apache y MySQL es exactamente el mismo). He publicado una solución en la que simplemente puede usar 1 instalación de XAMPP y apuntarla a la versión adecuada de PHP.
Andy
15
¿Por qué harías esto? porque funciona, y no me importa tener múltiples apache y mysql instalados si ahorra algo de tiempo.
Maulik Gangani
23
no es necesario preocuparse por las mejores prácticas aquí, es un entorno local
Ricardo Vigatti
2
Utilizo este enfoque, además, le recomiendo que agregue entradas específicas del menú de inicio para cada instalación, como: C: \ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs \ XAMPP56 y C: \ ProgramData \ Microsoft \ Windows \ Start Menu \ Programas \ XAMPP7 por ejemplo
Ricardo Vigatti
2
Si esta no es una buena solución, ¿por qué no publica una solución correcta? En realidad es muy difícil instalar 2 versiones en el mismo xampp y todas las soluciones aquí están mal ...
Federico Schiocchet
12

Recomendaría usar Docker, esto le permite dividir el entorno en varios componentes y mezclar y combinar los que desee en cualquier momento.

Docker le permitirá ejecutar un contenedor con MySQL, otro con PHP. Como son imágenes separadas, puede tener dos contenedores, uno PHP 5 y otro PHP 7, puede iniciar el que desee y el puerto 80 puede asignarse a ambos contenedores.

https://hub.docker.com tiene una amplia gama de imágenes preconfiguradas que puede instalar y ejecutar sin problemas.

También agregué portainer como imagen, lo que le permite administrar los diversos aspectos de la configuración de su ventana acoplable, desde una imagen de ventana acoplable (inicié este contenedor al inicio para evitar tener que usar la línea de comandos). No hace todo por usted y, a veces, es más fácil configurar e iniciar las imágenes por primera vez desde la línea de comandos, pero una vez configurada puede iniciarlas y detenerlas a través de una interfaz web.

También es posible ejecutar ambos contenedores al mismo tiempo y asignar puertos separados a cada uno. Entonces, el puerto 80 se puede asignar a PHP 5 y 81 a PHP 81 (o PHP 7 si está viendo esto en 2017).

Hay varios tutoriales sobre cómo instalar Docker ( https://docs.docker.com/engine/installation/ ) y un montón de otras cosas de tipo "cómo". Pruebe http://www.masterzendframework.com/docker-development-environment/ para obtener una configuración del entorno de desarrollo.

Nigel Ren
fuente
Secundo esto. Hazle un favor a tu empresa y haz que Docker funcione. Cambie las versiones de PHP, incorpore nuevos desarrolladores más rápido, facilite la implementación y no haya sorpresas en la producción.
Kris Peeling
y 81 a PHP 81. ¿te refieres a PHP 7? Creo que todavía estamos lejos de PHP 81 :)
Andy
2
Errrr ... Realmente quise decir 81 (me aseguro de que mi respuesta sea prueba futura: - /)
Nigel Ren
1
@NigelRen No lo he rechazado, pero supongo que es porque estás proponiendo usar una solución completamente diferente (Docker) en lugar de abordar cómo es posible dentro de XAMPP, lo que definitivamente es. Su respuesta es una (muy buena) solución alternativa al problema, pero no una respuesta a la pregunta que se le hizo.
Andy
7

Yo uso Uniserver.

Tiene esta característica incorporada.

http://www.uniformserver.com/

Es así de simple.

El Uniform Server es una solución de servidor WAMP liviana y gratuita para Windows. Menos de 24 MB, diseño modular, incluye las últimas versiones de Apache2, Perl5, PHP (cambiar entre PHP53, PHP54, PHP55 o PHP56), MySQL5 o MariaDB5, phpMyAdmin o Adminer4. ¡No requiere instalación! No hay polvo de registro! ¡Solo desempaque y encienda!

Incluso se ejecuta en una unidad flash. Tiene emulación cron, soporte para perl, mariaDB, un par de versiones de Mysql, servidor filezilla y algunas otras cosas.

ingrese la descripción de la imagen aquí

Fénix Artístico
fuente
Esta es la mejor solución, creo. Me salvé la vida.
skpaul
Estoy recibiendo una alerta de virus. Win32 / Uwamson.A! Ml
Norman Huth el
6

Puede tener dos versiones diferentes de XAMPP.

  • Descargue esos archivos de https://www.apachefriends.org/download.html e instálelos en un directorio de su elección, por ejemplo en C: \ 5.6.31 \ xampp y C: \ 7.1.18 \ xampp.
  • Después de cada instalación, vaya al directorio instalado (ej. C: \ 5.6.31 \ xampp, C: \ 7.1.18 \ xampp) e inicie "setup_xampp.bat" y debería ver algo como esto.
  • Puede crear accesos directos de "xampp-control.exe" en su escritorio (haga clic con el botón derecho en "xampp-control.exe" Enviar a -> Escritorio) y cambie el nombre de los accesos directos por ej. "xampp 5.6.31" y "xampp 7.1.8".
  • Inicie el panel de control XAMPP con doble clic en "xampp-control.exe" o acceso directo creado previamente e inicie los servidores Apache y MySQL.
  • Para probar la instalación, abra su navegador y escriba 127.0.0.1 o localhost en la barra de ubicación. Debería ver la pantalla de inicio de XAMPP.
  • No abra más de un panel de control XAMPP.
  • Desinstalar XAMPP? Simplemente elimine el directorio "xampp". Pero antes, apague apache y mysql.
  • Eso es todo. Puede usar diferentes versiones de php abriendo el panel de control XAMPP correspondiente.
og1842
fuente
Si es realmente posible hacerlo con 1 instalación, ¿por qué no publica una solución? En realidad es muy difícil instalar 2 versiones y todas las soluciones aquí están mal ...
Federico Schiocchet
@Andy Si DB no es tan grande, la instalación doble es una opción viable. Pero tu respuesta obtuvo mi voto positivo.
Jeffz
6

Estoy trabajando en un proyecto de diez años en el trabajo. Entonces 5.6 es mi valor predeterminado. También hay proyectos pequeños más antiguos que solo funcionan con 5.2 y también quiero trabajar en nuevas versiones para mis proyectos personales con 7.3.8

Esto es lo que hice para agregar 5.2 y 7.3.8 en la versión 5.6 por defecto.

1 - Versiones descargadas de php TS;

2 - Extraído a la carpeta c: \ xampp \ php738 y c: \ xampp \ php52 en orden

3: se agregaron estas líneas en la parte inferior de httpd-xampp.conf (o httpd.conf);

*** AVISO IMPORTANTE: NO debe usar el nombre de alias del script como nombre de la carpeta de destino, deben ser diferentes. (por ejemplo, / php7x está bien, / php7 no lo está)

PHP 7.3.8 para la carpeta 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 para la carpeta 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>

Algunas notas útiles:

  • Si tiene problemas con php5.x mientras usa el terminal de cambio de compositor a 7.3.8
  • Si desea hacer de php 7.3.8 su intérprete de php de línea de comando predeterminado en Windows, simplemente cambie la ruta del entorno de Windows para php a la ruta de la carpeta 7.3.8.
  • No olvides editar tus conf.php.ini relevantes como necesites en cada carpeta de versión.

Y como última nota adicional, si necesita configurar un host virtual con cualquiera de las versiones, puede utilizar un enfoque similar. Una muestra de laravel vhost conf para 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

Gracias a @Munim Munna por la respuesta detallada, quería compartir una muestra sólida con el aviso importante anterior.

Erdinç Çorbacı
fuente
5

A menos que tenga que ser absolutamente y definitivamente XAMPP, puede intentar obtener lo que desea con WAMP. WAMP es prácticamente lo mismo en un paquete diferente.

Una vez que lo tenga instalado, puede cambiar entre las versiones de php aquí:

ingrese la descripción de la imagen aquí

Puede instalar tantas versiones de PHP como necesite.

Así es como se hace en detalle.

Solo ve aquí: descarga WAMP

Luego seleccione su servidor base, por ejemplo, el último con php7.

Luego, cuando esté instalado WAMP 3, vaya a la carpeta: complementos y seleccione la versión (o versiones) de php que busca . Ofrecen sabores php a partir de php 5.3.29, que deberían funcionar con mysql_connect.

Para instalar el complemento, durante la instalación (haga doble clic en el archivo exe) simplemente apunte a la carpeta donde tiene instalado su WAMP 3.

Luego puede usar el contenido de otras carpetas, como: aplicaciones, etc. para agregar más funcionalidad

Todo está interconectado, por lo que puede concentrarse en la codificación y no piratear su entorno.

Jeffz
fuente
4

Sí tu puedes. Supongo que ya tienes un xampp instalado. Entonces,

  • Cierre todas las instancias de xampp. Usando el administrador de tareas, pare apache y mysqld.
  • Luego cambie el nombre de xampp a xampp1 o algo después del nombre de xampp.
  • Ahora descargue la otra versión de xampp. Cree un nombre de carpeta solo xampp. Instale el xampp descargado allí.
  • Ahora, dependiendo de la versión xampp de su requisito, simplemente cambie el nombre de la carpeta de destino a xampp solamente y otra carpeta a un nombre diferente.

Así es como estoy trabajando con múltiples xampp instalados

Shuvro
fuente
44
No estoy seguro de por qué esto se convierte en downvotet, ya que esta respuesta funciona y es exactamente de lo que se está preguntando. El downvoting silencioso sin sugerir mejoras no es algo inteligente en general.
Fabian Schöner
@ FabianSchöner Gracias. No sé por qué me rechazaron esta respuesta.
Shuvro
1
La razón por la que se ha rechazado es porque alguien ya ha publicado exactamente esta respuesta. Y en segundo lugar, es una forma totalmente innecesaria de hacer las cosas, ya que está instalando TODO el mismo software nuevamente solo para obtener una pequeña diferencia. Es posible, como se indicó en la respuesta que publiqué, usar 1 instalación de XAMPP y luego configurarla para usar diferentes versiones de PHP.
Andy
3

Es posible tener múltiples versiones de PHP configuradas con una sola instalación de XAMPP. Las siguientes instrucciones están funcionando para Windows.

  1. Instale la última versión de XAMPP para Windows (en mi caso fue con PHP 7.1)
  2. Asegúrese de que Apache no se esté ejecutando desde el Panel de control de XAMPP
  3. Cambie el nombre del directorio php en el directorio de instalación de XAMPP, como C:\xampp\phpBecome C:\xampp\php-7.1.11.
  4. Descargue la versión de PHP que desea ejecutar además (por ejemplo: PHP 5.4.45 )
  5. Mueva el directorio php de la versión que descargó al directorio de instalación de XAMPP. Cambie el nombre para que incluya la versión de PHP. Tales como C:\xampp\php-5.4.45.

Ahora necesita editar la configuración de XAMPP y Apache:

  1. En C:\xampp\apache\conf\httpd.conf, busque la configuración de XAMPP para PHP, debe cambiarla a algo como:

Donde tiene que comentar (con #) las otras versiones de PHP para que solo Includese interprete una en ese momento.

#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. Ahora en C:\xampp\apache\conf\extracambio de nombre de directorio httpd-xampp.confa httpd-xampp.conf.7.1y añadir un nuevo archivo de configuración para httpd-xampp.conf.5.4.45. En mi caso, copié el archivo conf de otra instalación de XAMPP para php 5.5 ya que la sintaxis puede ser ligeramente diferente para cada versión.

  2. Edite httpd-xampp.conf.5.4.45y httpd-xampp.conf.7.1reemplace todas las referencias al phpdirectorio con la nueva php-X.Xversión. Aquí se deben realizar al menos 10 cambios para cada archivo.

  3. Ahora necesita editar php.ini para las dos versiones. Por ejemplo para PHP 7.1, edición C:\xampp\php-7.1.11\php.inien la que se reemplace la ruta del directorio de php include_path, browscap, error_log, extension_dir..

Y eso es. Ahora puede iniciar Apache desde el Panel de control XAMPP. Y para cambiar de una versión a otra, solo necesita editar C:\xampp\apache\conf\httpd.confy cambiar la versión de PHP incluida antes de reiniciar Apache.

maxime_039
fuente
3

ejecute esto en las ventanas del símbolo del sistema (cmd.exe).

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

cámbielo dependiendo de dónde coloque la instalación de php 7.

Adam Endvy
fuente
2

No necesita perder su tiempo con estas configuraciones, solo use MAMP :)

MAMP tiene una función de selección de versión de PHP en la interfaz.

Gokturk
fuente
2

Esta es probablemente la respuesta menos técnica a la pregunta, pero también es la más fácil de lograr.

Si tiene dos unidades como C: y D: puede instalar una instancia separada de XAMPP en ambas unidades con diferentes versiones de php. Esto me llevó menos de 10 minutos y es menos propenso a errores.

Acabo de crear dos accesos directos de escritorio para xampp-control.exe y nombro los accesos directos después de su versión de php. Espero que esto ayude a alguien como yo que prefiere una solución muy rápida y sucia.

JacobRossDev
fuente
1

Sigue estos sencillos pasos . Actualmente estoy ejecutando XAMPP en PHP 7.2 pero necesito PHP 5.6 para trabajar en proyectos antiguos

PASO 1

Descargue la versión Thread Safe de PHP en https://windows.php.net/download

Ponga archivos en su [Unidad]: \ xampp \ php5.6

  • Cambie el nombre de la carpeta según la versión de Php

PASO 2

Copie [Unidad]: \ xampp \ apache \ conf \ extra \ httpd-xampp.conf

Cambie el nombre a [Unidad]: \ xampp \ apache \ conf \ extra \ httpd-xampp5.6.conf Cambie el nombre del archivo según la versión de Php

PASO 3

Edite el recién creado 'httpd-xampp5.6.conf'

básicamente necesitas cambiar toda la fuente PHP y .dll

antes de

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

Despué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"

Aquí está mi archivo: https://gist.github.com/mpalencia/f8a20c31bffb02fe20d371218c23d1ec

PASO 4

Edite el archivo [Unidad]: \ xampp \ apache \ conf \ httpd.conf

antes de

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

Después

# XAMPP settings
Include "conf/extra/httpd-xampp5.6.conf"
  • Puede editar esta línea cuando cambie a una versión diferente

PASO 5

Edite su configuración de PHP 5.6 - php.ini

Agregue su directorio de extensión: extension_dir = "C: \ xampp \ php5.6 \ ext"

PASO 6

Iniciar Apache

PASO 7

Editar ruta variable de entorno PHP en Windows

mpalencia
fuente
0

Tal vez un poco tarde, pero estoy usando un lote para cambiar el nombre de las carpetas PHP (una versión ligeramente modificada del phpswitch que encontré hace años).

Copias las diferentes carpetas en tu instalación de XAMPP. Cada carpeta PHP (excepto la activa) recibe el número de versión como un sufijo (por ejemplo, php_5.6.32 ). En TODAS las carpetas PHP, se crea un archivo (PHP_VERSION), que contiene solo el número de versión respectivo, para que el Script pueda obtener esta información. Pero todo eso se describe en el archivo README.

Desde PHP7, httpd-xampp.conf carga php7ts.dll en lugar de php5ts.dll . Así que tuve que extender el script (PHPSwitch.php) para cambiar el nombre de estos archivos de configuración también siguiendo el mismo enfoque.

    $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
fuente
0

Necesitaba hacer lo mismo, así que busqué en Google cómo y llegué a apilar el desbordamiento, donde el OP tenía el mismo problema ... Entonces, mis hallazgos ... Intenté cambiar el nombre de los archivos desde todas las direcciones diferentes y mi conclusión fue que básicamente me estaba llevando demasiado largo. SOOOO Terminé instalando la versión 7 desde aquí:

https://www.apachefriends.org/index.html (elimine los servicios y salga de xampp antes de intentar)

Cuando se le pregunte dónde poner el nombre del directorio, así (asígnele un nombre diferente):

ingrese la descripción de la imagen aquí

y

DONEZO! Ahora solo asegúrate de eliminar los servicios y salir antes de cambiar de un lado a otro y tienes 2 envés XAMPP estériles para jugar.

¡Hurra! ahora realmente puedo ir a trabajar!

hackdotslashdotkill
fuente
Creo que ya está sugerido por 2 respuestas anteriores, Maulik Gangani y og1842.
Munim Munna
0

Utiliza este conmutador php

Puede controlar la versión de PHP a cualquier proyecto que desee a través de la configuración de vhost.

paso
fuente
0

Sé que esta es la publicación anterior, pero quiero compartir que hay una biblioteca para seguir ejecutando mysql_connect () en PHP 7. Funciona al anular la función real (mysql_connect () se reemplaza por mysqli_connect () que funciona en esta biblioteca).

Encontré de este video https://www.youtube.com/watch?v=Eqd-jJu4sQ4

espero que ayude

f_anto
fuente