web-dev-qa-db-fra.com

Comment installer PHP 7 (PHP nouvelle génération) sur Ubuntu

Comment installer PHP 7 (PHP nouvelle génération) sur Ubuntu?

Je voulais installer PHP 7 sur une nouvelle installation d'Ubuntu pour voir à quels problèmes je serais confronté.

Voici le guide officiel (mais maigre):

https://wiki.php.net/phpng

16
RyanNerd

J'ai fait une analyse par moi-même et j'ai pensé qu'il serait utile de documenter les problèmes que j'ai rencontrés au fur et à mesure et comment je les ai surmontés, sauvant ainsi peut-être d'autres douleurs et souffrances.

J'ai cependant trouvé (après le fait) ceci http://jcutrer.com/howto/linux/how-to-compile-php7-on-ubuntu-14-04 qui est un guide beaucoup plus propre que ce que je fournis ci-dessous.

Depuis le guide ( https://wiki.php.net/phpng ):

./buildconf 
mkdir  ~/tmp 
cd ~/tmp
git clone https://git.php.net/repository/php-src.git
cd php-src

Jusqu'ici tout va bien. À ce stade, j'ai commencé à avoir des problèmes:

./buildconf

A signalé que je n'avais pas fait installer. La solution a été trouvée ici: https://askubuntu.com/questions/192645/make-command-not-found

J'ai essayé cela, mais j'avais toujours des problèmes alors j'ai fait ceci:

Sudo apt-get purge make  
Sudo apt-get install make 

Problème suivant lorsque j'ai réessayé ./buildconf, il s'est plaint que je n'avais pas de configuration automatique. Voici la solution à cela:

Sudo apt-get install autoconf  

Maintenant, j'ai enfin pu exécuter la commande ./configure et j'ai obtenu ceci:

configurez: AVERTISSEMENT: vous aurez besoin de re2c 0.13.4 ou version ultérieure si vous voulez régénérer PHP.

L'installation de Bison semble également installer re2c, donc cela résout les deux problèmes:

Sudo apt-get install bison    

La configuration a évolué pendant un certain temps, puis a vomi avec:

configure: erreur: xml2-config introuvable. Veuillez vérifier votre installation de libxml2.

Devrait être une solution facile à droite? Exécutez simplement:

Sudo apt-get install libxml2

Nan. Pas si simple. Nous avons déjà le dernier et le meilleur pour cela:

libxml2 est déjà la dernière version.

D'accord. Peut-être pouvons-nous résoudre ce problème comme nous l'avons fait, purger et réinstaller:

Sudo apt-get purge libxml2 Sudo apt-get install libxml2

Nan. Exécution de ./configure barfs sur la même erreur. SO à la rescousse:

Comment corriger l'erreur avec xml2-config introuvable lors de l'installation de PHP à partir des sources?

Apparemment, nous avons besoin de la version de développement de cette bibliothèque:

Sudo apt-get install libxml2-dev

./configurez à nouveau et nous avons des progrès ... une nouvelle erreur:

configure: erreur: impossible de trouver OpenSSL

Tirant les leçons de notre dernière incursion, essayons:

Sudo apt-get install openssl-dev

ou

Sudo apt-get install open-ssl-dev

Non, d'accord, recherchons ceci:

apt-cache search openssl 

Wow, c'est pas mal de paquets. Rétrécissons un peu:

apt-cache search openssl | grep php

Eh bien, cela nous donne une liste plus petite, mais tous ont php5 à l'avant et nous faisons un php7 (phpng Next Generation build à partir de zéro); l'un de ces packages fonctionnera-t-il? En route vers les interwebs pour notre solution:

https://serverfault.com/questions/415458/php-error-cannot-find-openssls-evp-h

Sudo apt-get install libcurl4-openssl-dev pkg-config

Voyons si cela a rendu ./configure heureux (non, mais progresse ... une nouvelle erreur):

configurer: erreur: veuillez réinstaller la distribution BZip2

Une nouvelle recherche sur le Web nous amène à:

http://zgadzaj.com/how-to-install-php-53-and-52-together-on-ubuntu-1204

qui nous dit de faire ceci:

Sudo apt-get install libbz2-dev

Encore une fois, nous envoyons une prière au dieu ./configure et ...

Si la configuration échoue, essayez --with-vpx-dir = configure: erreur: jpeglib.h introuvable.

AUX INTERWEBS !!!

Trouvé ceci: http://www.omniweb.com/wordpress/?p=104

Sudo apt-get install libjpeg-dev

Réessayez ./configure et ENQUÊTE DIT:

configure: erreur: png.h introuvable.

Sur le même site Web que ci-dessus, il est dit de faire ceci:

Sudo apt-get install libpng-dev

Essayez à nouveau ./configure et ENQUÊTE DIT:

erreur de configuration xpm.h introuvable

J'ai pris un coup de couteau dans l'obscurité et j'ai atteint la cible avec:

Sudo apt-get install libxpm-dev

Encore une fois prier le dieu ./configure et la réponse est:

configure: erreur: freetype-config introuvable.

Google ALL KNOWING nous dirige vers le SO dieu ici:

échec de la configuration de php 5.3 avec erreur: freetype.h introuvable (mais libfreetype6-dev est installé)

Sudo apt-get install libfreetype6-dev 

À ce jour, vous avez probablement reconnu le schéma de:

  1. exécutez ./configure

  2. Recherchez le message d'erreur sur votre moteur de recherche préféré ou directement sur SO.

  3. Installez le composant manquant via apt-get.

  4. GOTO 1.

Donc à partir de maintenant, je vais simplement montrer l'erreur et la commande apt-get ou d'autres commandes qui résolvent le problème:

configure: erreur: impossible de localiser gmp.h

build php5.3.8 sur ubuntu, obtenez l'erreur: configure: error: impossible de localiser gmp.h

Sudo apt-get install libgmp-dev  
Sudo apt-get install libgmp3-dev
ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h

configure: erreur: mcrypt.h introuvable. Veuillez réinstaller libmcrypt.

Sudo apt-get install libmcrypt-dev

configure: erreur: veuillez réinstaller la distribution mysql

http://www.spiration.co.uk/post/1332/install%20PDO_MYSQL%20-%20mysql_config%20and%20header%20files%20problem

Sudo apt-get install libmysqlclient15-dev  

configurer: erreur: impossible de trouver pspell

Sudo apt-get install libpspell-dev

configure: erreur: impossible de trouver recode.h n'importe où sous/usr/usr/local/usr/opt.

Sudo apt-get install librecode-dev

configurer: AVERTISSEMENT: options non reconnues: --with-t1lib

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=658248

Pas de solution. Semble être un bug de régression. La solution consiste à supprimer --with-t1lib des options de configuration. Je pense que cela peut s'appliquer uniquement aux versions de Windows, mais je n'en suis pas certain.

configurer: AVERTISSEMENT: options non reconnues: --with-my-sql

Pas de solution. La solution consiste à supprimer le commutateur --with-mysql des options de configuration. Puisque nous incluons le pdo-mysql, ce n'est probablement pas un problème de toute façon.

FINALEMENT, nous arrivons à construire PHP7 avec cette commande (je vous suggère de vous préparer une tasse de café maintenant car cela prend un certain temps):

make

Utilisez la commande Sudo make install pour installer réellement notre build php:

Sudo make install 

Pour vérifier si tout va bien et que nous avons la bonne version, exécutez ceci dans le terminal:

cd $HOME/tmp/usr/bin
./php -v

PHP 7.0.0-dev (cli) (construit: 22 juin 2015 18:11:13) Copyright (c) 1997-2015 Le PHP Group Zend Engine v3.0.0-dev, Copyright ( c) 1998-2015 Zend Technologies

51
RyanNerd

Ondřej Surý a un PPA à https://launchpad.net/~ondrej/+archive/ubuntu/php

Sudo add-apt-repository ppa:ondrej/php
Sudo apt-get update
Sudo apt-get install php7.0

Utiliser le PPA est certainement plus facile que de construire à partir de la source!

Une note pour les personnes avec PHP 5.x déjà installé; apt-get s'est plaint un peu quand j'ai essayé d'installer install php7.0 sur une boîte avec PHP 5 dessus, mais après j'ai fait apt-get remove php5 pour se débarrasser de mon PHP 5.6 installation existante, puis explicitement Sudo apt-get install php7.0-common J'ai pu obtenir le Sudo apt-get install php7.0 passer par. Je ne sais pas pourquoi cela était nécessaire; si quelqu'un qui comprend mieux Apt que moi souhaite éditer de meilleures instructions (ou fournir une meilleure réponse et me demander de supprimer celle-ci), n'hésitez pas.

17
Mark Amery

Installer PHP7 (Nightly Build - dernière version) sur Ubuntu à l'aide du terminal

je suppose que vous avez déjà installé Apache2, sinon installez-le avec la commande suivante:

apt-get install Apache2

vérifiez si Apache est en cours d'exécution:

service Apache2 status

Vous pourriez voir quelque chose comme:

Apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/Apache2)
Active: ACTIVE (RUNNING)

si Apache est en cours d'exécution, puis traité avec le processus d'installation PHP 7:

Ajoutez d'abord le dépôt PHP7 à votre liste de sources, /etc/apt/sources.list, en utilisant votre éditeur de texte préféré:

deb http://repos.zend.com/zend-server/early-access/php7/repos ubuntu/ 

Après avoir ajouté le PHP 7 repo, mettez à jour votre système avec la commande suivante:

apt-get update

maintenant, si tout s'est bien passé, vous devriez pouvoir installer PHP7 Nightly Build avec la commande suivante:

apt-get install php7-nightly

Pendant l'installation, un avertissement peut s'afficher, "Voulez-vous continuer?", S'il appuie sur Entrée. Après avoir appuyé sur Entrée, vous recevrez également un avertissement similaire à celui ci-dessous

WARNING: The following packages cannot be authenticated!
  php7-nightly
Install these packages without verification? [y/N]

Tapez Y et appuyez sur Entrée pour continuer.

L'installation est terminée! Maintenant, vous devez faire fonctionner PHP7 avec Apache, pour ce faire, copiez/déplacez les bibliothèques et modules de PHP7 vers les répertoires Apache avec les commandes suivantes:

cp /usr/local/php7/libphp7.so /usr/lib/Apache2/modules/
cp /usr/local/php7/php7.load /etc/Apache2/mods-available/

Après avoir déplacé les fichiers, vous devez modifier /etc/Apache2/Apache2.conf et ajouter les lignes suivantes au bas du fichier. qui indiquera à Apache de servir les fichiers php

<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

Maintenant que vous avez corrigé Apache2.conf, exécutez la commande suivante pour activer le module PHP mpm et basculez vers mpm_prefork.

a2dismod mpm_event && a2enmod mpm_prefork && a2enmod php7

Redémarrez Apache pour que les modifications apportées prennent effet:

service Apache2 restart

Il est maintenant temps de tester PHP 7

Pour tester PHP7, vous allez créer un fichier PHP appelé info.php dans/var/www/html/en utilisant votre éditeur préféré et en insérant les lignes de code suivantes.

<?php
phpinfo();
?>

Vous pouvez maintenant accéder à votre navigateur préféré et essayer l'URL suivante

http://localhost/info.php

En haut de la page, vérifiez que la version PHP est 7.0 ou supérieure.

exemple de version PHP7

Maintenant que vous avez vérifié que cela fonctionne, vous devez supprimer votre info.php car c'est un risque pour la sécurité. Supprimez-le avec la commande suivante:

rm /var/www/html/info.php

Source: https: //www.atlantic.net/community/howto/try-php7-debian-8-2-lamp-stack/

2
FerraBraiZ

Sur Ubuntu 16

mise à jour apt-get

apt-get installer php libapache2-mod-php php-mcrypt

ce php7 installé

1
Ritin

Je suis l'OP. Ma suggestion est d'utiliser le PPA d'Ondřej Surý à https://launchpad.net/~ondrej/+archive/ubuntu/php-7. comme suggéré par @Mark Amery

Si vous voulez le plaisir et les jeux d'installation de PHP 7 à partir de la source, alors voici le script que j'utilise pour la configuration et la construction (notez que le "make -j4" est si vous avez un Machine à 4 cœurs et souhaitez qu'elle soit parallèle sur chaque cœur pendant le processus de construction):

#!/bin/sh
./buildconf --force

./configure \
--prefix=/usr/php7 \
--with-config-file-path=/etc/php7 \
--enable-phpdbg \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pgsql \
--with-pdo-pgsql \
--with-pdo-sqlite \
--enable-intl \
--with-pear \
--with-Gd \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-exif \
--enable-Zip \
--with-zlib \
--with-zlib-dir=/usr \
--with-mcrypt=/usr \
--enable-soap \
--enable-xmlreader \
--with-xsl \
--with-curl=/usr \
--with-tidy \
--with-xmlrpc \
--enable-sysvsem \
--enable-sysvshm \
--enable-shmop \
--enable-pcntl \
--with-readline \
--enable-mbstring \
--with-curl \
--with-gettext \
--enable-sockets \
--with-bz2 \
--with-openssl \
--with-gmp \
--enable-bcmath \
--enable-calendar \
--enable-ftp \
--with-pspell=/usr \
--with-enchant=/usr \
--enable-wddx \
--with-imap \
--with-imap-ssl \
--with-freetype-dir=/usr/local \
--with-xpm-dir=/usr \
--with-kerberos \
--enable-sysvmsg 

make -j4 
Sudo make install
1
RyanNerd

Je me suis compilé php 7 en suivant ceci => http://blog.idojo.co/how-to-setup-a-lamp-stack-with-all-the-latest-softwares/ , les instructions étaient assez faciles, ajustez les options de configuration à vos besoins, les options de configuration par défaut ont bien fonctionné pour moi sur le serveur ubuntu 14.04 ....

La pile de lampes comprend, Apache 2.4.18 , MySQL 5.7.10 et PHP 7.0.4

1
Light93

Je vois que d'autres utilisateurs publient des binaires mais si vous voulez le compiler vous-même, essayez l'auto-apt.

Pour compiler n'importe quelle application à partir de la source, vous pouvez utiliser auto-apt. Ce n'est pas un outil bien connu, mais il aide beaucoup à compiler des applications avec de nombreuses bibliothèques externes.

Auto-apt crée une vérification pilotée du script configure et détecte les packages du script configure.sh qu'il recherche, et il vous permet de les installer si vous voulez la fonctionnalité du script qu'il recherche à ce moment.

Sudo apt-get install auto-apt
Sudo auto-apt update
Sudo auto-apt updatedb && Sudo auto-apt update-local
Sudo auto-apt run ./configure

Plus d'informations: https://help.ubuntu.com/community/AutoApt

0
NetVicious

Vous pouvez utiliser php-build pour construire et installer PHP 7 (et autres PHP versions). Cela peut être beaucoup plus facile si vous n'êtes pas familier avec la procédure de construction PHP.

0
vearutop

Vous pouvez installer un panneau de contrôle qui prend en charge Ubuntu et PHP 7. Par exemple, ServerPilot prend en charge Ubunt et installe PHP = 7 .

0
Justin Samuel