Назад | Перейти на главную страницу

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

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

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

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

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

  • apt-get remove php5
  • Загрузите Пакет PHP5 из Stable
  • dpkg --force php5_5.3.3-7+squeeze8_all.deb
  • dpkg --set-selections PHP5 hold

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

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

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

1. Установите библиотеки, 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/

Понижение версии 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, чтобы узнать больше.

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

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 

Мне пришлось выполнить полное обновление до wheezy, заменив мои источники apt на источники wheezy. Удалил php, обновил систему новыми источниками apt, установил php ... все в золотом цвете.