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の初心者なので、どうすればよいかわかりません。
更新:どうやらRHEL 5.6 includes PHP 5. なので、これはネイティブに表示されます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
)。
これに対する答えは2011年1月13日の時点で変更されました。RedHatはバージョン5.6をリリースし、これにはPHPバージョン5.3が個別のパッケージとして含まれています(php53
)。
古いPHPを削除してから、PHP 5.3を個別にインストールする必要があります。これは、IUSリポジトリのパッケージに似ていますが、現在は公式です。
詳細については、 Red Hatリリースノート を参照してください。
これはRed Hatからリリースされたばかりであり、CentOSで利用できるようになるまでに少し時間がかかることに注意してください。ただし、RHEL 5.6の更新は比較的マイナーに見えるので、長すぎるとは思わないでください。
新しいパッケージをインストールする前に、古いバージョンのパッケージを削除してみてください。
yum消去php-cli php-comon
次に、yumのインストールを試してください。
警告:コミットする前にyumが加えたい変更のリストを見て、他の重要なパッケージを削除していないことを確認してください。
あなたは正しいです、あなたは最初にデフォルトのphpパッケージをアンインストールする必要があります。次に進む前に、他のパッケージがベースバージョンに特定の依存関係を持っている可能性があることに注意してください。おそらく、あなたは大丈夫ですが、後で他の懸念事項に対処する必要があるかもしれないということを警告するだけです。
あなたはこれを行うことができるはずです
yum erase php-common php-cli
あなたが続く
yum install php53
CentOS 6が利用可能になり、PHP 5.3:
php-cli
、php-common
およびphp-dev
いくつかの依存関係とともに、他には何もありません(MySQLなどは変更されていません。)phpinfo
は、実行していることを確認しますPHP =バージョン5.3.3。「yum update php」で競合エラーが発生するのと同じ問題がありました。
「yum update」(すべてを更新)を実行しても、うまくいきました。試してみてください。
また、「yum erase php」または「yum remove php」を実行すると、PHPに依存するすべてのパッケージを削除する ...になる可能性があることに注意してください。それがインストールされています。私が間違っていなければ、それらを再インストールする必要があり、これは苦痛になる可能性があります。
PHP 5.3.10をCentOS 5.3にインストールしました。 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
[〜#〜]完了[〜#〜]
乾杯;マーク