Comment installer PHP 7?

116

PHP 7 est sorti hier et je voudrais l'essayer.

PHP 7.0.0 est livré avec une nouvelle version du moteur Zend Engine, de nombreuses améliorations et de nouvelles fonctionnalités telles que

  • Amélioration des performances: PHP 7 est jusqu'à deux fois plus rapide que PHP 5.6
  • Utilisation de la mémoire considérablement réduite
  • Arbre de syntaxe abstraite
  • Prise en charge cohérente en 64 bits
  • Hiérarchie des exceptions améliorée
  • De nombreuses erreurs fatales converties en exceptions
  • Générateur de nombres aléatoires sécurisé
  • SAPI et extensions anciennes et non prises en charge supprimées
  • L'opérateur de coalescence nul (??)
  • Retour et déclarations de type scalaire
  • Classes Anonymes
  • Zéro coût affirme

php.net


Est-il possible de l'installer sur la version actuelle d'Ubuntu?

Existe-t-il des limitations ou des problèmes de compatibilité connus?

hg8
la source
1
PHP 7 est la valeur par défaut pour Ubuntu 16, Xenial.
Buttle Butkus

Réponses:

180

Vous pouvez faire ce qui suit:

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

Purger éventuellement PHP 5:

sudo apt-get remove php5-common -y

Ou purgez-le directement, y compris les fichiers de configuration:

sudo apt-get purge php5-common -y

Et enfin installer PHP 7:

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

En option, nettoyez les paquets inutiles après:

sudo apt-get --purge autoremove -y

Sinon, vous pouvez installer PHP 7.0 à partir de sources en utilisant ce script ou les instructions suivantes sur ce blog .

MODIFIER:

PHP5 a été remplacé par PHP7 en tant que PHP par défaut dans Ubuntu 16.4 donc, pour installer PHP7 sur Ubuntu 16.04:

sudo apt-get install php7.0 

Ou

sudo apt-get install php
Tshilidzi Mudau
la source
12
Qui est responsable du ppa? Est-ce officiellement supporté par zend?
k0pernikus
19
@ k0pernikus Zend ne supporte officiellement rien au-delà de leur serveur Zend :-) Les paquetages officiels Ubuntu sont supportés par les responsables de la maintenance Ubuntu. Cet APP est un effort personnel d'Ondřej Surý. Ondrey est le propriétaire officiel de l'arborescence PHP dans Debian, en amont d'Ubuntu. Voir ici: qa.debian.org/developer.php?login=ondrej%40debian.org
Palantir
4
Quoi qu'il en soit, ses PPA PHP sont très populaires, au point que la distribution officielle de Magento annonce les versions 5.5 et 5.6: devdocs.magento.com/guides/v2.0/install-gde/prereq/…
Palantir
3
JFTR memcached n'est pas encore prêt pour PHP 7.0. Je n'ai pas regardé Memcache, je corrige toujours les petits bugs après une réécriture majeure des scripts d'empaquetage.
Oerdnj
4
@Xeridea Essayez sudo apt-get install libapache2-mod-php7.0, puis sudo a2enmod php7.0redémarrez Apache
andrewtweber
21

Vous avez deux options:

  • Attendez qu'une nouvelle version d'Ubuntu incluant PHP7

    Ubuntu ne publiera pas de nouvelles versions majeures de la plupart des logiciels pour les versions existantes d’Ubuntu; pour obtenir une nouvelle version majeure, vous devez attendre la dernière version d'Ubuntu.

  • Installer une version tierce, telle que celle d'un PPA

    Les PPA ne sont pas liés par les calendriers de publication ou les politiques d'Ubuntu, ils sont donc libres de changer de version plus souvent, entre autres. Le PPA mentionné dans la réponse de Tshilidzi Mudau est un moyen populaire de rester plus à jour avec PHP.

    sudo add-apt-repository ppa:ondrej/php
    

    Les PPA n'offrent pas le même support officiel Ubuntu officiel que les versions fournies par Ubuntu et, en raison de calendriers et de stratégies différentes, ils peuvent être d'un niveau de qualité ou de sécurité différent. Dans ce cas, le développeur qui rend ce PPA disponible est bien connu de la communauté ici.

thomasrutter
la source
1
Et la possibilité d'installer à partir des sources.
j0h
18

Voici ma liste de commandes pour mettre à jour complètement PHP avec ses dépendances, y compris phpMyAdmin (pile LAMP complète):

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

Maintenant vous avez PHP7. C'est parti pour phpMyAdmin: (commencez ici si vous avez déjà installé 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
Jarek Jakubowski
la source
3
libapache2-mod-php7.0est exactement ce dont j'avais besoin, merci!
Jacer Omri
7

Le processus ci-dessus n'a pas fonctionné pour mon serveur Ubuntu 15.10, j'ai donc pensé partager ce qui fonctionnait si d'autres le trouvaient utile.

J'ai d'abord dû supprimer certains modules clés 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

Ensuite, supprimez quelques éléments supplémentaires qui ont été laissés:

sudo apt-get autoremove

Puis installez PHP 7.0:

sudo apt-get install php7.0

Ensuite, PHPMyAdmin ayant été supprimé, Apache2 ne voulait pas démarrer et j'ai donc dû supprimer le fichier de configuration (j'aurais pu le déplacer à la place):

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

Ensuite, j'ai dû redémarrer Apache2:

sudo service apache2 restart

PHP 7.0 était alors en cours d'exécution (confirmé avec PHPINFO();)

Cependant, j’ai trouvé que le seul moyen de faire fonctionner PHPMyAdmin est de l’installer / de le mettre à niveau manuellement, sinon la dernière version disponible dans les sources ne prend pas encore PHP 7 en charge.

** EDIT: j'ai maintenant trouvé un moyen d'obtenir une mise à jour de PHPMyAdmin vers une version compatible sans avoir à cloner à partir de GIT ou à compiler manuellement à partir de sources, je rajoute ceci ci-dessous:

Ajoutez d’abord ce référentiel, mettez à jour la liste des sources et mettez à niveau (NB: s’il a été supprimé lors de la mise à niveau vers PHP7, vous devrez l’installer plutôt que le mettre à niveau):

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

Cependant, lors de l'installation (sur mon serveur), il a fallu exécuter un script de mise à niveau de la base de données, upgrade_column_info_4_3_0+.sqlmais cela a échoué avec l'erreur suivante:

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

J'ai choisi d'ignorer l'erreur et de terminer la mise à niveau. Après l'installation, j'ai ouvert le script de mise à niveau .sql à l'adresse/usr/share/phpmyadmin/sql/upgrade_column_info_4_3_0+.sql

J'ai exécuté le script manuellement en supprimant les deux lignes incriminées en essayant de créer 2 colonnes déjà existantes (code à supprimer):

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

Finalement, je devais éditer le fichier de configuration à /etc/phpmyadmin/config.inc.phpet ajouter les deux lignes suivantes:

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

Après cela, PHPMyAdmin est correctement mis à jour et les fonctionnalités étendues sont activées. J'espère que cela aide les autres.

Robin Wilson
la source
4

Au moment de cette réponse (février 2017), sur Ubuntu 16.04 LTS, il est maintenant possible d'installer php 7.0. * Avec la commande simple:

apt-get install php

Pas besoin d'ajouter de référentiels tiers.

Leo Galleguillos
la source
3

Je pense que le ppaa été ajouté dans 16.04 LTS.

  1. Faites simplement sudo apt-get install php7.0et c'est tout.
  2. Vérifiez s'il est installé en exécutant php --version
  3. En outre, vous pouvez créer le info.phpfichier dans la racine du document d'Apache.
  4. C'est dans le /var/www/html/répertoire
  5. Courir sudo gedit /var/www/html/info.php
  6. Ajoutez ce qui suit au fichier: <?php phpinfo(); ?>. Remarque: le fichier est vide car vous l'avez créé vous-même.
  7. Maintenant redémarrer Apache sudo service apache2 restart
  8. Dans votre navigateur Web, http://localhost/info.phpcela vous donnera des informations complètes sur php.

J'espère que cela t'aides :)

Collin
la source
1
Ne dois-je pas l'ajouter à Apache2?
Arlen Beiler
Ce n'est pas un ppa, c'est la version officielle d'ubuntu.
Jeff Puckett
2

J'ai rassemblé quelques ressources différentes et résolu de nombreux problèmes pour installer complètement une version de PHP 7 sur Ubuntu 15.04 et 15.10. Bien qu'il ne s'agisse pas d'un script de package Debian, il configure les dépendances et la configuration d'Ubuntu. Les ressources peuvent être trouvées ici .

Vous devrez peut-être sélectionner une branche de publication sur maître uniquement et réexécuter le script.

m1st0
la source
2

Je sais que c'est peut-être une mauvaise idée, mais c'est comme ça que j'ai fait fonctionner php7 avec mon installation d'Ubuntu Server 12.04.5 (i386):

sudo nano /etc/apt/sources.list

Puis ajoutez ce qui suit à la fin:
 

deb http://us.archive.ubuntu.com/ubuntu/ fidèle principal univers restreint multivers
deb http://archive.canonical.com/ubuntu partenaire de confiance

Puis mettez à jour comme vous le feriez normalement:

sudo apt-get update

Une fois que vous avez installé PHP 7 sur votre serveur Apache, vous devrez peut-être déplacer vos fichiers dans un nouveau répertoire pour pouvoir fonctionner:

sudo mv / var / www / * / var / www / html /
KimChoJapFan
la source