¿Cómo instalar PHP 7?


116

PHP 7 salió ayer y me gustaría probarlo.

PHP 7.0.0 viene con una nueva versión de Zend Engine, numerosas mejoras y nuevas características como

  • Rendimiento mejorado: PHP 7 es hasta dos veces más rápido que PHP 5.6
  • Uso de memoria significativamente reducido
  • Árbol de sintaxis abstracta
  • Soporte consistente de 64 bits
  • Jerarquía de excepciones mejorada
  • Muchos errores fatales convertidos en excepciones
  • Generador seguro de números aleatorios
  • Se eliminaron SAPI y extensiones antiguas y no compatibles
  • El operador de fusión nulo (??)
  • Declaraciones de tipo de retorno y escalar
  • Clases anónimas
  • Costo cero afirma

php.net


¿Es posible instalarlo en la versión actual de Ubuntu?

¿Hay alguna limitación actual o problemas de compatibilidad conocidos?



1
PHP 7 es predeterminado en Ubuntu 16, Xenial.
Buttle Butkus

Respuestas:


180

Puedes hacer lo siguiente:

sudo apt-get install python-software-properties software-properties-common
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
sudo apt-get update

Opcionalmente, purgue PHP 5:

sudo apt-get remove php5-common -y

O purgarlo directamente, incluidos los archivos de configuración:

sudo apt-get purge php5-common -y

Y finalmente instale PHP 7:

sudo apt-get install php7.0 php7.0-fpm php7.0-mysql -y

Opcionalmente, limpie los paquetes innecesarios después:

sudo apt-get --purge autoremove -y

Alternativamente, puede instalar PHP 7.0 desde las fuentes utilizando este script de script o siguiendo las instrucciones de este blog .

EDITAR:

PHP5 ahora ha sido reemplazado con PHP7 como PHP predeterminado en Ubuntu 16.4, por lo tanto, para instalar PHP7 en Ubuntu 16.04:

sudo apt-get install php7.0 

O

sudo apt-get install php

12
¿Quién está a cargo de la ppa? ¿Es oficialmente compatible con Zend?
k0pernikus

19
@ k0pernikus Zend no admite oficialmente nada más allá de su servidor Zend :-) Los paquetes oficiales de Ubuntu son compatibles con los mantenedores de Ubuntu. Este PPA es un esfuerzo personal de Ondřej Surý. Ondrey es el propietario oficial del árbol PHP en Debian, que se encuentra corriente arriba de Ubuntu. Ver aquí: qa.debian.org/developer.php?login=ondrej%40debian.org
Palantir

44
De todos modos, sus PPA de PHP son muy populares, hasta el punto en que la distribución oficial de Magento anuncia la versión 5.5 y 5.6: devdocs.magento.com/guides/v2.0/install-gde/prereq/…
Palantir

3
JFTR memcached aún no está listo para PHP 7.0. No he mirado Memcache, todavía soluciono errores más pequeños después de una gran reescritura de scripts de empaque.
oerdnj

44
@Xeridea Intenta sudo apt-get install libapache2-mod-php7.0, luego sudo a2enmod php7.0reinicia Apache
andrewtweber

21

Tienes dos opciones:

  • Espere hasta que haya una nueva versión de Ubuntu que incluya PHP7

    Ubuntu no lanzará versiones principales de nuevas versiones para la mayoría del software a las versiones existentes de Ubuntu; para obtener una nueva versión importante, deberías esperar hasta una versión más nueva de Ubuntu.

  • Instale una versión de terceros, como un PPA

    Los PPA no están sujetos a los cronogramas de lanzamiento o las políticas de Ubuntu, por lo que pueden cambiar las versiones con mayor frecuencia, entre otras cosas. El PPA mencionado en la respuesta de Tshilidzi Mudau es una forma popular de mantenerse más actualizado con PHP.

    sudo add-apt-repository ppa:ondrej/php
    

    Los PPA no vienen con el mismo soporte oficial de Ubuntu que las versiones proporcionadas por Ubuntu, y debido a diferentes horarios y políticas pueden ser de diferente calidad o estándar de seguridad. En este caso, el desarrollador que hace que este PPA esté disponible es bien conocido por la comunidad aquí.


1
Y la opción de instalar desde la fuente.
j0h

18

Aquí está mi lista de comandos para actualizar completamente PHP con sus dependencias, incluido phpMyAdmin (pila LAMP completa):

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ondrej/php-7.0
sudo apt-get update
sudo apt-get purge php5-fpm
sudo apt-get install php7.0-cli php7.0-common libapache2-mod-php7.0 php7.0 php7.0-mysql php7.0-fpm php7.0-curl php7.0-gd php7.0-bz2

Ahora tienes PHP7. Vamos a phpMyAdmin: (comience aquí si ya tiene PHP7 instalado)

cd /var/www/html/
sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.5.3.1/phpMyAdmin-4.5.3.1-all-languages.zip
sudo unzip phpMyAdmin-4.5.3.1-all-languages.zip
sudo mv phpMyAdmin-4.5.3.1-all-languages/ phpmyadmin/
sudo mkdir -m 777 phpmyadmin/config/
sudo /etc/init.d/apache2 restart

3
libapache2-mod-php7.0es exactamente lo que necesitaba, gracias!
Jacer Omri


7

El proceso anterior no funcionó para mi servidor Ubuntu 15.10, así que pensé en compartir lo que funcionó en caso de que otros lo encuentren útil.

Primero tuve que eliminar ciertos módulos clave de PHP 5:

sudo apt-get -y purge php5 libapache2-mod-php5 php5 php5-cli php5-common php5-curl php5-gd php5-imap php5-intl php5-json php5-mcrypt php5-mysql php5-pspell php5-readline php5-sqlite

Luego, elimine algunas cosas adicionales que quedaron atrás:

sudo apt-get autoremove

Luego instale PHP 7.0:

sudo apt-get install php7.0

Luego, como se eliminó PHPMyAdmin, Apache2 no se inició, por lo que tuve que eliminar el archivo de configuración (podría haberlo movido):

sudo rm /etc/apache2/conf-enabled/phpmyadmin.conf

Luego tuve que reiniciar Apache2:

sudo service apache2 restart

PHP 7.0 se estaba ejecutando (confirmado con PHPINFO();)

Sin embargo, he encontrado que la única forma de hacer que PHPMyAdmin funcione es instalarlo / actualizarlo manualmente, ya que de lo contrario la última versión disponible en las fuentes aún no es compatible con PHP 7.

** EDITAR: ahora he encontrado una manera de actualizar PHPMyAdmin a una versión compatible sin tener que clonar desde GIT o compilar manualmente desde las fuentes, así que agrego esto a continuación:

Primero agregue este repositorio, actualice la lista de fuentes y actualice (NB: si se ha eliminado durante la actualización a PHP7, deberá instalarlo en lugar de actualizarlo):

sudo add-apt-repository ppa:nijel/phpmyadmin
sudo apt-get update
sudo apt-get dist-upgrade

Sin embargo, durante la instalación (en mi servidor) tuvo que ejecutar un script de actualización de la base de datos, upgrade_column_info_4_3_0+.sqlpero esto falló con el siguiente error:

mysql said: ERROR 1060 (42S21) at line 28: Duplicate column name 'input_transformation'

Elegí ignorar el error y completar la actualización. Después de la instalación, abrí el script de actualización .sql en/usr/share/phpmyadmin/sql/upgrade_column_info_4_3_0+.sql

Ejecuté el script manualmente eliminando las dos líneas ofensivas tratando de crear 2 columnas que ya existían (código para eliminar):

ALTER TABLE `pma__column_info`
ADD `input_transformation` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
ADD `input_transformation_options` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '';

Finalmente tuve que editar el archivo de configuración en /etc/phpmyadmin/config.inc.phpy agregar las siguientes dos líneas:

$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

Después de esto, PHPMyAdmin se actualiza con éxito y se habilitan las funciones ampliadas. Espero que esto ayude a otros.


4

En el momento de esta respuesta (febrero de 2017), en Ubuntu 16.04 LTS, ahora es posible instalar php 7.0. * Con el simple comando:

apt-get install php

No es necesario agregar repositorios de terceros.


3

Creo que ppase ha agregado en 16.04 LTS.

  1. Simplemente hazlo sudo apt-get install php7.0y eso es todo.
  2. Compruebe si se instaló ejecutando php --version
  3. Además, puede crear el info.phparchivo en la raíz del documento de Apache.
  4. Eso está en el /var/www/html/directorio
  5. correr sudo gedit /var/www/html/info.php
  6. Añadir lo siguiente al archivo: <?php phpinfo(); ?>. Nota: el archivo es un archivo en blanco desde que lo creó usted mismo.
  7. Ahora reinicia apache sudo service apache2 restart
  8. En su navegador web, http://localhost/info.phpeso le dará información completa sobre php.

Espero que esto ayude :)


1
¿No tengo que agregarlo a Apache2?
Arlen Beiler

No es un ppa, es la compilación oficial de ubuntu.
Jeff Puckett

2

Recopilé algunos recursos diferentes y resolví muchos problemas para configurar completamente una compilación de PHP 7 en Ubuntu 15.04 y 15.10. Aunque no es un script de paquete Debian, sí configura las dependencias y la configuración de Ubuntu. Los recursos se pueden encontrar por aquí .

Es posible que deba seleccionar una rama de lanzamiento sobre solo master y volver a ejecutar el script.


2

Sé que puede ser una mala idea, pero así es como conseguí que php7 funcionara con mi instalación de Ubuntu Server 12.04.5 (i386):

sudo nano /etc/apt/sources.list

Luego agregue lo siguiente al final:
 

deb http://us.archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
deb http://archive.canonical.com/ubuntu socio de confianza

Luego actualice como lo haría normalmente:

sudo apt-get update

Una vez que tenga PHP 7 instalado en su servidor apache, es posible que tenga que mover sus archivos a un nuevo directorio para trabajar:

sudo mv / var / www / * / var / www / html /
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.