No se puede instalar php5 en Ubuntu 16.04

53

así que recientemente instalé mi primer Ubuntu, para ser precisos, una compilación diaria de 16.04, en mi nueva computadora portátil ya que el hardware era nuevo para 15.10. Ahora estoy en el proceso de configurarlo y quiero instalar php5 y algunas extensiones.

Cuando ejecuto sudo apt-get install libapache2-mod-php5, recibo el mensaje de error de que no hay un paquete de instalación disponible para php5 y libapache2.

El mensaje de error está en alemán, así que dudo que esto ayude, pero de todos modos aquí está. :-) E: For package »libapache2-mod-php5« existiert kein Installationskandidat.

¿Necesito agregar un repositorio apt-get? ¿O qué estoy haciendo mal?

usuario529857
fuente

Respuestas:

76

TL; DR: si desea permanecer con php5, deberá permanecer en Ubuntu 14.04 LTS

Usando PHP 7.0 en Ubuntu 16.04 LTS

Ubuntu 16.04 ha cambiado a PHP 7.0 con una nueva infraestructura para el paquete PHP. Entonces, no, no puede instalar php5 en Ubuntu 16.04, pero puede instalar paquetes PHP 7.0 con:

apt-get install libapache2-mod-php

Eso instalará un paquete virtual que depende de la última versión de PHP y lo extraerá libapache2-mod-php7.0como una dependencia.

Si está buscando extensiones, use siempre una variante sin versión (por ejemplo, en php-apculugar de php7.0-apcu) ya que las extensiones PECL se empaquetan sin la versión para permitir actualizaciones sin problemas.

Usando PHP PPA para coinstalar PHP 5.6 con PHP 7.0

Hay una opción para instalar conjuntamente paquetes de PHP 5.6 usando ppa:ondrej/php.

Para obtener más información, consulte esa respuesta: https://askubuntu.com/a/762161/309221

Extraído del enlace de arriba:

Suponiendo que libapache2-mod-phpes una forma adecuada de habilitar PHP en Apache para usted, puede proceder de esta manera:

sudo add-apt-repository ppa:ondrej/php

sudo apt-get update

sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0

Cambiar la versión de PHP (Apache):

  • de php5.6 a php7.0:
    sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart

  • de php7.0 a php5.6:
    sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart

oerdnj
fuente
2
No, no hay paquetes PHP 5.x en los repositorios de Xenial. Solo en el PPA.
oerdnj
Parece que tienes razón: bugs.launchpad.net/ubuntu/+source/php5/+bug/1522422
NoBugs
Cuando cambio a php5.6, recibí el error "El trabajo para apache2.service falló porque el proceso de control salió con el código de error. Consulte" estado de systemctl apache2.service "y" journalctl -xe "para más detalles".
lyhong
¿Y qué dice el diario?
oerdnj
encontrado algo como esto apache2: error de sintaxis en la línea 140 de /etc/apache2/apache2.conf: error de sintaxis en la línea 3 de / e
lyhong
25

EDITAR: la respuesta aceptada no dice explícitamente cómo instalar PHP 5.6 y 7.0, por lo que quería extenderlo.

Para obtener más información, consulte esa respuesta: https://askubuntu.com/a/762161/309221

Extraído del enlace de arriba:

Suponiendo que libapache2-mod-phpes una forma adecuada de habilitar PHP en Apache para usted, puede proceder de esta manera:

sudo add-apt-repository ppa:ondrej/php

sudo apt-get update

sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0

Cambiar la versión de PHP (Apache):

  • de php5.6 a php7.0:
    sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart

  • de php7.0 a php5.6:
    sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart

FlavioEscobar
fuente
1
FYI: La persona que escribió la respuesta aceptada mantiene el PPA que usa. Y la última línea en esa respuesta: "Hay una opción para instalar conjuntamente paquetes de PHP 5.6 usando ppa: ondrej / php". Tenga en cuenta que tampoco está instalando paquetes php5, pero php5.6
muru
1
Hay una serie de diferencias en el empaquetado y la ubicación de los archivos de configuración que cualquier persona que busque los paquetes php5 antiguos se sorprendería con los nuevos.
Muru
He editado mi respuesta para que no diga que la respuesta aceptada era incorrecta, sino que solo la extiende.
FlavioEscobar
@NoBugs Tiene una extensión imagick empaquetada. Por favor, deje de arrojar cosas sin al menos una comprobación básica de si son verdaderas o no.
oerdnj
@FlavioEscobar He fusionado tus ediciones en mi respuesta. Gracias por extender la respuesta.
oerdnj