解決策 1:
Fedora 17/16、CentOS/RHEL 6.3/5.8 に Apache/PHP 5.4.10 をインストールするの指示に従い、少し変更を加えました。たぶん10分かかりました。私の正確なコマンドを以下に示します。最初のコマンドは、記事に示されているものから変更する必要があることに注意してください。 epel-release-6-7.noarch.rpm
からの変更 epel-release-6-8.noarch.rpm
まで .
PHP 5.4 を提供するリポジトリを yum に追加する方法
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
CentOS の現在の PHP バージョンをシームレスに置き換えることができますか? 私にとっては、次のコマンドが機能し、既存の PHP Web ページが壊れることはありませんでした。走行距離は異なる場合があります。
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
PHP5.4 をサポートしている場合、どうすれば公式リポジトリに戻すことができますか? CentOS リポジトリから PHP を削除して再インストールするコマンドをテストしていませんが、動作するはずです。
# 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
現在使用している [sic] PHP モジュールが壊れる可能性はありますか? はい。 Zend インストーラーを使用して Zend をインストールした CentOS (6.2?) の最新バージョンを使用すると、上記のアップグレードによって Zend が壊れました。
上記のコマンドはすべて root
として実行されました .ベスト プラクティスは、非特権ユーザーとしてログインし、sudo
を使用することです . (これは現在のスナップショットを持つ開発用 VM です...)
また、デフォルトで Remi リポジトリを有効にしないでください。過去に、私は巧妙になり、デフォルトで有効にしましたが、リポジトリの優先度があったとしても、問題が発生しました。
解決策 2:
他の Webtatic の回答に対する改善:
1. http://www.webtatic.com/packages/php54/ のガイドを使用する:
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
2.最初に、既存のインストール済みパッケージを置き換える必要があるものを確認する必要があります。これを行うには、yum シェルを使用して、php-common の削除と php54w-common のインストールを 1 つのトランザクションで組み合わせます (共有依存関係は削除されません)
yum shell
> remove php-common
> install php54w-common
> run
…
Is this ok [y/N]: n
結果に対して「y」とは言わないでください。ただし、「依存関係の削除」に記載されているすべてのパッケージに注意してください。例:
Removing for dependencies:
php
php-cli
php-pear
php-pecl-memcache
php-mysql
このリストに php* 以外のパッケージがある場合、Webtatic PHP 5.4 にシームレスに切り替えることはできず、代替手段を調査する必要があります。 Webtatic には、すべての基本 php パッケージの代替パッケージがあります (確認のために、1. にリンクされているページにリストされているパッケージを参照してください)。そのため、特定の php バージョンに依存するパッケージがインストールされている他のサード パーティのリポジトリを使用しない限り、問題はありません。インストールされています。
インストールの残りの部分 (まだ yum シェル内) では、これらのパッケージを削除して、対応する php54w-* をインストールするだけです:
> 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
削除してインストールするように設定したパッケージのみがリストに表示され、インストールを確認して切り替えることができます。 httpd や php-fpm など、php をロードして現在実行中のサービスはすべて再起動する必要があります。
これが「シームレス」であるため、ユーザーが Web サイトにアクセスできる間に発生するソフトウェアの変更は、その結果を完全に理解する必要があります。プロセスがまだロードされていないときに共有ライブラリが削除および追加されると、共有ライブラリが存在しないときにロードされる可能性があります。このようなソフトウェア アップグレードはオフラインで行い、プロセスが期待どおりに機能することを確認するために、最初に非運用マシンでテストすることをお勧めします。
3.架空の CentOS ベース php54 パッケージ (CentOS 5 は php53 プレフィックスを使用) に切り替えるには、上記の手順を実行して、php の削除を php54w の削除に置き換え、php54w のインストールを php54 のインストールに置き換えます。
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
ただし、仮想ベース php54 への切り替えに関しては、一部のパッケージには代替手段がない可能性が高く (たとえば、CentOS 5 には php53-pecl-memcache 拡張機能がありませんでした)、Webtatic には CentOS ベースで利用できないパッケージがあります (たとえば、php54w -pecl-zendopcache)。それらが見つからない場合、通常、pecl を直接使用してインストールする以外に選択肢はありません。
4 . PHP をアップグレードするとバグが発生する可能性があるため、Web サイトを再テストする必要があります。これは Webtatic に固有のものではなく、新しい機能によって新しいバグが発生するという一般的な考え方です。
受け入れられた回答の Remi のリポジトリとは異なり、Webtatic EL6 リポジトリは CentOS ベース リポジトリと同じパッケージ名を使用することはないため、切り替える予定のないパッケージのインストール/アップグレードを上書きすることはなく、デフォルトで有効になっています。 /P>
免責事項:私は Webtatic の所有者/管理者です