Lösung 1:
Ich habe die Anweisungen von Install Apache/PHP 5.4.10 on Fedora 17/16, CentOS/RHEL 6.3/5.8 mit einer leichten Modifikation befolgt. Es hat vielleicht 10min gedauert. Meine genauen Befehle sind unten aufgeführt. Beachten Sie, dass der erste Befehl gegenüber 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
.
-
Wie füge ich ein Repo hinzu, das PHP 5.4 in yum bereitstellt?
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
-
Kann dies die aktuelle PHP-Version in CentOS nahtlos ersetzen? Bei mir funktionierten die folgenden Befehle und keine meiner vorhandenen PHP-Webseiten brach zusammen. 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
-
Wie kann ich zurück zum offiziellen Repo wechseln, wenn es PHP5.4 unterstützt? Ich habe die Befehle zum Entfernen und Neuinstallieren von PHP aus CentOS-Repositories nicht getestet, 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
-
Besteht die Möglichkeit, PHP-Module zu beschädigen, die ich [sic] derzeit verwende? Ja. Bei Verwendung einer aktuellen Version von CentOS (6.2?) mit Zend, das mit dem Zend-Installationsprogramm installiert wurde, hat das obige Upgrade Zend beschädigt.
Alle obigen Befehle wurden als root
ausgeführt . Am besten melden Sie sich als nicht privilegierter Benutzer an und verwenden sudo
. (Dies ist eine Entwicklungs-VM mit einem aktuellen Snapshot...)
Aktivieren Sie das Remi-Repository NICHT standardmäßig - in der Vergangenheit war ich schlau und aktivierte es standardmäßig und die Dinge brachen zusammen, selbst mit Repository-Priorität.
Lösung 2:
Eine Verbesserung gegenüber der anderen Webtatic-Antwort:
1 . Verwenden Sie die Anleitung auf 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 die yum-Shell verwenden, um das Entfernen von php-common und das Installieren von php54w-common in einer Transaktion zu kombinieren (damit gemeinsame 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 notieren Sie sich alle Pakete, die in "Entfernen wegen Abhängigkeiten" erwähnt werden, z. B.
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 hat Ersatzpakete für alle Basis-PHP-Pakete (siehe die Pakete, die auf der in 1. verlinkten Seite zur Bestätigung aufgeführt sind), daher sollte es keine Probleme geben, es sei denn, Sie verwenden andere Repositories von Drittanbietern, die abhängig von der jeweiligen PHP-Version Pakete installiert haben installiert.
Für den Rest der Installation (immer noch in der 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 eingestellt 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, zum Beispiel httpd oder php-fpm.
Da dies „nahtlos“ ist, sollten alle Softwareänderungen, die vorgenommen werden, während Benutzer auf die Website zugreifen können, die Folgen vollständig verstanden haben. Gemeinsam genutzte Bibliotheken, die entfernt und hinzugefügt werden, wenn ein Prozess sie noch nicht geladen hat, könnten möglicherweise geladen werden, während 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 sicherzustellen, dass der Prozess wie erwartet funktioniert.
3 . Um zu einem hypothetischen CentOS-Basis-php54-Paket zu wechseln (CentOS 5 verwendete das php53-Präfix), führen Sie einfach die obigen Schritte aus und ersetzen die php-Entfernung durch die php54w-Entfernung und die php54w-Installation durch die php54-Installation, z. B.
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
Was den Wechsel zur hypothetischen Basis php54 angeht, wird es für einige Pakete wahrscheinlich keine Alternativen geben (z. B. gab es keine php53-pecl-memcache-Erweiterung in CentOS 5) und Webtatic hat Pakete, die in der CentOS-Basis nicht verfügbar sind (z -pecl-zendopcache). Wenn sie fehlen, dann haben Sie normalerweise keine andere Möglichkeit, als pecl direkt zu verwenden, um sie zu installieren.
4 . Jedes PHP-Upgrade kann Fehler einfü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-Basis-Repositorys, überschreibt also nicht die Installation/das Upgrade von Paketen, zu denen Sie nicht wechseln möchten, und ist daher standardmäßig aktiviert.
Haftungsausschluss:Ich bin der Eigentümer/Betreuer von Webtatic