Hạ cấp PHP 5.4 xuống 5.3 trong Debian


8

Tôi đã phải thực hiện nâng cấp distro Debian trên máy chủ của mình ... trong quá trình đó, PHP đã được nâng cấp lên 5.4. Chúng tôi sử dụng ioncube chỉ hỗ trợ tối đa 5,3 atm và tôi gặp một số khó khăn khi tìm cách hạ cấp xuống 5,3 từ 5,4. Có ai biết làm thế nào không?


3
Tôi chắc chắn hy vọng điều này không có nghĩa là bạn đang sử dụng debian không ổn định (sid) trên máy chủ. Bởi vì đó sẽ là một ý tưởng thực sự, thực sự, thực sự tồi tệ.
duskwuff -inactive-

Tôi đã phải nâng cấp để đáp ứng một số yêu cầu nhất định về tuân thủ PCI

2
Sid được đặt theo tên của đứa trẻ xấu xa trong Toy Story. Anh bẻ đồ chơi. Và máy chủ.
duskwuff -inactive-

Nếu trang web tests.debian.com được cập nhật (mà tôi tin là như vậy) thì bạn phải ở trên Debian Không ổn định. Một bản nâng cấp sẽ không đưa bạn đến một bản phát hành khác.
AndrewR

@duskwuff nó được gọi là không ổn định nhưng nó không thực sự không ổn định. Trong một số trường hợp, nó có thể tốt hơn bản phát hành ổn định. Rõ ràng trên một máy chủ công cộng thường không phải là giải pháp tốt nhất, bởi vì nó không nhận được cập nhật bảo mật nhanh chóng bởi nhóm bảo mật debian ...

Câu trả lời:


11

Không có giải pháp nào ở trên làm việc cho tôi. Những gì đã làm là ghim các gói cần thiết vào ổn định cũ, chẳng hạn như

Thêm vào đây /etc/apt/sources.lst

deb http://ftp.us.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.us.debian.org/debian/ squeeze main contrib non-free

Tạo nên

/etc/apt/preferences.d/preferences

Và thêm các gói bạn cần hạ cấp, như trong trường hợp của tôi

Package: php5*
Pin: release a=oldstable
Pin-Priority: 700

Package: libapache2-mod-php5    
Pin: release a=oldstable
Pin-Priority: 700

Package: libapache2-mod-php5
Pin: release a=oldstable
Pin-Priority: 700

Package: php-pear
Pin: release a=oldstable
Pin-Priority: 700

Package: *
Pin: release a=stable
Pin-Priority: 600

Sau đó chạy các lệnh

aptitude update
aptitude reinstall <necessary packages>
/etc/init.d/apache2 restart

Nếu bạn muốn biết gói nào bạn cần nâng cấp, hãy chạy:

dpkg -l|grep php|grep 5.4|awk '{print $2}'

1
W: Không thể tìm nạp ftp.us.debian.org/debian/dists/squeeze/main/source/Source : 404 Không tìm thấy [IP: 2610: 148: 1f10: 3 :: 89 80]
dionyziz

Bạn cần cập nhật các tập tin sources.list với điều này bây giờ: deb http://archive.debian.org/debian squeeze main contrib non-free deb-src http://archive.debian.org/debian squeeze main contrib non-free Xem wiki.debian.org/DebianSqueeze
StevieD

2

Bạn có thể thử điều này, nhưng làm nó có nguy cơ của riêng bạn. Tôi đã không thử bản thân mình. ;)

  • apt-get remove php5
  • Tải xuống gói PHP5 từ Ổn định
  • dpkg --force php5_5.3.3-7+squeeze8_all.deb
  • dpkg --set-selections PHP5 hold

Dòng cuối cùng để ngăn nâng cấp lên 5.4. Khi bạn đã sẵn sàng cho 5.4, hãy chạydpkg --set-selections PHP5 install

IonCube cho 5.4 là một chút so với những gì tôi đã đọc.


Tôi đã nhận được điều nàydpkg: error: unknown force/refuse option 'php5_5.3.3-7+squeeze13_all.deb'
holms

1
Nếu bạn vẫn đang làm việc này, bạn nên biết rằng IonCube đã được nâng cấp để hoạt động với PHP 5.4. Chỉ cần gắn bó với PHP 5.4 và tải xuống các thư viện IonCube mới nhất.
AndrewR

1

Bạn có thể cài đặt song song cả hai phiên bản php, ví dụ PHP 5.5x và 5.3x hoặc thậm chí ba phiên bản PHP song song, ví dụ PHP 5.5x, 5.4x và 5.3x bằng fastcgi.

1. Cài đặt Libs, fastCGI, git

sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install libxml2 libxml2-dev libssl-dev
sudo apt-get install libcurl4-openssl-dev pkg-config
sudo apt-get install libcurl4-gnutls-dev libjpeg-dev libpng12-dev libmysqlclient-dev

sudo apt-get install git
cd /opt
sudo git clone https://github.com/cweiske/phpfarm

sudo apt-get install libapache2-mod-fastcgi apache2-mpm-worker apache2-suexec
sudo a2enmod actions fastcgi suexec
sudo service apache2 restart

2. Biên dịch PHP và xác minh nó

cd /opt/phpfarm/src
sudo ./compile.sh 5.3.29
cd /opt/phpfarm/inst/bin
./php-5.3.29 --version

3. Cấu hình FastCGI

sudo mkdir /var/www/cgi-bin
cd /var/www/cgi-bin
sudo nano php-cgi-5.3.29

#!/bin/sh
PHPRC="/etc/php5/cgi/5.3.29/"
export PHPRC
PHP_FCGI_CHILDREN=3
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_MAX_REQUESTS
exec /opt/phpfarm/inst/bin/php-cgi-5.3.29

Làm cho tập tin này thực thi.

4. Tạo một máy chủ ảo mới

Đặt cái này vào máy chủ của bạn:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName fastcgidemo.dev
    DocumentRoot /var/www/fastcgidemo

    #php-cgi setup
    #used for multiple php versions
    FastCgiServer /var/www/cgi-bin/php-cgi-5.3.29
    ScriptAlias /cgi-bin-php/ /var/www/cgi-bin/

    <Directory "/var/www/fastcgidemo">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted

            AddHandler php-cgi .php
            Action php-cgi /cgi-bin-php/php-cgi-5.3.29
            <FilesMatch "\.php$">
                SetHandler php-cgi
            </FilesMatch>
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error_fastcgidemo.log
    CustomLog ${APACHE_LOG_DIR}/access_fastcgidemo.log combined
</VirtualHost>

Thêm tên miền vào / etc / hosts

127.0.0.1 fastcgidemo.dev

5. Kiểm tra mọi thứ

Kích hoạt trang web và khởi động lại apache và tạo một tệp mới với phpinfo () trong / var / www / fastcgidemo để kiểm tra cấu hình của bạn.

Truy cập trình duyệt và nhập fastcgidemo.dev

Hy vọng nó giúp!

Hướng dẫn đầy đủ về:

http://www.jabommi.de/wiki/downgrade-php-5-5-to-5-3-ubfox-14-with-multipl-php-versions/


0

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

Trước tiên hãy kiểm tra phiên bản nào được hỗ trợ cho php5:

apt-cache showpkg php5

Đâ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`
VERSION="php5_5.3.3-7+squeeze8_all" # CHANGES THIS WITH YOUR VERSION OF PACKAGE
sudo apt-get install php5=$VERSION php5-cli=$VERSION php5-common=$VERSION libapache2-mod-php5=$VERSION
sudo apt-get install php5=$VERSION php5-cli=$VERSION php5-common=$VERSION libapache2-mod-php5=$VERSION
sudo apt-get install php-pear=$VERSION php5-curl=$VERSION php5-gd=$VERSION php5-intl=$VERSION php5-mysql=$VERSION php5-pspell=$VERSION php5-recode=$VERSION php5-snmp=$VERSION php5-sqlite=$VERSION php5-tidy=$VERSION php5-xmlrpc=$VERSION php5-xsl=$VERSION

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, ví dụ:

sudo aptitude hold php5

Chưa trả lời:

sudo aptitude unhold php5

Ngoài ra

Xem thêm các câu hỏi tương tự cho Ubuntu, để biết thêm một số ý tưởng.


0

Trước tiên tôi sẽ xem những gì tôi đã cài đặt

dpkg -l |grep php

sau đó gỡ cài đặt bất kỳ php nào là phiên bản 5.4 ...

apt-get remove libapache2-mod-php5 php-db php-pear php5 php5-cli php5-common

sau đó bạn cần dọn sạch các tập tin cũ (không cần thiết nhưng có thể giúp đỡ)

apt-get clean

sau đó thích chỉnh sửa và ghim ở trên

nano /etc/apt/preferences.d/preferences

nếu điều đó vẫn không hoạt động lặp lại điều này nhưng lần này hãy vô hiệu hóa các kho lưu trữ được nói là khò khè và chỉ để lại các kho bên. bạn có thể

apt-get install --reinstall 

-1

Tôi đã phải nâng cấp toàn bộ thành khò khè bằng cách thay đổi các nguồn apt của mình thành các nguồn khò khè. Đã gỡ cài đặt php, nâng cấp hệ thống với các nguồn apt mới, cài đặt php ... mọi thứ đều tuyệt vời.


nguồn nào ít nhất bạn có thể đăng chúng. nguồn apt của tôi không có php5.3 nào trong đó = /
holms

Không có câu trả lời nào cả ...
pduersteler
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.