Installer PHP7 à partir du dépôt Remi

13

J'ai installé PHP7 de Remi repo avec

sudo yum -y install httpd
sudo yum -y install epel-release
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 
sudo rpm -Uvh remi-release-6*.rpm
sudo yum -y --enablerepo=remi,remi-test install php70
scl enable php70 'php -v'
sudo ln -s /usr/bin/php70 /usr/bin/php

et cela fonctionne via CLI. Maintenant, je veux le faire fonctionner avec apache mais je ne peux pas trouver un afin de passer comme deuxième argument à LoadModule

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

Est-ce la bonne approche pour faire fonctionner PHP7 avec apache2?

mbalparda
la source
php7.zend.com/install-ubuntu.php C'est pour Centos7 mais cela peut aider.
angelcool.net
J'ai fini par écrire blog.nexcess.net/2015/07/21/install-wordpress-with-php-7 avec les builds Zend PHP7.
mbalparda
PHP7, compte tenu de son statut de pré-version, semble bien tomber dans la catégorie proche des "logiciels non pris en charge".
ceejayoz
1
find / -iname '*php*.so':)
Marki

Réponses:

23

Par défaut, "php70" (Software Collection) n'installe pas le mod_php.

yum install php70-php

Et vérifiez que vous n'avez pas d'autre mod_php (comme celui fourni par le paquet de base "php")

Remi Collet
la source
Salut Remi. Je viens d'installer sur centos 6.7 ( yum install php70-php-pear php70-php-bcmath php70-php-pecl-jsond-devel php70-php-mysqlnd php70-php-gd php70-php-common php70-php-fpm php70-php-intl php70-php-cli php70-php php70-php-xml php70-php-opcache php70-php-pecl-apcu php70-php-pecl-jsond php70-php-pdo php70-php-gmp php70-php-process php70-php-pecl-imagick php70-php-devel php70-php-mbstring) et bien que l'installation fonctionne parfaitement, mes sites sont toujours servis en php 5.6. Comment "basculer" nginx vers php 7?
Codemonkey
Puisque fcgi passe au-dessus de 127.0.0.1:9000, je suppose que je dois en quelque sorte désactiver 5.6 sur ce port et le faire php 7 à la place ... mais mon esprit est devenu vide! Je suppose que si j'avais d'abord désinstallé tous les éléments 5.6, puis installé 7, cela le résoudrait-il également?
Codemonkey
Si vous nedd une seule version php, vous pouvez désactiver "php-fpm" et utiliser "php70-php-fpm" à la place. Si vous avez besoin des deux, modifiez l'option d'écoute dans la définition du pool et la configuration de nginx.
Remi Collet
2
Fantastique, merci. Pour n'importe qui d'autre dans le même bateau, cela fait l'affaire: service php-fpm stop, service php70-php-fpm start. Vous trouverez les fichiers de configuration php.ini et php-fpm dans /etc/opt/remi/php70/plutôt que dans etc.
Codemonkey
@RemiCollet J'ai installé php 5.6 en utilisant remo repos. Sachez comment puis-je mettre à jour la version 5.6 à 7? J'ai besoin d'une seule version. Merci.
2015
6

Pour info pour ceux qui cherchent à installer PHP 7 en utilisant le remi-php70référentiel (maintenant que PHP 7.0.0 est sorti), vous pouvez installer des packages en utilisant les mêmes noms de packages que vous connaissez et aimez, par exemple:

  • php
  • php-cli
  • php-common
  • php-devel
  • php-fpm
  • php-gd
  • php-mbstring
  • php-pdo
  • etc.
geerlingguy
la source
Comment? php54 semble être la valeur par défaut avec remi-release-7.rpm?
giorgio79
1
@ giorgio79 si vous activez remi-php70.repoet désactivez toutes les autres versions de php à partir des dépôts remi, exécutées yum install php-fpmpar défaut utilise 7.0, mais cela ne fonctionne PAS avec 7.1 (ou d'autres versions futures)
doucement le
2

PHP70 semble également tout installer sous / etc / opt / remi / php70 /:

vous devrez exécuter:

source /opt/remi/php70/enable
user1455180
la source
3
Vous devez élaborer. Pourquoi avez-vous besoin de faire ça? Qu'est ce que ça fait? Comment cela aide-t-il l'OP à trouver le module Apache?
Marki
Si PHP 7 ne fonctionne toujours pas, vous devrez l'exécuter pour le faire fonctionner. Il ajoutera une ligne dans apache pour charger le module php70.
user1455180
cela cessera de fonctionner si vous vous déconnectez et vous reconnectez. c'est le problème auquel je suis confronté.
Edward
Que diable celui-ci m'a brûlé sur mon installation 7.4! Ajout des entrées PATH au besoin et cela fonctionne. Sheesh aucune idée pourquoi il a été conçu comme ça!
emmdee
1

Si vous avez une ancienne version de php (comme 5.6) installée, n'oubliez pas de faire quelque chose comme ceci:

cd /etc/httpd/conf.d/
mv php.conf php.conf.dis

Redémarrez apache et cela devrait le faire.

Bozidar Sikanjic
la source
1
Étrangement, cette solution l'a corrigé pour moi après quelques heures de marmonnement.
giorgio79
1

Pour toute autre personne essayant de passer de PHP 5.6 à 7.0.1 sur Centos 6.7:

J'ai réussi à faire fonctionner cela aujourd'hui presque comme @mbalparda l'a indiqué mais sans utiliser epel-release (bien que quelques dépôts epel soient activés et utilisés)

J'ai installé php 5.6 de IUS ( https://ius.io/GettingStarted/ ) repo ( https://centos6.iuscommunity.org/ius-release.rpm ), donc je les ai supprimés en:

# yum list installed | grep php5
php56u.x86_64          5.6.14-1.ius.centos6
php56u-cli.x86_64      5.6.14-1.ius.centos6
php56u-common.x86_64   5.6.14-1.ius.centos6
...

et donc

# yum erase php56u php56u-cli php56u-common php56u-mcrypt php56u-mysqlnd ...

suivi des commandes listées:

# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 
# rpm -Uvh remi-release-6.rpm
# yum install php70-php php70-php-cli php70-php-common php70-php-mcrypt php70-php-mysqlnd ...
# scl enable php70 'php -v'
# sudo ln -s /usr/bin/php70 /usr/bin/php
# service httpd restart
site80443
la source
mélanger les paquets php70- * et php56u- * dans la même commande semble très étrange. Probablement indésirable. Et si vous voulez une seule version, utiliser le SCL n'est pas la solution la plus simple. Le plus simple est d'activer le dépôt remi-php70 et la "mise à jour yum". N'oubliez pas d'essayer le nouvel assistant: rpms.remirepo.net/wizard
Remi Collet
@RemiCollet merci d'avoir souligné la faute de frappe, édité le message pour refléter la même chose - je voulais écrire php70-php-mysqlnd etc mais copié-collé / édité à tort ... De plus, l'assistant semble superbe. Merci!
site80443