Pregunta ¿Hay alguna manera de usar dos versiones de PHP en XAMPP?


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

Pero hay un viejo proyecto que usa 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 un proyecto anterior a compatible con las nuevas versiones porque no estoy en posición de hacerlo porque eso   decisiones que no puedo obtener como desarrollador (solo un empleado).


76
2017-08-21 05:58


origen


Respuestas:


Puede descargar las versiones de PHP que necesite y colocarlas en sus propios directorios, p.

c:\php5\

c:\php7\

Todo lo que necesita hacer es decirle a su servidor web (Apache) qué versión de PHP usar, lo que hace cargando el módulo apropiado. En Apache puedes hacer esto al encontrar el archivo httpd.conf y 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.

Salvar httpd.conf y reinicia tu servidor. Tenga en cuenta que si no lo reinicia, los cambios no tendrán efecto.

No hay un cambio de GUI para poder hacer esto, necesita editar el .conf archivo y luego reinicie Apache. Hacer esto solo lleva un par de segundos e incluso se puede comentar una versión, por lo que "cambiar" solo requiere un par de pulsaciones de teclas, p.

Use PHP 5:

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

Use PHP 7:

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

No necesitas múltiples versiones de XAMPP, o al arranque dual, o usar una máquina diferente, o cualquiera 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 XAMPP.

Editar 1-Nov-2017: Aparentemente, algunas personas dicen que no hay .so archivos en Windows. La respuesta que di se adaptó a partir de cómo tengo las cosas configuradas en mi Mac (que usa .so archivos en lugar de .dll) El principio de la respuesta, sin embargo, sigue siendo exactamente correcto. Está utilizando el archivo de configuración de Apache httpd.conf para especificar dónde el módulo de PHP (.so o .dll) se encuentra 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 simple de Apache / PHP (sin XAMPP).


63
2017-08-25 12:40



Usted puede descargar e instalar dos xampps diferentes como yo: (primero es php7 el segundo es php5) enter image description here

y si no quieres hacer eso, te sugiero que uses wamp y cambies las versiones como se muestra aquí.


20
2017-08-23 09:39



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

  1. Ejecute una versión de PHP anterior solo para el directorio de su proyecto anterior:  Esto servirá para el propósito la mayor parte del tiempo, puede tener uno o dos proyectos antiguos que tiene la intención de ejecutar con una versión más antigua de PHP. Simplemente configure xampp para ejecutar una versión PHP anterior solo para esos directorios de proyectos.

  2. Ejecute una versión PHP más antigua en un puerto separado de xampp: Algunas veces puedes actualizar y el proyecto anterior a la última versión de PHP cuando necesite ejecutar el mismo proyecto en la versión de php nueva y más antigua de ida y vuelta. Luego puedes establecer una versión PHP más antigua en un puerto diferente (digamos 8056) así que cuando vas a http://localhost/any_project/ xampp ejecuta php 7 y cuando vas a http://localhost:8056/any_project/ xampp ejecuta php 5.6.

Vamos a configurarlo.

Paso 1: Descargar PHP

Entonces, tienes php 7 ejecutándose bajo xampp, quieres agregarle una versión anterior de php, digamos php 5.6. Descargue el archivo zip php de aquí y extraer los archivos debajo c:\xampp\php56.

Paso 2: Configurar php.ini

Abierto c:\xampp\php56\php.ini archivo en el bloc de notas. Si el archivo no existe copia php.ini-development a php.ini y ábrelo 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 con la siguiente configuración en la parte inferior del archivo:

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

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

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

Ahora puede establecer 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">
    UnsetEnv PHPRC
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php56
        Action application/x-httpd-php56 "/php56/php-cgi.exe"
    </FilesMatch>
</Directory>

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

Paso 4 (opción 2):  [Ejecutar una versión de 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>
    UnsetEnv PHPRC
    <FilesMatch "\.php$">
        php_flag engine off
        SetHandler application/x-httpd-php56
        Action application/x-httpd-php56 "/php56/php-cgi.exe"
    </FilesMatch>
</VirtualHost>

Terminar: Guarde y reinicie Apache

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

enter image description here


18
2018-03-31 10:10



Recomiendo 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 y otro con PHP. Como se trata de imágenes separadas, puede tener dos contenedores, uno PHP 5, otro PHP 7, 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 mucha molestia.

También he agregado portainer como una imagen, que le permite administrar los diversos aspectos de la configuración de su docker, desde una imagen de acoplador (inicié este contenedor al inicio para evitar que tenga que usar la línea de comando). No hace todo por ti 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 configuradas, puedes 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 puede asignarse a PHP 5 y 81 a PHP 81 (o PHP 7 si estás 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 tipo 'cómo hacer'. Tratar http://www.masterzendframework.com/docker-development-environment/ para una configuración de entorno de desarrollo.


11
2017-08-27 14:04



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

  • Cierre todas las instancias de xampp. Usando el administrador de tareas, detenga apache y mysqld.
  • A continuación, cambie el nombre de xampp a xampp1 o algo así después del nombre de xampp.
  • Ahora descargue la otra versión de xampp. Cree un nombre de carpeta xampp solamente. 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


4
2017-08-28 16:03



Puedes tener dos versiones diferentes de XAMPP.

  • Descargue esos archivos de https://www.apachefriends.org/download.html e instálelo 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 (por ejemplo, C: \ 5.6.31 \ xampp, C: \ 7.1.18 \ xampp) y abra "setup_xampp.bat" y verá algo como esta.
  • Puede hacer 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 de XAMPP haciendo doble clic en "xampp-control.exe" o en el acceso directo creado anteriormente 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 direcciones. 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, por favor apague el apache y mysql.
  • Eso es todo. Puede usar diferentes versiones de php abriendo el panel de control XAMPP correspondiente.

4
2017-08-27 09:33



No necesita perder el tiempo con esta configuración solo use MAMP :)

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


2
2017-08-28 13:24