versiones tener multiple instalar cambiar php xampp

multiple - tener dos versiones de php en xampp



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

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

Pero hay proyectos antiguos que usan funciones como mysql_connect , etc. Estos 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 antiguo a compatible con versiones nuevas porque no estoy en condiciones de hacerlo debido a las decisiones que no puedo tomar como desarrollador (solo un empleado).


¿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 (por ejemplo, 8056) para que cuando vaya a http://localhost/any_project/ xampp ejecute PHP 7 y cuando vaya a http://localhost:8056/any_project/ xampp runs 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 agregarle 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 archive para versiones anteriores) y extraiga los archivos en c:/xampp/php56 . La versión segura para subprocesos no incluye php-cgi.exe.

Paso 2: configurar php.ini

Abra el archivo c:/xampp/php56/php.ini en el bloc de notas. Si el archivo no existe, copie php.ini-development en php.ini y ábralo en el bloc de notas. Luego, descomente 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 de apache y haga clic en Apache (httpd-xampp.conf) . Se abrirá un archivo de texto, ponga 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) que figura en el panel de control de xampp.

Actualización por error:
encabezado mal formado del script ''php-cgi.exe'': encabezado incorrecto

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

SetEnv PHPRC "//path//to//xampp//php"


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 versiones de php aquí:

Puede instalar tantas versiones de PHP como necesite.

Así es como se hace en detalle.

Solo ve aquí: descarga de WAMP

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

Luego, cuando WAMP 3 esté instalado, 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ía 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.


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/php convierta en C:/xampp/php-7.1.11 .
  4. Descargue la versión de PHP que desea ejecutar además (por ejemplo: archive )
  5. Mueva el directorio php de la versión que descargó al directorio de instalación de XAMPP. Cámbiele 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 se Include una Include 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/extra cambie el nombre del directorio httpd-xampp.conf a httpd-xampp.conf.7.1 y agregue 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.45 y httpd-xampp.conf.7.1 y reemplace allí todas las referencias al directorio php con la nueva versión php-XX . 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, edite C:/xampp/php-7.1.11/php.ini donde reemplazará la ruta del directorio php para 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.conf y cambiar la versión de PHP incluida antes de reiniciar Apache.


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.


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 ... Traté de 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):

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!


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.


Puede download e instalar dos xampps diferentes como yo: (primero es php7, segundo es php5)

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


Puede descargar cualquier versión de PHP que necesite y colocarla en sus propios directorios, por ejemplo

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.conf y luego editando la línea apropiada:

LoadModule php7_module c:/php7/libphp7.so

Tendrás que descubrir las rutas correctas, por supuesto, esto es solo para ilustración.

Guarde httpd.conf y 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, necesita editar el archivo .conf y luego reiniciar Apache. Hacer esto solo lleva un par de segundos e incluso podría 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 archivos .so en Windows. La respuesta que di fue adaptada de cómo tengo las cosas configuradas en mi Mac (que usa archivos .so lugar de .dll ). Sin embargo, el principio de la respuesta sigue siendo exactamente correcto. Está utilizando el archivo de configuración de Apache, httpd.conf para especificar dónde se encuentra el módulo PHP ( .so o .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).


Puede tener dos versiones diferentes de XAMPP.

  • Descargue esos archivos de download 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 this.
  • 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.

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 se puede asignar 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 comando). 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.


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

  • 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 requerimiento, 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


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

ETAPA 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

Inicie Apache

PASO 7

Editar ruta variable de entorno PHP en Windows


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


Yo uso Uniserver.

Tiene esta característica incorporada.

http://www.uniformserver.com/

Es así de simple.

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.


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

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

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