Turunkan PHP 5.4 ke 5.3 di Debian

8

Saya harus melakukan upgrade Debian di server saya ... dalam proses, PHP ditingkatkan menjadi 5,4. Kami menggunakan ioncube yang hanya mendukung hingga 5,3 atm, dan saya mengalami kesulitan menemukan cara menurunkan versi ke 5,3 dari 5,4. Adakah yang tahu bagaimana caranya?

Karnivoris
sumber
3
Saya tentu berharap ini tidak berarti Anda menggunakan debian tidak stabil (sid) di server. Karena itu akan menjadi ide yang sangat, sangat, sangat buruk.
duskwuff -inactive-
Saya harus melakukan dist-upgrade untuk memenuhi persyaratan tertentu untuk kepatuhan PCI
2
Sid dinamai sesuai dengan anak jahat di Toy Story. Dia merusak mainan. Dan server.
duskwuff -inactive-
Jika situs paket.debian.com mutakhir (yang saya yakin benar), maka Anda harus menggunakan Debian Unstable. Sebuah upgrade-upgrade tidak akan memindahkan Anda ke rilis yang berbeda.
AndrewR
@duskwuff itu disebut tidak stabil tetapi tidak benar-benar tidak stabil. Dalam beberapa kesempatan mungkin lebih baik daripada rilis stabil. Jelas pada server publik sering kali bukan solusi terbaik, karena tidak mendapatkan pembaruan keamanan yang cepat oleh tim keamanan debian ...

Jawaban:

11

Tak satu pun dari solusi di atas bekerja untuk saya. Apa yang berhasil adalah menyematkan paket yang diperlukan ke stabil lama seperti

Tambahkan yang berikut ke /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

Membuat

/etc/apt/preferences.d/preferences

Dan tambahkan paket yang Anda butuhkan diturunkan seperti dalam kasus saya

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

Kemudian jalankan perintah

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

Jika Anda ingin tahu paket mana yang perlu Anda perbarui, jalankan saja:

dpkg -l|grep php|grep 5.4|awk '{print $2}'
Jari Gendut
sumber
1
W: Gagal mengambil ftp.us.debian.org/debian/dists/squeeze/main/source/Sumber : 404 Tidak Ditemukan [IP: 2610: 148: 1f10: 3 :: 89 80]
dionyziz
Anda perlu memperbarui file sources.list dengan ini sekarang: deb http://archive.debian.org/debian squeeze main contrib non-free deb-src http://archive.debian.org/debian squeeze main contrib non-free Lihat wiki.debian.org/DebianSqueeze
StevieD
2

Anda dapat mencoba ini, tetapi lakukan dengan risiko Anda sendiri. Saya tidak mencobanya sendiri. ;)

  • apt-get remove php5
  • Unduh paket PHP5 dari Stable
  • dpkg --force php5_5.3.3-7+squeeze8_all.deb
  • dpkg --set-selections PHP5 hold

Baris terakhir untuk mencegah peningkatan ke 5.4. Saat Anda siap untuk 5.4, jalankandpkg --set-selections PHP5 install

IonCube for 5.4 sedikit keluar dari apa yang saya baca.

AndrewR
sumber
Saya mendapatkan inidpkg: error: unknown force/refuse option 'php5_5.3.3-7+squeeze13_all.deb'
holms
1
Jika Anda masih mengerjakan ini, Anda harus tahu bahwa IonCube telah ditingkatkan untuk bekerja dengan PHP 5.4. Cukup gunakan PHP 5.4 dan unduh perpustakaan IonCube terbaru.
AndrewR
1

Anda dapat menginstal kedua versi php paralel misalnya PHP 5.5x dan 5.3x atau bahkan tiga versi PHP paralel misalnya PHP 5.5x, 5.4x dan 5.3x menggunakan fastcgi.

1. Instal 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. Kompilasi PHP dan verifikasi

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

3. Konfigurasikan 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

Jadikan file ini dapat dieksekusi.

4. Buat host virtual baru

Masukkan ini ke host Anda:

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

Tambahkan domain ke / etc / hosts

127.0.0.1 fastcgidemo.dev

5. Uji semuanya

Aktifkan situs dan mulai ulang apache dan buat file baru dengan phpinfo () di / var / www / fastcgidemo untuk menguji konfigurasi Anda.

Buka browser dan ketik fastcgidemo.dev

Semoga ini bisa membantu!

Tutorial Lengkap tentang:

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

jb7AN
sumber
0

Downgrade PHP 5.4 ke 5.3

Pertama periksa versi mana yang didukung untuk php5:

apt-cache showpkg php5

Berikut ini skrip yang menurut Anda berguna ( menghapus PHP 5.4 dan menginstal 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

Di mana versi yang tersedia Anda dapat memeriksa dengan perintah: apt-cache showpkg php5

Setelah instalasi, verifikasi dengan perintah: php --version

Harap berhati-hati dan jangan menginstal paket lain tanpa versi paket yang ditentukan (seperti php5-xcache), jika tidak apt-get akan mengganti instance PHP Anda dengan 5.4 lagi!

Untuk mencegah hal ini terjadi, Anda dapat memegang paket-paket ini.

Memegang paket menggunakan dpkg

Untuk menyimpan paket dengan dpkg, Anda dapat menjalankan perintah berikut:

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

Untuk menampung semua paket PHP, jalankan perintah berikut:

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

Perintah berikut akan menunjukkan Anda memegang status paket php Anda:

sudo dpkg --get-selections | grep ^php

Memegang paket menggunakan aptitude

Anda juga dapat memegang paket menggunakan aptitude mis:

sudo aptitude hold php5

Lepaskan:

sudo aptitude unhold php5

Ekstra

Lihat juga pertanyaan yang sama untuk Ubuntu, untuk beberapa ide lainnya.

kenorb
sumber
0

Pertama saya akan melihat apa yang telah saya instal

dpkg -l |grep php

hapus instalan php apa pun yang versi 5.4 misalnya ...

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

maka Anda perlu membersihkan file lama (tidak perlu tetapi bisa membantu)

apt-get clean

kemudian seperti edit dan pin di atas

nano /etc/apt/preferences.d/preferences

Jika itu masih tidak berhasil ulangi ini tetapi kali ini menonaktifkan repositori yang mengatakan mengi dan hanya meninggalkan yang sid. Anda bisa

apt-get install --reinstall 
pengguna2630659
sumber
-1

Saya harus melakukan upgrade penuh ke wheezy dengan mengubah sumber apt saya ke sumber wheezy. Uninstalled php, upgrade sistem dengan sumber apt baru, instal php ... semuanya emas.

Karnivoris
sumber
sumber mana yang paling tidak Anda dapat mempostingnya. sumber apt saya tidak memiliki php5.3 di sana = /
holms
Sama sekali bukan jawaban ...
pduersteler