it-swarm.com.de

Wie aktualisiere ich mit yum auf die neueste Version von PHP in CentOS)?

Ich habe einige Blog-Beiträge dazu gefunden, aber es fehlen Beschreibungen für mögliche Nebenwirkungen.

Ich könnte wirklich einige detaillierte Schritte gebrauchen:

  1. So fügen Sie ein Repo hinzu, das PHP 5.4 in yum
  2. Kann dies nahtlos die aktuelle Version von PHP in CentOS) ersetzen?
  3. Wie kann ich zum offiziellen Repo zurückkehren, wenn es PHP 5.4? (Aktuelles 5.3.3 in meinem System) unterstützt?
  4. Wird es ein Potenzial geben, PHP Module, die ich derzeit verwende, zu brechen?

Anmerkung

Personen haben erfolgreich ein Upgrade mit derselben Methode auf neuere Versionen durchgeführt und schlagen vor, bestimmte Versionen in der Frage zu entfernen. Es ist zwar gut, Versionen festzulegen, falls neuere Versionen tatsächlich etwas kaputt machen, aber ich möchte die neueste von der Community vorgeschlagene erfolgreiche Version als Notiz behalten.

Sie können dies jederzeit aktualisieren, wenn Sie ein erfolgreiches Upgrade auf andere Versionen durchgeführt haben.

  • PHP-Versionen: 5.4, 5.5, 5.6
  • CentOS-Version: 5, 6
22
Vicary

Ich habe die Anweisungen von Installieren von Apache/PHP 5.4.10 unter Fedora 17/16, CentOS/RHEL 6.3/5.8 mit einer geringfügigen Änderung befolgt. Es dauerte vielleicht 10 Minuten. Meine genauen Befehle sind unten gezeigt. Beachten Sie, dass der erste Befehl von dem im Artikel gezeigten geändert werden musste. Die Änderung war von epel-release-6-7.noarch.rpm bis epel-release-6-8.noarch.rpm.

  1. Wie füge ich ein Repo hinzu, das PHP 5.4 in yum liefert?

    yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
    yum install http://rpms.remirepo.net/enterprise/remi-release-6.rpm
    
  2. Kann dies nahtlos die aktuelle Version von PHP in CentOS?) Ersetzen? Für mich haben die folgenden Befehle funktioniert und keiner meiner vorhandenen = PHP Webseiten sind kaputt gegangen. Ihr Kilometerstand kann variieren.

    yum --enablerepo=remi install httpd php php-common
    yum --enablerepo=remi install php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-Gd php-mbstring php-mcrypt php-xml
    service httpd restart
    
  3. Wie kann ich zum offiziellen Repo zurückkehren, wenn es PHP5.4 unterstützt? Ich habe die Befehle zum Entfernen und erneuten Installieren nicht getestet PHP aus CentOS-Repositorys, aber diese sollten funktionieren.

    # Remove the Remi packages. Note the reversed command order
    yum remove php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-Gd php-mbstring php-mcrypt php-xml
    yum  remove httpd php php-common
    # Install the CentOS packages. 
    yum install httpd php php-common
    yum install php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-Gd php-mbstring php-mcrypt php-xml
    
  4. Gibt es ein Potenzial zum Brechen von PHP Modulen, die ich derzeit verwende? Ja. Verwenden einer neueren Version von CentOS (6.2?) Mit Zend, das mit dem Zend-Installationsprogramm installiert wurde, hat das obige Upgrade Zend beschädigt.

Alle oben genannten Befehle wurden als root ausgeführt. Es wird empfohlen, sich als nicht privilegierter Benutzer anzumelden und Sudo zu verwenden. (Dies ist eine Entwicklung VM mit einem aktuellen Snapshot ...)

Aktivieren Sie das Remi-Repository auch NICHT standardmäßig - in der Vergangenheit bin ich schlau geworden und habe es standardmäßig aktiviert, und die Dinge sind kaputt gegangen, auch mit Repository-Priorität.

19
Jeff Benshetler

Eine Verbesserung gegenüber der anderen Webtatic-Antwort:

1. Verwenden des Handbuchs unter http://www.webtatic.com/packages/php54/ :

rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm

2. Sie müssen zuerst sehen, welche vorhandenen installierten Pakete ersetzt werden müssen. Sie können dies tun, indem Sie yum Shell verwenden, um das Entfernen von php-common und das Installieren von php54w-common in einer Transaktion zu kombinieren (damit gemeinsam genutzte Abhängigkeiten nicht entfernt werden).

yum Shell
> remove php-common
> install php54w-common
> run
…
Is this ok [y/N]: n

Sagen Sie nicht "y" zu den Ergebnissen, sondern beachten Sie alle unter "Entfernen für Abhängigkeiten" genannten Pakete, z.

Removing for dependencies:
 php
 php-cli
 php-pear
 php-pecl-memcache
 php-mysql

Wenn diese Liste andere Pakete als PHP * enthält, können Sie nicht nahtlos zu Webtatic PHP 5.4) wechseln, sondern müssen nach Alternativen suchen. Webtatic bietet Ersatzpakete für alle Basis-PHP-Pakete an (siehe Die Pakete sind auf der Seite aufgeführt, auf die in 1. zur Bestätigung verwiesen wird. Es sollten also keine Probleme auftreten, es sei denn, Sie verwenden andere Repositorys von Drittanbietern, auf denen Pakete installiert sind, abhängig von der jeweiligen installierten PHP-Version.

Für den Rest der Installation (immer noch in yum Shell) entfernen Sie einfach diese Pakete und installieren ihre php54w- * Gegenstücke:

> remove php-common php php-cli php-pear php-pecl-memcache php-mysql
> install php54w-common php54w php54w-cli php54w-pear php54w-pecl-memcache php54w-mysql
> run
…
Is this ok [y/N]: y

Sie sollten dann nur die Pakete sehen, die Sie zum Entfernen und Installieren in der Liste festgelegt haben, und Sie können die Installation zum Umschalten bestätigen. Alle Dienste, die derzeit mit geladenem PHP ausgeführt werden, müssen neu gestartet werden, z. B. httpd oder php-fpm.

Da dies "nahtlos" ist, sollten alle Softwareänderungen, die auftreten, während Benutzer auf die Website zugreifen können, die Konsequenzen vollständig verstanden haben. Freigegebene Bibliotheken, die entfernt und hinzugefügt werden, wenn ein Prozess sie noch nicht geladen hat, können möglicherweise geladen werden, wenn die gemeinsam genutzte Bibliothek nicht vorhanden ist. Es ist besser, solche Software-Upgrades offline durchzuführen und vorzugsweise zuerst auf einem Nicht-Produktionscomputer zu testen, um zu überprüfen, ob der Prozess wie erwartet funktioniert.

3 . Um zu einem hypothetischen CentOS-Basis-PHP54-Paket zu wechseln (CentOS 5 verwendet das Php53-Präfix), führen Sie einfach die obigen Schritte aus, indem Sie die PHP-Entfernung durch die PHP54W-Entfernung und die PHP54W-Installation durch die PHP54-Installation ersetzen, z.

yum Shell
> remove php54w-common
> install php54-common
> run
…
Is this ok [y/N]: n
…
> remove php54w-common php54w php54w-cli php54w-pear php54w-pecl-memcache php54w-mysql
> install php54-common php54 php54-cli php54-pear php54-pecl-memcache php54-mysql
> run
Is this ok [y/N]: y

Für den Wechsel zur hypothetischen Basis php54 wird es jedoch wahrscheinlich keine Alternativen für einige Pakete geben (z. B. gab es in CentOS 5 keine Erweiterung php53-pecl-memcache), und Webtatic verfügt über Pakete, die in CentOS base nicht verfügbar sind (z. B. php54w) -pecl-zendopcache). Wenn sie fehlen, haben Sie normalerweise keine andere Möglichkeit, als pecl direkt zu installieren.

4. Jedes PHP Upgrade kann zu Fehlern führen, und Websites sollten erneut getestet werden. Dies ist nicht spezifisch für Webtatic, sondern die allgemeine Idee, dass neue Funktionen neue Fehler verursachen.

Im Gegensatz zu Remis Repository in der akzeptierten Antwort verwendet das Webtatic EL6-Repository niemals dieselben Paketnamen wie CentOS-Basisrepositorys, überschreibt also nicht die Installation/Aktualisierung von Paketen, zu denen Sie nicht wechseln möchten, und ist daher standardmäßig aktiviert.

Haftungsausschluss: Ich bin der Eigentümer/Betreuer von Webtatic

9
Andy

sie finden PHP 5.4.9 hier für die yum Installation:

http://www.webtatic.com/packages/php54/

sie können ein "rpm -qa | grep php" ausführen, um alle Ihre aktuellen PHP-Pakete anzuzeigen, und ein "rpm -e", um es zu entfernen. Ich kenne Ihre aktuellen Module nicht, aber es lohnt sich, sie vor dem Upgrade zu testen.

0
TheDayIsDone