Мне пришлось выполнить дистрибутив 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
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/
Сначала проверьте, какие версии поддерживаются для 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, вы можете выполнить следующую команду:
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, например:
sudo aptitude hold php5
Не удержать:
sudo aptitude unhold php5
Я бы сначала посмотрел, что я установил
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 ... все в золотом цвете.