วิธีการดาวน์เกรดจาก PHP 5.4 เป็น 5.3


18

เมื่อเร็ว ๆ นี้ฉันอัปเกรด PHP เป็น 5.4 แต่ดูเหมือนว่าฉันจะล้มเหลวเพราะ APC ไม่ทำงาน แต่สิ่งนี้ทำให้ฉันไม่มีทางเลือกนอกจากจะลดระดับเป็น 5.3 ฉันจะทำสิ่งนี้ได้อย่างไร

ผมดำเนินการapt-get remove php5และapt-get purge php5แล้วผมออกจาก repo 5.4 apt-get ดำเนินการแล้วapt-get install php5ก็บอกว่ามันได้รับการติดตั้ง 5.3 และฉันเริ่มต้นใหม่php-fastcgiและphp5-fpmแต่เมื่อฉันเรียกphp -vมันบอกว่า 5.4

ฉันจะลดระดับจาก 5.4 เป็น 5.3 ได้อย่างไร

เซิร์ฟเวอร์ของฉันใช้งาน Ubuntu 11.04

คำตอบ:


11

ลดระดับ PHP 5.4 เป็น 5.3

ในขั้นตอนการลดระดับของ Ubuntu นั้นยุ่งเหยิงจริงๆ นี่คือสคริปต์ที่คุณสามารถพบว่ามีประโยชน์ ( ลบ PHP 5.4 และติดตั้ง PHP 5.3 ):

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

ที่มีรุ่นที่คุณสามารถตรวจสอบโดยคำสั่ง: apt-cache showpkg php5

หลังจากการติดตั้งตรวจสอบโดยคำสั่ง: php --version

โปรดระวังและอย่าติดตั้งแพ็คเกจอื่น ๆ โดยไม่ได้ระบุรุ่นแพ็คเกจ (เช่น php5-xcache) มิฉะนั้น apt-get จะแทนที่อินสแตนซ์ PHP ของคุณด้วย 5.4 อีกครั้ง!

เพื่อป้องกันเหตุการณ์นี้คุณสามารถถือแพ็คเกจเหล่านี้ได้

แพ็คเกจการถือโดยใช้ dpkg

ในการเก็บแพ็คเกจด้วย dpkg คุณสามารถดำเนินการคำสั่งต่อไปนี้:

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

เพื่อเก็บแพ็คเกจ PHP ทั้งหมดให้เรียกใช้คำสั่งต่อไปนี้:

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

คำสั่งต่อไปนี้จะแสดงสถานะการถือครองของแพ็คเกจ php ของคุณ:

sudo dpkg --get-selections | grep ^php

แพคเกจโฮลดิ้งโดยใช้ความถนัด

นอกจากนี้คุณยังสามารถถือแพ็คเกจโดยใช้ความถนัดเช่น:

sudo aptitude hold php5

เลิกพักสาย:

sudo aptitude unhold php5

3
ใน Ubuntu 13.x 5.3.10-1ubuntu3.4 ไม่มีอยู่อีกต่อไป
kenorb

คำตอบของคุณจะหายไปได้อย่างไร
tolgap

คุณหมายถึงกลับไปที่ PHP 5.4 หรือกู้คืนไฟล์กำหนดค่าหรือไม่ ควรเก็บไฟล์กำหนดค่าไว้เหมือนกัน (ไม่ควรลบการกำหนดค่าส่วนบุคคล) หากคุณต้องการกลับไปที่ PHP 5.4 ให้ยกเลิกการทำเพื่อยกเลิกแพ็คเกจที่คุณถือและติดตั้ง php5 อีกครั้งเช่นsudo apt-get install php5ติดตั้งใหม่หรือลบ / ติดตั้ง
kenorb

4

apt-cache showpkg php5ครั้งแรกที่ดำเนินการ คุณจะเห็นเวอร์ชั่นและข้อมูลอื่น ๆ เกี่ยวกับแพ็คเกจ php5

เพื่อติดตั้งรุ่นที่เฉพาะเจาะจงทำงาน apt-get install <package name>=<version>

ใน Ubuntu 11.10 ของฉันจะเป็นเช่นนั้น apt-get install php5=5.3.6-13ubuntu3.6


6
จะเกิดอะไรขึ้นถ้าapt-cache showpkg php5ไม่แสดงอีกต่อไป 5.3.x
kenorb

2

ฉันมีปัญหาที่คล้ายกัน

ฉันลบที่เก็บ

คุณต้องจำไว้ว่าphp -vเรียกใช้ไฟล์ปฏิบัติการในphp-cliแพ็คเกจดังนั้นคุณต้องลบไฟล์นั้นด้วย

ดังนั้นฉันได้ทำสิ่งต่อไปนี้เพื่อกลับไปที่ 5.3.10:

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

ตอนนี้ควรแสดงเวอร์ชั่นที่ต้องการ:

php -v

มันติดตั้ง 5.6 ล่าสุดสำหรับฉัน
JohnnyQ


1

จากขั้นตอนที่คุณอธิบายคุณลืมที่จะอัพเดต apt-get หลังจากกำจัด php5.4 และลบ php5.4 repo

สมมติว่าคุณไม่มี repo ในแหล่งที่ฉลาดอีกต่อไปหากคุณเรียกใช้:

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

คุณควรกลับมาที่ 5.3


ใน Ubuntu 13.x โดยค่าเริ่มต้น php5 ชี้ไปที่ 5.4.x
kenorb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.