CentOSにPHP 5.3をインストールするにはどうすればよいですか?


9

CentOSサーバーにPHP 5.3をインストールする必要があります。実行するyum install phpと、ベースリポジトリは5.1.6をインストールしますが、これはインストールする必要があるアプリケーションには古すぎます。したがって、私はIUSからの公式の指示に従って、IUSリポジトリを使用しようとしています。

root@linuxbox ~]# wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1-2.ius.el5.noarch.rpm

root@linuxbox ~]# wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/epel-release-1-1.ius.el5.noarch.rpm

root@linuxbox ~]# rpm -Uvh ius-release*.rpm epel-release*.rpm

OK。今yum install php53、私は必要なすべてのことを行うなどしています...しかし、私はこのエラーを受け取ります:

Running rpm_check_debug
Running Transaction Test
Finished Transaction Test


Transaction Check Error:
  file /usr/bin/php from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
  file /usr/bin/php-cgi from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
  file /usr/share/man/man1/php.1.gz from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
  file /etc/php.ini from install of php53u-common-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-common-5.1.6-27.el5_5.3.x86_64

Error Summary
-------------

これを解決する方法はわかりません。基本パッケージを削除する必要があると思います。しかし、Linuxの初心者なので、どうすればいいのかわかりません。

回答:


8

更新:どうやらRHEL 5.6にはPHP 5.3が含まれているため、これはCentOSにネイティブですぐに表示されるようになります。

file /usr/bin/php from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /usr/bin/php-cgi from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /usr/share/man/man1/php.1.gz from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /etc/php.ini from install of php53u-common-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-common-5.1.6-27.el5_5.3.x86_64

ここでの問題は、インストールするパッケージの名前が異なる(phpではなくphp53)ことですが、同じファイルをインストールしようとするため、競合が発生します。これは必ずしもパッケージをまとめるのに最適な方法ではありませんが、利用できるより良いパッケージがあるかどうかはわかりませんので、無視します。

現在インストールされているパッケージを削除するには:

# yum remove php-cli php-common php

したがって、一般的にyum remove <list of packages>は、パッケージが削除されます。そしてもちろん、yum list installedインストールされているパッケージ(またはrpm -qa)のリストを表示します。


削除は依存関係も削除するので、hm yeah removeはeraseよりも良いかもしれません。最初に削除してみてください。失敗した場合は、消去してください。
Phil Hollenback、2011年

2
removeCentOSと最近のFedoraリリースの両方eraseyummanページによると、これらは同義語です。
larsk、2011年

ありがとう!phpを削除する必要はありませんでしたが、リストの最初の2つは機能しました。PHP 5.3をインストールするには、php53をインストールするだけで十分ですか?記載されているパッケージはたくさんありますが、それだけが重要だと思いますか?
fivelitresofsoda 2011

間違いなく同義語。yumcommands.py疑わしい場合は調べてください。:)
mattdm

多分。アプリケーションが追加のモジュール(たとえば、xmlサポート、ldapサポート、データベースなど)を必要とするかどうかは、あなただけが知っています。
larsk、2011年

4

これに対する答えは、2011年1月13日の時点で変更されました。RedHatはバージョン5.6をリリースしました。これには、PHPバージョン5.3が別個のパッケージとして含まれています(php53)。

古いPHPを削除してから、PHP 5.3を個別にインストールする必要があります。これは、IUSリポジトリからのパッケージと似ていますが、公式になりました。

詳細については、Red Hatリリースノートを参照してください。

これはRed Hatからリリースされたばかりであり、CentOSで使用できるようになるまでに少し時間がかかります。ただし、RHEL 5.6の更新は比較的マイナーなように見えるので、長すぎるとは思わないでください。


うん。そして4ヶ月後。それはまだcentos reposにはありません。:(
スタン


2011年4月から利用可能です。参照のCentOS 5.6リリースノート
ステファンLasiewski

2

新しいパッケージをインストールする前に、古いバージョンのパッケージを削除してみてください。

yum消去php-cli php-comon

次に、yumのインストールを試してください。

警告:コミットする前にyumが加えたい変更のリストを見て、他の重要なパッケージを削除していないことを確認してください。


2

あなたは正しいです、あなたは最初にデフォルトのphpパッケージをアンインストールする必要があります。先に進む前に、他のパッケージがベースバージョンに特定の依存関係を持っている可能性があることに注意してください。おそらく、あなたは大丈夫ですが、後で他の懸念事項に対処する必要があるかもしれないということを警告するだけです。

あなたはこれを行うことができるはずです

yum erase php-common php-cli

あなたが続く

yum install php53


1
  1. 私はを削除する必要php-cliphp-commonありphp-dev、いくつかの依存関係とともに他には何もありませんでした(MySQLなどは変更されていません)。
  2. 同じパッケージを依存関係のあるPHP 5.3フレーバーにインストールしましたが、すべてが稼働しています。phpinfoPHPバージョン5.3.3を実行していることを確認します。
  3. Apacheを再起動し、Joomlaを実行しているサイトが正常に動作しました。

0

「yum update php」で競合エラーが発生するのと同じ問題がありました。

「yum update」(すべてを更新する)を実行しても、うまくいきました。試してみてください。

また、「yum erase php」または「yum remove php」を実行すると、PHPに依存するすべてのパッケージ削除される可能性があることに注意してください。私が間違っていなければ、それらを再インストールする必要があり、これは苦痛になる可能性があります。


2
はい、まさにその問題があります。PHPをアップグレードするために、yumはDrupalを削除したいと考えています。これは実際には依存関係ではありません。PHPが動作する必要がありますが、PHPのソースでありコンパイルされたプログラムではないため、PHPのバージョンはまったく問題になりません。PHP5.2をアンインストールしてDrupalをそのままにする方法はありますか?
Bart

0

私は多くの研究、つまりCentOS 5.3にPHP 5.3.10をインストールした後、この問題を解決しました。Atomicorp repoを含むいくつかのリポジトリを使用しようとしましたが、これは面倒を壊しました

最後に、以下のステップがうまくいくと思いました。

ベギン

REMIおよびEPELリポジトリをダウンロードして有効にする

cd ~
wget http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

vi /etc/yum.repos.d/remi.repo

「[remi]」という見出しの下の「enabled = 0」を「enabled = 1」に変更します

php-sqlite2を削除しないと、依存関係エラーが発生します

yum remove php-sqlite2

この場合、PHPを最新バージョン5.3.10に更新します。

yum update php

php.iniをバックアップし、新しくインストールされたバージョンを有効にします

mv /etc/php.ini /etc/php.ini.old
mv /etc/php.ini.rpmnew /etc/php.ini

my.cnfをバックアップし、新しくインストールされたバージョンを有効にする

mv /etc/my.cnf /etc/my.cnf.old
mv /etc/my.cnf.rpmnew /etc/my.cnf

最新バージョンのioncube拡張機能をインストールする

wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar -xvf ioncube_loaders_lin_x86-64.tar.gz
mv ioncube/* /usr/lib64/php/modules/

echo 'zend_extension=/usr/lib64/php/modules/ioncube_loader_lin_5.3.so' > /etc/php.d/ioncube-loader.ini

また、php拡張機能をインストールする必要がある場合もあります。この場合、SOAP拡張機能もインストールする必要がありました。

yum install php-soap

サービスを再起動して変更を有効にします

service mysqld restart
service httpd restart

完了

乾杯; マーク

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.