PHP 5.3'ü CentOS'a nasıl kurarım?


9

CentOS sunucuma PHP 5.3 yüklemeliyim. Bunu yaparsam yum install php, temel depo yüklemem gereken uygulamalar için çok eski olan 5.1.6'yı yükler. Bu yüzden IUS'nin resmi talimatlarını izleyerek IUS deposunu kullanmaya çalışıyorum :

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

TAMAM. Şimdi yum install php53ihtiyacım olan her şey için vs. yapıyorum ... ama bu hatayı alıyorum:

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
-------------

Bunu nasıl çözeceğime dair hiçbir fikrim yok. Sanırım temel paketleri silmek zorundayım. Ancak, Linux'ta yeni biri olarak, bunu nasıl yapacağımı bilmiyorum.

Yanıtlar:


8

Güncelleme : Görünüşe göre RHEL 5.6 PHP 5.3 içeriyor , bu yüzden yakında CentOS için yerel olarak görünecek.

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

Buradaki sorun, yüklediğiniz paketlerin farklı bir ada sahip olması (php yerine php53), ancak aynı dosyaları yüklemeye çalışıyorlar ... dolayısıyla çakışmalar. Bu, paketleri bir araya getirmenin en iyi yolu olmayabilir, ancak daha iyi paketler olup olmadığını bilmiyorum, bu yüzden bunu görmezden geleceğiz.

Şu anda yüklü olan paketlerinizi kaldırmak için:

# yum remove php-cli php-common php

Yani, genel olarak, yum remove <list of packages>paketleri kaldıracaktır. Ve elbette, yum list installedkurulu paketlerin (veya rpm -qa) bir listesini görmek için .


hm evet kaldırmak silmek silmek daha iyi olabilir, çünkü silmek de bağımlılıkları kaldırır. Önce kaldırmayı deneyin, bu başarısız olursa silmeyi deneyin.
Phil Hollenback

2
removeve eraseuygun synonymns olan yumhem CentOS ve son Fedora bültenleri altında adam sayfası.
larsks

Teşekkürler! Ben php kaldırmak zorunda değildi, ancak bu listede ilk iki rağmen çalıştı. Php 5.3 yüklemek için sadece yum php53 doğru yüklemek gerekir? Listelenen bir sürü paket var ama bence bu tek önemli değil mi?
fivelitresofsoda

Kesinlikle eşanlamlılar. yumcommands.pyŞüpheniz varsa bakın . :)
mattdm

Muhtemelen. Uygulamanızın ek modüllerden herhangi birini gerektirip gerektirmediğini yalnızca siz bilirsiniz (ör. Xml desteği, ldap desteği, veritabanları vb.).
larsks

4

Bunun cevabı 13 Ocak 2011 itibariyle değişti. Red Hat 5.6 sürümünü yayınladı ve buna PHP 5.3 sürümünü ayrı bir paket olarak ekledi ( php53).

Eski PHP'yi kaldırmanız ve sonra PHP 5.3'ü ayrı olarak yüklemeniz gerekir. Bu, IUS deposundaki paketinize benziyor, ancak şimdi resmi.

Daha fazla bilgi için Red Hat sürüm notlarına bakın .

Bunun Red Hat'tan çıktığını ve CentOS'ta mevcut olmadan önce biraz gecikme olacağını unutmayın. RHEL 5.6 güncellemesi nispeten küçük görünüyor, bu yüzden çok uzun olmasını beklememeliyim.


Evet. ve 4 ay sonra. hala centos depolarında değil. :(
Stann


Nisan 2011 itibariyle mevcuttur. Bkz. CentOS 5.6 Sürüm Notları
Stefan Lasiewski

2

Yenilerini yüklemeden önce paketlerin eski sürümlerini kaldırmayı deneyin:

yum php-cli silmek php-comon

sonra yum yüklemenizi deneyin.

Uyarı : diğer önemli paketleri kaldırmamaya dikkat etmek için yum işlemeden önce yapmak istediği değişiklikler listesine bakın.


2

Doğru, önce varsayılan php paketlerini kaldırmanız gerekir. Devam etmeden önce, diğer paketlerin temel sürümlere belirli bağımlılıkları olabileceğini unutmayın. Şansınız, iyi olacaksınız, ancak daha sonra diğer endişeleri ele almanız gerekebileceği konusunda uyarılmalıdır.

Bunu yaparak bunu yapabilmelisiniz

yum erase php-common php-cli

Ardından

yum install php53


1
  1. Ben kaldırmak zorunda php-cli, php-commonve php-devbaşka bazı bağımlılıkları ama hiçbir şey ile birlikte (vb MySQL, el değmemiş idi.)
  2. Aynı paketleri bağımlılıklarla PHP 5.3 lezzetine kurdum ve şimdi her şey çalışıyor ve çalışıyor. phpinfoPHP 5.3.3 sürümünü çalıştırdığımı onaylar.
  3. Apache'yi yeniden başlattım ve Joomla'yı çalıştıran site iyi çalışıyor.

0

Ben "yum güncelleme php" bana çatışma hataları verecek aynı sorunu vardı.

"Yum güncelleme" (her şeyi güncelleme) çalışan olsa benim için çalıştı. Bir deneyin.

Ayrıca, "yum erase php" veya "yum php remove" komutunu çalıştırırsanız , PHP'ye bağlı tüm paketleri kaldırabileceğini unutmayın. Eğer yanılmıyorsam, acı çekebilecek olanları tekrar kurman gerekirdi.


2
Evet, tam olarak bu problemim var. PHP'yi yükseltmek için yum, gerçekten bir bağımlılık olmayan Drupal'ı silmek istiyor: PHP'nin çalışması gerekiyor, ancak PHP'nin kaynağı olduğu için derlenmiş bir program değil, PHP'nin hangi sürümünün umurunda değil. PHP5.2'yi kaldırmanın ve Drupal'ı yalnız bırakmasını sağlayan herhangi bir yol var mı?
Bart

0

CentOS 5.3 üzerinde PHP 5.3.10 yükleyerek çok araştırma yaptıktan sonra bu sorunu çözdüm. Atomicorp repo da dahil olmak üzere birkaç depo kullanmayı denemiştim , ama bu plesk kırdı

Nihayet aşağıdaki adımları bir tedavi işe yaradığını buldum, paylaştığımı düşündüm.

BAŞLA

REMI ve EPEL depolarını indirin ve etkinleştirin

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]" başlığı altında "etkin = 0" değerini "etkin = 1" olarak değiştirin

Php-sqlite2'yi kaldırmalısınız yoksa bağımlılık hatası alırsınız

yum remove php-sqlite2

Bu durumda PHP'yi en son 5.3.10 sürümüne güncelleyin

yum update php

Php.ini dosyasını yedekleyin ve yeni yüklenen sürümü etkinleştirin

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

My.cnf dosyasını yedekleyin ve yeni yüklenen sürümü etkinleştirin

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

Ioncube eklentisinin en son sürümünü yükle

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

Ayrıca php uzantıları yüklemeniz gerekebilir, bu durumda SOAP uzantısını da yüklemem gerekiyordu:

yum install php-soap

Değişikliklerin etkili olması için hizmetleri yeniden başlatın

service mysqld restart
service httpd restart

YAPILAN

Alkış; işaret

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.