PHP 5.4'ten 5.3'e düşürme


18

Son zamanlarda PHP'yi 5.4'e yükselttim, ancak APC onunla çalışmıyor çünkü bana başarısız oluyor gibi görünüyor, ancak bu bana 5.3'e düşürmekten başka seçenek vermedi, bunu nasıl yapabilirim?

İdam apt-get remove php5ve apt-get purge php5sonra-olsun apt sonra yürütülen 5,4 repo kaldırıldı apt-get install php5, bunun 5.3 yüklemeden söylüyor ve ben yeniden php-fastcgive php5-fpmben çalıştırdığınızda ama php -vo 5.4 söylüyor.

5.4'ten 5.3'e nasıl düşebilirim?

Sunucum Ubuntu 11.04 çalıştırıyor.

Yanıtlar:


11

PHP 5.4'ten 5.3'e yükseltme

Ubuntu'da sürüm düşürme işlemi gerçekten karışıklıktır. İşte yararlı bulabileceğiniz komut dosyası ( PHP 5.4'ü kaldırır ve PHP 5.3'ü yükler ):

sudo apt-get remove --purge `dpkg -l | grep php | grep -w 5.4 | awk '{print $2}' | xargs`
sudo apt-get install php5=5.3.10-1ubuntu3.4 php5-cli=5.3.10-1ubuntu3.4 php5-common=5.3.10-1ubuntu3.4 libapache2-mod-php5=5.3.10-1ubuntu3.4
sudo apt-get install php5=5.3.10-1ubuntu3.4 php5-cli=5.3.10-1ubuntu3.4 php5-common=5.3.10-1ubuntu3.4 libapache2-mod-php5=5.3.10-1ubuntu3.4
sudo apt-get install php-pear=5.3.10-1ubuntu3.4 php5-curl=5.3.10-1ubuntu3.4 php5-gd=5.3.10-1ubuntu3.4 php5-intl=5.3.10-1ubuntu3.4 php5-mysql=5.3.10-1ubuntu3.4 php5-pspell=5.3.10-1ubuntu3.4 php5-recode=5.3.10-1ubuntu3.4 php5-snmp=5.3.10-1ubuntu3.4 php5-sqlite=5.3.10-1ubuntu3.4 php5-tidy=5.3.10-1ubuntu3.4 php5-xmlrpc=5.3.10-1ubuntu3.4 php5-xsl=5.3.10-1ubuntu3.4

Kullanılabilir sürümleri komutla kontrol edebilirsiniz: apt-cache showpkg php5

Kurulumdan sonra, komutla doğrulayın: php --version

Lütfen dikkatli olun ve paket sürümü belirtilmeden (php5-xcache gibi) başka paketler yüklemeyin, aksi takdirde apt-get PHP örneğinizi tekrar 5.4 ile değiştirecektir!

Bunun olmasını önlemek için, bu paketleri saklayabilirsiniz.

Dpkg kullanarak paketleri tutma

Paketleri dpkg ile tutmak için aşağıdaki komutu yürütebilirsiniz:

echo "php5 hold" | sudo dpkg --set-selections

Tüm PHP paketlerini tutmak için aşağıdaki komutu çalıştırın:

dpkg --get-selections | grep ^php5 | sed s/install/hold/g | sudo dpkg --set-selections

Aşağıdaki komut php paketlerinizin durumunu gösterir:

sudo dpkg --get-selections | grep ^php

Yetenekleri kullanarak paketleri tutma

Ayrıca, yetenekleri kullanarak paketleri de tutabilirsiniz:

sudo aptitude hold php5

Devam:

sudo aptitude unhold php5

3
Ubuntu'da 13.x 5.3.10-1ubuntu3.4 artık mevcut değil.
kenorb

Cevabınızdakileri nasıl geri alabilirsiniz?
tolgap

PHP 5.4'e geri dönmek mi yoksa yapılandırma dosyalarını kurtarmak mı? Yapılandırma dosyaları oldukları gibi tutulmalıdır (hiçbir kişisel yapılandırma kaldırılmamalıdır). PHP 5.4'e geri dönmek isterseniz, php5'i tekrar tuttuğunuz veya yeniden sudo apt-get install php5yüklediğiniz veya kaldırdığınız / kaldırdığınız gibi tekrar yüklediğiniz paketleri kaldırmak için geri alın.
kenorb

4

İlk önce çalıştırın apt-cache showpkg php5. Orada php5 paketi hakkında sürüm ve diğer bilgileri göreceksiniz.

Belirli bir sürüm yüklemek için apt-get install <package name>=<version>

Ubuntu 11.10'umda apt-get install php5=5.3.6-13ubuntu3.6


6
Ya apt-cache showpkg php5artık 5.3.x göstermiyorsa?
kenorb

2

Benzer bir sorun yaşadım.

Depoları kaldırdım.

Bunu kaldırmak php -viçin php-clipakette çalıştırılabilir çalıştırdığınızı hatırlamanız gerekir.

5.3.10'a geri dönmek için aşağıdakileri yaptım:

sudo apt-get remove php5-cli php5 php5-common
sudo apt-get install php5 php5-mysql php5-curl

Şimdi bu istenen sürümü göstermelidir:

php -v

Benim için en son 5.6'yı yükler.
JohnnyQ


1

tarif ettiğiniz adımlardan php5.4'ü temizledikten ve php5.4 deposunu kaldırdıktan sonra apt-get güncellemesini unutmuşsunuzdur.

apt kaynaklarında artık repoya sahip olmadığınızı varsayarsak, şunları yaparsanız:

apt-get remove --purge php5 && apt-get update && apt-get install php5

5.3'e geri dönmelisin


Ubuntu 13.x'te, varsayılan olarak php5 5.4.x'e işaret ediyor
kenorb
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.