Come installare PHP 7?


116

PHP 7 è uscito ieri e vorrei provarlo.

PHP 7.0.0 viene fornito con una nuova versione di Zend Engine, numerosi miglioramenti e nuove funzionalità come

  • Prestazioni migliorate: PHP 7 è fino a due volte più veloce di PHP 5.6
  • Riduzione significativa dell'utilizzo della memoria
  • Albero astratto di sintassi
  • Supporto coerente a 64 bit
  • Gerarchia delle eccezioni migliorata
  • Molti errori fatali convertiti in eccezioni
  • Generatore di numeri casuali sicuro
  • Rimossi SAPI ed estensioni vecchi e non supportati
  • L'operatore null coalescing (??)
  • Dichiarazioni di ritorno e di tipo scalare
  • Classi anonime
  • Dichiarazioni a costo zero

php.net


È possibile installarlo sull'attuale versione di Ubuntu?

Esistono limiti attuali o problemi di compatibilità noti?



1
PHP 7 è predefinito su Ubuntu 16, Xenial.
Buttle Butkus,

Risposte:


180

Puoi fare quanto segue:

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

Facoltativamente eliminare PHP 5:

sudo apt-get remove php5-common -y

O eliminalo direttamente inclusi i file di configurazione:

sudo apt-get purge php5-common -y

E infine installa PHP 7:

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

Facoltativamente ripulire i pacchetti non necessari in seguito:

sudo apt-get --purge autoremove -y

In alternativa, puoi installare PHP 7.0 da fonti usando questo script di script o seguendo le istruzioni su questo blog .

MODIFICARE:

PHP5 è stato ora sostituito con PHP7 come PHP predefinito in Ubuntu 16.4, quindi, per installare PHP7 su Ubuntu 16.04:

sudo apt-get install php7.0 

O

sudo apt-get install php

12
Chi è responsabile del ppa? È ufficialmente supportato da zend?
k0pernikus,

19
@ k0pernikus Zend non supporta ufficialmente nulla oltre al loro Zend Server :-) I pacchetti ufficiali Ubuntu sono supportati dai manutentori di Ubuntu. Questo PPA è uno sforzo personale di Ondřej Surý. Ondrey è il proprietario ufficiale dell'albero PHP in Debian, che è a monte di Ubuntu. Vedi qui: qa.debian.org/developer.php?login=ondrej%40debian.org
Palantir il

4
Ad ogni modo, i suoi PPA PHP sono molto popolari, al punto in cui la distribuzione Magento ufficiale pubblicizza la versione 5.5 e 5.6: devdocs.magento.com/guides/v2.0/install-gde/prereq/…
Palantir

3
JFTR memcached non è ancora pronto per l'upstream per PHP 7.0. Non ho esaminato memcache, risolvendo ancora piccoli bug dopo una grande riscrittura degli script di packaging.
oerdnj,

4
@Xeridea Prova sudo apt-get install libapache2-mod-php7.0, quindi sudo a2enmod php7.0riavvia Apache
andrewtweber il

21

Hai due opzioni:

  • Aspetta che esista una nuova versione di Ubuntu che includa PHP7

    Ubuntu non rilascerà importanti versioni di nuove versioni per la maggior parte dei software alle versioni di Ubuntu esistenti; per ottenere una nuova versione della versione più importante dovrai aspettare fino a una versione più recente di Ubuntu.

  • Installa una versione di terze parti, ad esempio da un PPA

    I PPA non sono vincolati dalle pianificazioni di rilascio o dalle politiche di Ubuntu, quindi sono liberi di cambiare versione più frequentemente, tra le altre cose. Il PPA menzionato nella risposta di Tshilidzi Mudau è un modo popolare per rimanere più aggiornati con PHP.

    sudo add-apt-repository ppa:ondrej/php
    

    I PPA non vengono forniti con lo stesso supporto Ubuntu ufficiale delle versioni fornite da Ubuntu e, a causa di pianificazioni e politiche diverse, possono avere standard di qualità o sicurezza diversi. In questo caso, lo sviluppatore che rende disponibile questo PPA è ben noto alla comunità qui.


1
E l'opzione per l'installazione dal sorgente.
j0h

18

Ecco il mio elenco di comandi per aggiornare completamente PHP con le sue dipendenze, incluso phpMyAdmin (stack LAMP completo):

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

Ora hai PHP7. Andiamo per phpMyAdmin: (inizia qui se hai già installato PHP7)

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.0è esattamente quello di cui avevo bisogno, grazie!
Jacer Omri,


7

Il processo sopra descritto non ha funzionato per il mio server Ubuntu 15.10, quindi ho pensato di condividere ciò che funzionava nel caso in cui altri lo trovassero utile.

Per prima cosa ho dovuto rimuovere alcuni moduli chiave 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

Quindi rimuovere alcune cose extra che sono state lasciate alle spalle:

sudo apt-get autoremove

Quindi installare PHP 7.0:

sudo apt-get install php7.0

Quindi, rimuovendo PHPMyAdmin, Apache2 non si avviava, quindi dovevo rimuovere il file di configurazione (avrei potuto invece spostarlo):

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

Quindi ho dovuto riavviare Apache2:

sudo service apache2 restart

PHP 7.0 era quindi in esecuzione (confermato con PHPINFO();)

Tuttavia, ho trovato che l'unico modo per far funzionare PHPMyAdmin è installarlo / aggiornarlo manualmente, altrimenti la versione più recente disponibile nei sorgenti non supporta ancora PHP 7.

** EDIT: ho trovato un modo per aggiornare PHPMyAdmin a una versione compatibile senza dover clonare da GIT o compilare manualmente da fonti, quindi sto aggiungendo questo di seguito:

Per prima cosa aggiungi questo repository, aggiorna l'elenco delle fonti e aggiorna (NB: se è stato rimosso durante l'aggiornamento a PHP7 dovrai installare invece di aggiornarlo):

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

Tuttavia durante l'installazione (sul mio server) doveva eseguire uno script di aggiornamento del database upgrade_column_info_4_3_0+.sqlma questo non è riuscito con il seguente errore:

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

Ho scelto di ignorare l'errore e completare l'aggiornamento. Dopo l'installazione ho aperto lo script di aggiornamento .sql su/usr/share/phpmyadmin/sql/upgrade_column_info_4_3_0+.sql

Ho eseguito lo script rimuovendo manualmente le due righe offensive cercando di creare 2 colonne già esistenti (codice da rimuovere):

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

Alla fine ho dovuto modificare il file di configurazione in /etc/phpmyadmin/config.inc.phpe aggiungere le seguenti due righe:

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

Dopo che PHPMyAdmin è stato aggiornato correttamente e le funzionalità estese sono abilitate. Spero che questo aiuti gli altri.


4

Al momento di questa risposta (febbraio 2017), su Ubuntu 16.04 LTS, è ora possibile installare php 7.0. * Con il semplice comando:

apt-get install php

Non è necessario aggiungere repository di terze parti.


3

Penso che ppasia stato aggiunto in 16.04 LTS.

  1. Basta semplicemente fare sudo apt-get install php7.0e basta.
  2. Controlla se è installato eseguendo php --version
  3. Inoltre, è possibile creare il info.phpfile nella radice del documento di Apache.
  4. Questo è nella /var/www/html/directory
  5. Correre sudo gedit /var/www/html/info.php
  6. Aggiungere il seguente al file: <?php phpinfo(); ?>. Nota: il file è un file vuoto da quando lo hai creato tu stesso.
  7. Ora riavvia apache sudo service apache2 restart
  8. Nel tuo browser, http://localhost/info.phpquesto ti darà informazioni complete su php.

Spero che sia di aiuto :)


1
Non devo aggiungerlo ad Apache2?
Arlen Beiler,

Non è un ppa, è la build ufficiale di Ubuntu.
Jeff Puckett,

2

Ho raccolto alcune risorse diverse e risolto molti problemi per impostare completamente una build di PHP 7 su Ubuntu 15.04 e 15.10. Sebbene non sia uno script del pacchetto Debian, imposta le dipendenze e la configurazione di Ubuntu. Le risorse sono disponibili qui .

Potrebbe essere necessario selezionare un ramo di rilascio sul master e rieseguire lo script.


2

So che questa potrebbe essere una cattiva idea, ma è così che ho fatto funzionare php7 con la mia installazione di Ubuntu Server 12.04.5 (i386):

sudo nano /etc/apt/sources.list

Quindi aggiungere quanto segue alla fine:
 

deb http://us.archive.ubuntu.com/ubuntu/ fidato multiverso dell'universo con restrizioni principali
deb http://archive.canonical.com/ubuntu partner affidabile

Quindi aggiorna come faresti normalmente:

sudo apt-get update

Dopo aver installato PHP 7 sul tuo server Apache, potresti dover spostare i tuoi file in una nuova directory per funzionare:

sudo mv / var / www / * / var / www / html /
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.