Понизьте версию PHP 5.4 до 5.3 в Debian


8

Мне пришлось выполнить дистрибутив Debian на моем сервере ... В процессе PHP был обновлён до 5.4. Мы используем ioncube, который поддерживает только до 5,3 атм, и я испытываю некоторые затруднения с поиском, как понизить до 5,3 с 5,4. Кто-нибудь знает как?


3
Я, конечно, надеюсь, что это не означает, что вы используете нестабильный выпуск Debian (sid) на сервере. Потому что это была бы действительно очень плохая идея.
duskwuff -неактивный-

Мне пришлось выполнить dist-upgrade, чтобы соответствовать определенным требованиям соответствия PCI

2
Сид назван в честь злого ребенка в Истории игрушек. Он ломает игрушки. И серверы.
duskwuff -неактивный-

Если сайт packages.debian.com обновлен (что, я думаю, так и есть), то вы должны быть на Debian Unstable. Дистанционное обновление не переместит вас в другой выпуск.
AndrewR

@duskwuff это называется нестабильным, но это не совсем нестабильно. В некоторых случаях это может быть лучше, чем стабильный выпуск. Очевидно, что на общедоступном сервере часто не лучшее решение, потому что оно не получает быстрых обновлений безопасности командой безопасности Debian ...

Ответы:


11

Ни одно из приведенных выше решений не помогло мне. Что работало, так это прикрепление необходимых пакетов к старой стабильной версии, такой как

Добавьте следующее к /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

Создайте

/etc/apt/preferences.d/preferences

И добавьте нужные вам пакеты, например, в моем случае

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

Затем запустите команды

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

Если вы хотите узнать, какие пакеты нужно обновить, просто запустите:

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

1
W: Не удалось получить ftp.us.debian.org/debian/dists/squeeze/main/source/Sources : 404 Не найдено [IP: 2610: 148: 1f10: 3 :: 89 80]
Дионизиз

Вам нужно обновить файл sources.list следующим образом: deb http://archive.debian.org/debian squeeze main contrib non-free deb-src http://archive.debian.org/debian squeeze main contrib non-free См. Wiki.debian.org/DebianSqueeze
StevieD

2

Вы можете попробовать это, но сделать это на свой страх и риск. Я сам не пробовал. ;)

Последняя строка для предотвращения обновления до 5.4. Когда вы будете готовы к 5.4, запуститеdpkg --set-selections PHP5 install

IonCube для 5.4 немного отличается от того, что я прочитал.


У меня есть этоdpkg: error: unknown force/refuse option 'php5_5.3.3-7+squeeze13_all.deb'
Холмс

1
Если вы все еще работаете над этим, вы должны знать, что IonCube был обновлен для работы с PHP 5.4. Просто придерживайтесь PHP 5.4 и загружайте новейшие библиотеки IonCube.
AndrewR

1

Вы можете установить обе версии php параллельно, например, PHP 5.5x и 5.3x или даже три параллельные версии PHP, например, PHP 5.5x, 5.4x и 5.3x, используя fastcgi.

1. Установите 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. Скомпилируйте PHP и проверьте его

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

3. Настройте 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

Сделайте этот файл исполняемым.

4. Создайте новый виртуальный хост

Поместите это в ваш хост:

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

Добавьте домены в / etc / hosts

127.0.0.1 fastcgidemo.dev

5. Протестируйте все

Включите сайт и перезапустите apache и создайте новый файл с помощью phpinfo () в / var / www / fastcgidemo для проверки вашей конфигурации.

Перейдите в браузер и введите fastcgidemo.dev

Надеюсь, поможет!

Полный учебник по:

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


0

Понижение версии PHP с 5.4 до 5.3

Сначала проверьте, какие версии поддерживаются для php5:

apt-cache showpkg php5

Вот скрипт, который вы могли бы найти полезным ( он удаляет PHP 5.4 и устанавливает 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

Где доступные версии вы можете проверить командой: 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

Удержание пакетов с использованием aptitude

Вы также можете хранить пакеты, используя aptitude, например:

sudo aptitude hold php5

Возврат:

sudo aptitude unhold php5

Дополнительно

Смотрите также те же вопросы для Ubuntu, для некоторых других идей.


0

Я бы сначала посмотрел на то, что я установил

dpkg -l |grep php

затем удалите любой PHP, который является примером версии 5.4 ...

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

тогда вам нужно очистить старые файлы (не обязательно, но может помочь)

apt-get clean

тогда как выше, отредактируйте и закрепите

nano /etc/apt/preferences.d/preferences

если это все еще не работает, повторите это, но на этот раз отключите репозитории, которые, скажем, хрипят, и оставьте только sid. вы могли бы

apt-get install --reinstall 

-1

Мне пришлось сделать полное обновление до wheezy, изменив мои подходящие источники на wheezy. Деинсталлировал php, обновил систему с новыми подходящими источниками, установил php ... все хорошо.


какие источники вы могли бы хотя бы опубликовать их. В моих источниках нет php5.3 = /
holms

Совсем не ответ ...
pduersteler
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.