Installieren Sie PHP7 von Remi Repo

13

Ich habe PHP7 von Remi Repo mit installiert

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

und es funktioniert über CLI. Jetzt möchte ich es mit Apache arbeiten lassen, aber ich kann ein so nicht finden, um als zweites Argument zu LoadModule zu führen

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

Ist dies der richtige Ansatz, um PHP7 für die Arbeit mit Apache2 zu machen?

mbalparda
quelle
php7.zend.com/install-ubuntu.php Es ist für Centos7, aber es kann helfen.
angelcool.net
Am Ende habe ich blog.nexcess.net/2015/07/21/install-wordpress-with-php-7 mit den Zend PHP7 Builds geschrieben.
mbalparda
PHP7 scheint in Anbetracht seines Vorabversionsstatus fest in die Kategorie "Nicht unterstützte Software" zu fallen.
Ceejayoz
1
find / -iname '*php*.so':)
Marki

Antworten:

23

Standardmäßig installiert "php70" (Software Collection) das mod_php nicht.

yum install php70-php

Und vergewissere dich, dass du kein anderes mod_php hast (wie das von "php" bereitgestellte Basispaket)

Remi Collet
quelle
Hallo Remi. Ich habe gerade auf 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) installiert und während die Installation fehlerfrei lief, werden meine Sites immer noch in PHP 5.6 bedient. Wie "schalte" ich Nginx auf PHP 7 um?
Codemonkey
Da fcgi 127.0.0.1:9000 überschreitet, nehme ich an, ich muss irgendwie 5.6 auf diesem Port deaktivieren und dafür sorgen, dass es stattdessen PHP 7 ist ... aber mein Verstand ist leer! Ich vermute, dass, wenn ich alle 5.6 Sachen zuerst deinstallierte und dann 7 installierte, das es auch lösen würde?
Codemonkey
Wenn Sie eine einzige PHP-Version benötigen, können Sie "php-fpm" deaktivieren und stattdessen "php70-php-fpm" verwenden. Wenn Sie beides benötigen, ändern Sie die Listen-Option in der Pool-Definition und in der Nginx-Konfiguration.
Remi Collet
2
Fantastisch, danke. Für alle anderen im selben Boot tut dies der Trick: service php-fpm stop, service php70-php-fpm start. Sie finden die Dateien php.ini und php-fpm conf /etc/opt/remi/php70/nicht nur in, sondern in etc.
Codemonkey
@RemiCollet Ich habe PHP 5.6 mit Remo Repos installiert. Wissen Sie, wie ich 5.6 auf 7 upgraden kann? Ich brauche nur eine Version. Thansk.
PHPst
6

Wenn Sie PHP 7 über das remi-php70Repository installieren möchten (seitdem PHP 7.0.0 verfügbar ist), können Sie Pakete mit denselben Paketnamen installieren, die Sie kennen und lieben. Beispiel:

  • php
  • php-cli
  • php-common
  • php-devel
  • php-fpm
  • php-gd
  • php-mbstring
  • php-pdo
  • etc.
Geerlingguy
quelle
Wie? php54 scheint der Standard mit remi-release-7.rpm zu sein?
Giorgio79
1
@ giorgio79 , wenn Sie aktivieren remi-php70.repound deaktivieren Sie alle andere PHP - Versionen von dem remi repos, laufen yum install php-fpmstandardmäßig verwendet , 7.0, aber das funktioniert nicht mit 7.1 (oder anderen zukünftigen Versionen)
Sofly
2

PHP70 scheint auch alles unter / etc / opt / remi / php70 / zu installieren:

du musst laufen:

source /opt/remi/php70/enable
user1455180
quelle
3
Sie sollten näher darauf eingehen. Warum müssen Sie das ausführen? Was tut es? Wie kann das OP das Apache-Modul finden?
Marki
Wenn PHP 7 immer noch nicht funktioniert, müssen Sie es ausführen, damit es funktioniert. Es wird eine Zeile in Apache hinzugefügt, um das php70-Modul zu laden.
user1455180
Dies funktioniert nicht mehr, wenn Sie sich abmelden und wieder anmelden. Dies ist das Problem, vor dem ich stehe.
Edward
Was zum Teufel hat mich das bei meiner 7.4 Installation verbrannt! Die PATH-Einträge wurden nach Bedarf hinzugefügt und funktionieren. Meine Güte, keine Ahnung, warum es so gestaltet wurde!
Emmdee
1

Wenn Sie eine ältere PHP-Version (wie 5.6) installiert haben, vergessen Sie nicht, Folgendes zu tun:

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

Starten Sie Apache neu und das sollte es tun.

Bozidar Sikanjic
quelle
1
Seltsamerweise hat diese Lösung es für mich nach ein paar Stunden des Murmelns behoben.
Giorgio79
1

Für alle anderen, die versuchen, ein Upgrade von PHP 5.6 auf 7.0.1 unter Centos 6.7 durchzuführen:

Ich habe es geschafft, das heute zum Laufen zu bringen, fast so, wie es @mbalparda gelistet hat, aber ohne Epel-Release (obwohl einige Epel-Repos aktiviert und in Gebrauch sind).

Ich hatte PHP 5.6 von IUS ( https://ius.io/GettingStarted/ ) Repo ( https://centos6.iuscommunity.org/ius-release.rpm ) installiert, also entfernte ich sie durch:

# 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
...

und so

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

gefolgt von den aufgelisteten Befehlen:

# 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
quelle
Das Mischen von php70- * und php56u- * Paket im selben Befehl scheint sehr seltsam. Wahrscheinlich unerwünscht. Und wenn Sie eine einzelne Version wünschen, ist die Verwendung der SCL nicht die einfachste Lösung. Am einfachsten ist es, remi-php70-Repository und "yum update" zu aktivieren. Denken Sie daran, den neuen Assistenten auszuprobieren
Remi Collet
@RemiCollet danke für den Hinweis auf den Tippfehler, bearbeitete den Beitrag, um ihn wiederzugeben - ich wollte php70-php-mysqlnd usw. schreiben, aber kopiere-füge / bearbeite ihn falsch ... Auch der Assistent scheint hervorragend zu sein. Vielen Dank!
Site80443