Сегодня я вам расскажу как установить/переустановить к себе на сервер с Debian OS самую последнюю версию php 5.2 и это была версия php 5.2.17, так как вы ее не найдете не в каких репозиториях Debian.
Данная сборка будет от dotdeb так как это единственное место которому можно доверять и от куда можно с уверенностью скачать эту версию php.
(Переустановка без вредна для если у вас уже есть сайты на сервере)
Также в процессе установки вы можете выбрать php версий:
- 5.2.8
- 5.2.9
- 5.2.11
- 5.2.12
- 5.2.13
- 5.2.14
- 5.2.17
Ну что приступим к самому делу. Если у вас еще не установлен php, то переходим сразу ко второй части ;)
Часть №1 (для тех у кого уже установлена какая то другая версия PHP)
- Проверяем какие пакеты php у нас установлены
dpkg -l |grep php
- Удаляем все что нам выдало выше
Прошу заметить, что squirrelmail и phpmyadmin он зависит от PHP и удаляется вместе с пакетами php, для этого придется потом вам установить его заново.
Как переустановить PhpMyAdmin можно прочитать тут.
apt-get -Vf purge libapache2-mod-php5 php5 php5-cgi php5-cli php5-common php5-gd php5-mcrypt php5-mysql php5-suhosin
Часть №2 (Подготовка и установка PHP 5.2.17)
- Подключаем репозитории Lenny
nano /etc/apt/sources.list - И добавляем туда
deb http://archive.debian.org/debian lenny main contrib non-free
deb-src http://archive.debian.org/debian lenny main contrib non-free - Получаем списки репозиториев и проверяем их валидность
apt-get update - Обновит список доступных репозиториев
- Устанавливаем все нужные пакеты для PHP 5.2.17
apt-get -V install libkrb53 libltdl3 libmysqlclient16 libmysqlclient15off libcurl3 libmagickcore3 libmagickwand3 libmagick10 libltdl7 libmcrypt4 libssl0.9.8 libx11-6 libxpm4 libt1-5 mime-support libpng12-0 libjpeg62 libgd2-xpm libfreetype6 automake automake1.4 libssl-dev autoconf tzdata libtool shtool gnupg ucf libmagic1 libxml2 zlib1g libonig2 libqdbm14 libbz2-1.0 libc6 libcomerr2 libdb4.8 libgssapi-krb5-2 libk5crypto3 libkrb5-3 libpcre3 - Качаем php нужной вам версии с dotdeb.org
wget -r —no-parent http://archives.dotdeb.org/dists/lenny/php5/5.2.17/binary-amd64/
wget -r —no-parent http://archives.dotdeb.org/dists/lenny/php5-pecl/5.2.17/binary-amd64/ - Создаем папку
mkdir php5.2.17 - Переносим все в одну папку
mv archives.dotdeb.org/dists/lenny/php5/5.2.17/binary-amd64/* php5.2.17/
mv archives.dotdeb.org/dists/lenny/php5-pecl/5.2.17/binary-amd64/* php5.2.17/ - Устанавливаем PHP
dpkg -i php5-common_5.2.17-0.dotdeb.0_amd64.deb && dpkg -i libapache2-mod-php5_5.2.17-0.dotdeb.0_amd64.deb && dpkg -i php5-cli_5.2.17-0.dotdeb.0_amd64.deb && dpkg -i php5_5.2.17-0.dotdeb.0_all.deb && dpkg -i php5-cgi_5.2.17-0.dotdeb.0_amd64.deb && dpkg -i php-pear_5.2.17-0.dotdeb.0_all.deb && dpkg -i php5-curl_5.2.17-0.dotdeb.0_amd64.deb && dpkg -i php5-dev_5.2.17-0.dotdeb.0_amd64.deb && dpkg -i php5-gd_5.2.17-0.dotdeb.0_amd64.deb && dpkg -i php5-imagick_5.2.17-0.dotdeb.0_amd64.deb && dpkg -i php5-mcrypt_5.2.17-0.dotdeb.0_amd64.deb && dpkg -i php5-mysql_5.2.17-0.dotdeb.0_amd64.deb && dpkg -i php5-suhosin_5.2.17-0.dotdeb.0_amd64.deb
По окончанию установки, ваш php готов к бою
Надеюсь все было понятно, а если нет, то оставляете комментарии я помогу разобраться.
Все сделал по инструкции и получилось, когда узнаю версию php — при вводе команды в терминале php -v появляется PHP 5.2.17-0.dotdeb.0 with Suhosin-Patch 0.9.7 (cli) (built: Jan 7 2011 08:21:57) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies, а с помощью функции phpinfo()- версия 5.3.16.
Покажите вывод команды dpkg -l |grep php
Скорей всего у вас не все удалились пакеты или вы обновились часть пакетов до php 5.3 случайно через apt-get upgrade =)
нужно добавлять php 5.2 в исключения, чтобы система не пыталась его обновить до свежего php 5.3
Всё сделал, но беда в другом. у меня i386
архивы я скачал, но не получается их установить.
Не могли бы вы мне написать команды, необходимые для этого?
ставлю примерно так
dpkg -i libapache2-mod-php5_5.2.17-0.dotdeb.0_i386.deb
получатеся вот так
b (Reading database … 36624 files and directories currently installed.) Preparing to replace libapache2-mod-php5 5.2.17-0.dotdeb.0 (using libapache2-mod-php5_5.2.17-0.dotdeb.0_i386.deb) … Unpacking replacement libapache2-mod-php5 … dpkg: dependency problems prevent configuration of libapache2-mod-php5: libapache2-mod-php5 depends on libdb4.6; however: Package libdb4.6 is not installed. dpkg: error processing libapache2-mod-php5 (—install): dependency problems — leaving unconfigured Errors were encountered while processing: libapache2-mod-php5
Для вашего ядра нужно ставить этот PHP
http://archives.dotdeb.org/dists/lenny/php5/5.2.17/binary-i386/
http://archives.dotdeb.org/dists/lenny/php5-pecl/5.2.17/binary-i386/
Это сборка специально для i386 собирать ее нужно точно также как и amd64, только везде в название нужно заменить amd64 на i386
я его и пытался поставить… вот там даже написано выше
dpkg -i libapache2-mod-php5_5.2.17-0.dotdeb.0_i386.deb
думаю, у меня что-то не то на сервере
Вы поставили сначала php5-common и установили все нужные пакеты?
попробуйте прописать apt-get -Vf install
и покажите вывод
dpkg -l |grep php
я с дебиан недолго знаком, с 9-го числа, поэтому следовал вот этой инструкции
http://paperplane.su/apache-debian-ubuntu-ssh/#comment-132749
ii libapache2-mod-php5 5.3.3-7+squeeze14 server-side, HTML-embedded scripting language (Apache 2 module)
rc libapache2-mod-php5filter 5.3.3-7+squeeze14 server-side, HTML-embedded scripting language (apache 2 filter module)
ii php5-cgi 5.3.3-7+squeeze14 server-side, HTML-embedded scripting language (CGI binary)
ii php5-cli 5.3.3-7+squeeze14 command-line interpreter for the php5 scripting language
ii php5-common 5.3.3-7+squeeze14 Common files for packages built from the php5 source
ii php5-curl 5.3.3-7+squeeze14 CURL module for php5
ii php5-gd 5.3.3-7+squeeze14 GD module for php5
ii php5-mcrypt 5.3.3-7+squeeze14 MCrypt module for php5
ii php5-mysql 5.3.3-7+squeeze14 MySQL module for php5
ii php5-suhosin 0.9.32.1-1 advanced protection module for php5
ii php5-xmlrpc 5.3.3-7+squeeze14 XML-RPC module for php5
ii phpmyadmin 4:3.3.7-7 MySQL web administration tool
root@newsorow:~#
PS: вчера не поучилось, так я опять 5,3 поставил
apt-get -Vf purge libapache2-mod-php5 libapache2-mod-php5filter php5-cgi php5-common php5-curl php5-gd php5-mcrypt php5-mysql php5-suhosin php5-xmlrpc
Удалит все ваши пакеты
Затем повторно ставите пакеты которые указанны в статье «apt-get -V install libkrb53 libltdl3 и т.д»
Затем собираете апатч
dpkg -i php5-common_5.2.17-0.dotdeb.0_i386.deb
затем выполните
apt-get -fV install
и потом уже попробуйте поставить
dpkg -i libapache2-mod-php5_5.2.17-0.dotdeb.0_i386.deb
Если не получиться, напишите свою аську я не опубликую пост и посмотрю что там может быть =)
спасибо большое, сейчас буду пробовать
486788906
удаляю, но что-то остаётся и удаляться не хочет
ii libapache2-mod-php5 5.3.3-7+squeeze14 server-side, HTML-embedded scripting language (Apache 2 module)
ii php5 5.3.3-7+squeeze14 server-side, HTML-embedded scripting language (metapackage)
ii php5-cli 5.3.3-7+squeeze14 command-line interpreter for the php5 scripting language
ii php5-common 5.3.3-7+squeeze14 Common files for packages built from the php5 source
root@newsorow:~# apt-get -V install libkrb53 libltdl3 libmysqlclient16 libmysqlclient15off libcurl3 libmagickcore3 libmagickwand3 libmagick10 libltdl7 libmcrypt4 libssl0.9.8 libx11-6 libxpm4 libt1-5 mime-support libpng12-0 libjpeg62 libgd2-xpm libfreetype6 automake automake1.4 libssl-dev autoconf tzdata libtool shtool gnupg ucf libmagic1 libxml2 zlib1g libonig2 libqdbm14 libbz2-1.0 libc6 libcomerr2 libdb4.8 libgssapi-krb5-2 libk5crypto3 libkrb5-3 libpcre3
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Пакет libltdl3 недоступен, но упомянут в списке зависимостей другого пакета.
Это может означать, что пакет отсутствует, устарел, или доступен из источников, не упомянутых в sources.list
Пакет libmysqlclient15off недоступен, но упомянут в списке зависимостей другого пакета.
Это может означать, что пакет отсутствует, устарел, или доступен из источников, не упомянутых в sources.list
E: Для пакета libltdl3 не найден кандидат на установку
E: Для пакета libmysqlclient15off не найден кандидат на установку
E: Не удалось найти пакет libmagick10
с этим разобрался, далее
root@newsorow:/# apt-get -fV install
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
wwwconfig-common (0.2.1)
libjs-mootools (1.2.4.0~debian1-1)
javascript-common (7)
dbconfig-common (1.8.46+squeeze.0)
Для их удаления используйте ‘apt-get autoremove’.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 1 пакетов не обновлено.
Не совсем понял, как Вы сделали… Можно подробнее.
У меня на 4-м шаге после выполнения пишет:
Reading package lists… Done
Building dependency tree… Done
E: Unable to locate package libmysqlclient16
E: Unable to locate package libmagickcore3
E: Unable to locate package libmagickwand3
E: Unable to locate package libltdl7
и не знаю, что делать дальше, сам тоже не супер ас в debian///
Вам говорит о том, что не может найти данный пакет.
Скорей всего, вы пропустили шаг 2 и 3.
Проверьте на наличии этих двух строк, файлы /etc/apt/sources.list
deb http://archive.debian.org/debian lenny main contrib non-free
deb-src http://archive.debian.org/debian lenny main contrib non-free
После этого сохраните и запустите проверку репозиториев
apt-get update (можете сначала сделать apt-get autoclean или apt-get clean)
потом можете приступать дальше
Также покажите вывод команды:
apt-cache search libmysqlclient16
Если она нечего не покажет, это говорит о том, что у вас не прикреплены репозитории debian leny
root@newsorow:~/php5.2.17# php -v
PHP 5.2.17-0.dotdeb.0 with Suhosin-Patch 0.9.7 (cli) (built: Jan 7 2011 08:21:57)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH
Спасибо вам огромное))