Pregunta

¿Es posible tener varias versiones de PHP que se ejecutan en la misma caja (como rieles). Aquí está mi problema, tengo que empezar el desarrollo de un nuevo proyecto y tenía la intención de usar PHP 5.3 por ella para que pueda utilizar la última Zend Framework y el registro activo de la misma.
Sin embargo, el equipo en el que necesito para organizar mi solicitud tiene PHP 4.4 y hay varias otras aplicaciones alojadas allí. No quiero actualizar la versión de PHP en el servidor como en el pasado me he enfrentado a muchos problemas al actualizar la versión de PHP y funciones obsoletas.
Me preguntaba si es posible tener múltiples versiones de PHP en la misma caja y especifique de alguna manera la versión que desea que la aplicación para cargar (similar a los rieles)

¿Fue útil?

Solución

Sí, es posible. De hecho, muchos servidores funcionan de esta manera. Es posible que vea .php4 y .php5 extensiones de vez en cuando lo que indica la versión de que la escritura en particular debe ser manejado con.

ServerFault abordó esta cuestión

Correr php4 y php5 lo largo de lado entre sí

Otros consejos

Puede ejecutar varias versiones de PHP en la misma caja utilizando estibador.

Un comando de ejemplo sería:

sudo docker run -d -p 8055:80 -v /var/www:/var/www \
  -v /etc/apache2/sites-available:/etc/apache2/sites-available \
  -v /etc/apache2/sites-enabled:/etc/apache2/sites-enabled \
  codeyourdream/apache-sendmail-php55

Esto es lo que hace este comando:

  • Se envía su /var/www locales, /etc/apache2/sites-available y /etc/apache2/sites-enabled a las carpetas correspondientes del recipiente del estibador. Si sus sitios web locales y / o configuraciones de Apache se encuentran en diferentes carpetas, vuelva a colocar la primera parte del valor -v. Es decir. el formato es: docker run -v /host/directory:/container/directory -other -options image_name command_to_run
  • Se reenvía el puerto 8055 de la máquina local al puerto 80 del contenedor acoplable
  • Se ejecuta el contenedor de "codeyourdream / apache-sendmail-php55" imagen

Si se ejecuta este comando, todos sus sitios web locales deben estar disponibles a través del puerto 8055 (es decir, a través de las direcciones URL como http: // localsite: 8055 ) y procesada por PHP 5.5

Consulte https://codeyourdream.com/blog/how-run-multiple-php-versions-apache-one-linux-machine-using-docker para más detalles. nota Afiliación:. Este es el blog de mi equipo

A posibilidad está utilizando una versión de PHP como un módulo de Apache, y la otra versión como un CGI; pero una idea me gusta es mejor tener:

  • Varios casos distintos de Apache,
  • Cada uno escucha en un puerto diferente (por ejemplo, PHP 4.4 en el puerto 44000, y PHP 5.3.1 en el puerto 53100)
  • Y cada uno usando una versión diferente de PHP

De esta manera, usted tiene totalmente diferentes entornos, que funciona de forma independiente entre sí, y se puede configurar / modificar cualquier cosa que desee en cada entorno y sin correr el riesgo de romper cualquiera de los otros.

(Y si no quieren tener números de puerto en sus URL, supongo que se puede poner un proxy frente a las instancias de Apache distintas, por lo que parece que sólo hay una)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top