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):
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:
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:
Sudo apt-get install libfreetype6-dev
À ce jour, vous avez probablement reconnu le schéma de:
exécutez ./configure
Recherchez le message d'erreur sur votre moteur de recherche préféré ou directement sur SO.
Installez le composant manquant via apt-get.
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
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
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.
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.
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/
Sur Ubuntu 16
mise à jour apt-get
apt-get installer php libapache2-mod-php php-mcrypt
ce php7 installé
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
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
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
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.
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 .