Cách hạ cấp từ PHP 5.4 xuống 5.3


18

Gần đây tôi đã nâng cấp PHP lên 5.4, nhưng dường như nó không thành công với tôi vì APC không hoạt động với nó, tuy nhiên điều này không cho tôi lựa chọn nào khác ngoài việc hạ cấp xuống 5.3, làm cách nào để làm điều này?

Tôi đã thực thi apt-get remove php5apt-get purge php5sau đó tôi loại bỏ repo 5.4 khỏi apt-get rồi thực thi apt-get install php5, nó nói rằng nó đang cài đặt 5.3, và tôi đã khởi động lại php-fastcgiphp5-fpmkhi tôi chạy php -vthì nó báo 5.4.

Làm cách nào tôi có thể hạ cấp từ 5,4 xuống 5,3?

Máy chủ của tôi đang chạy Ubuntu 11.04.

Câu trả lời:


11

Hạ cấp PHP 5,4 xuống 5,3

Trong quá trình hạ cấp Ubuntu là một mớ hỗn độn. Đây là đoạn script mà bạn có thể thấy nó hữu ích ( nó loại bỏ PHP 5.4 và cài đặt 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

Trường hợp các phiên bản có sẵn bạn có thể kiểm tra bằng lệnh: apt-cache showpkg php5

Sau khi cài đặt, xác minh nó bằng lệnh: php --version

Hãy cẩn thận và không cài đặt bất kỳ gói nào khác mà không có phiên bản gói được chỉ định (như php5-xcache), nếu không apt-get sẽ thay thế phiên bản PHP của bạn bằng 5.4!

Để ngăn chặn điều này xảy ra, bạn có thể giữ các gói này.

Giữ các gói sử dụng dpkg

Để giữ các gói bằng dpkg, bạn có thể thực hiện lệnh sau:

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

Để giữ tất cả các gói PHP, hãy chạy lệnh sau:

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

Lệnh sau sẽ cho bạn thấy trạng thái giữ các gói php của bạn:

sudo dpkg --get-selections | grep ^php

Giữ các gói bằng cách sử dụng năng khiếu

Bạn cũng có thể giữ các gói bằng cách sử dụng aptitude, vd:

sudo aptitude hold php5

Chưa trả lời:

sudo aptitude unhold php5

3
Trong Ubuntu 13.x 5.3.10-1ubfox3.4 không còn tồn tại nữa.
kenorb

Làm thế nào sẽ đi về hoàn tác những gì trong câu trả lời của bạn?
tolgap

Bạn có nghĩa là quay trở lại PHP 5.4 hoặc khôi phục tập tin cấu hình? Các tập tin cấu hình nên được giữ nguyên như chúng (không nên xóa cấu hình cá nhân). Nếu bạn muốn quay lại PHP 5.4, thì hãy hoàn tác lại để mở ra các gói bạn giữ và cài đặt lại php5, ví dụ như sudo apt-get install php5cài đặt lại hoặc gỡ bỏ / cài đặt.
kenorb

4

Đầu tiên thực hiện apt-cache showpkg php5. Ở đó bạn sẽ thấy phiên bản và thông tin khác về gói php5.

Để cài đặt một phiên bản cụ thể chạy apt-get install <package name>=<version>

Trong Ubuntu 11.10 của tôi, nó sẽ là apt-get install php5=5.3.6-13ubuntu3.6


6
Điều gì xảy ra nếu apt-cache showpkg php5không hiển thị nữa 5.3.x?
kenorb

2

Tôi đã có một vấn đề tương tự.

Tôi loại bỏ các kho lưu trữ.

Bạn phải nhớ rằng php -vchạy chương trình thực thi trong php-cligói để bạn cũng phải loại bỏ nó.

Vì vậy, tôi đã làm như sau để quay lại 5.3.10:

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

Bây giờ điều này sẽ hiển thị phiên bản mong muốn:

php -v

Nó cài đặt 5.6 mới nhất cho tôi.
JohnnyQ

2

Có thể hướng dẫn này sẽ giúp bạn: Cách hạ cấp gói trong Ubuntu

Vì vậy, để tải xuống và cài đặt bất kỳ gói nào của bất kỳ phiên bản có sẵn nào, bạn phải làm điều này:

sudo apt-get install Package=Version

1

từ các bước bạn đã mô tả, bạn đã quên cập nhật apt-get sau khi xóa php5.4 và xóa repo php5.4.

giả sử bạn không có repo nữa trong các nguồn apt, nếu bạn chạy:

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

bạn nên quay lại vào ngày 5.3


Trong Ubuntu 13.x, theo mặc định, php5 đang trỏ đến 5.4.x
kenorb
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.