Подтвердить что ты не робот

Обновление Debian для php 5.4 до 5.5

[решено]

У меня есть Debian Wheezy с установленным php 5.4.18. Я хотел обновить его до 5.5.x, но стандартная процедура не работает.

Это мой файл /etc/apt/sources.list:

# deb cdrom:[Debian GNU/Linux 7.0.0 _Wheezy_ - Official amd64 NETINST Binary-1 20130504-14:43]/ wheezy main
deb http://ftp.pl.debian.org/debian/ wheezy main
deb-src http://ftp.pl.debian.org/debian/ wheezy main

deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main

# wheezy-updates, previously known as 'volatile'
deb http://ftp.pl.debian.org/debian/ wheezy-updates main
deb-src http://ftp.pl.debian.org/debian/ wheezy-updates main

#php 5.5
deb http://packages.dotdeb.org wheezy-php55 all
deb-src http://packages.dotdeb.org wheezy-php55 all

Я обновил исходники с помощью

apt-get update

и установлен php5

apt-get install php5

но после перезагрузки httpd у меня все еще есть старая версия php.

php -v

возвращает:

[email protected]:/# php -v
PHP 5.4.18 (cli) (built: Aug 19 2013 04:03:40)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans

при поиске php

find / -name php5

Я вижу только что установленные файлы

[email protected]:/usr/bin# ls -l php*
lrwxrwxrwx 1 root root      21 Dec 11 00:15 php -> /etc/alternatives/php
-rwxr-xr-x 1 root root 8956912 Nov 17 02:37 php5
[email protected]:/usr/bin# ./php5 -v
PHP 5.5.19-1~dotdeb.1 (cli) (built: Nov 17 2014 01:24:08)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
    with Xdebug v2.2.6, Copyright (c) 2002-2014, by Derick Rethans
[email protected]:/usr/bin# ./php -v
PHP 5.5.19-1~dotdeb.1 (cli) (built: Nov 17 2014 01:24:08)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
    with Xdebug v2.2.6, Copyright (c) 2002-2014, by Derick Rethans

Мой phpinfo возвращает версию PHP 5.4.18

Что я делаю неправильно?

//редактировать: Я обновил его с помощью directadmin/custombuild

[email protected]:/usr/local/directadmin/custombuild# vim options.conf

i изменена строка:

php1_release=5.4

to

php1_release=5.5

и далее:

[email protected]:/usr/local/directadmin/custombuild# ./build update_data
# [..]
[email protected]:/usr/local/directadmin/custombuild# ./build php d
# [..]

Теперь у меня есть php 5.5.19, и я могу использовать функцию password_hash();)

4b9b3361

Ответ 1

  • Добавьте эти источники пакетов в файл sources.list: введите файл через

    sudo nano/etc/apt/sources.list

и добавьте эти строки в конец файла (правые клики):

deb http://packages.dotdeb.org wheezy-php55 all
deb-src http://packages.dotdeb.org wheezy-php55 all

Сохранить и закрыть (CTRL-X, "y", ENTER).

  1. Сделайте обновление:

    Обновление sudo apt-get

Теперь вы получите сообщение об ошибке в последней строке прогресса обновления.

  1. Невозможно установить PHP сейчас, так как Debian только что дал ошибку и сказал, что эти новые источники не проверены и blah blah, открытый ключ недоступен... Я нахожу этот процесс очень неинтуитивным, и я действительно не знаю, почему его так сложно обновить PHP, но хорошо, вот как это...

Метод # 1 Последняя строка этого сообщения об ошибке содержит ключ, например "E9C74FEEA2098A6E". Скопируйте этот ключ (отметьте строку с помощью мыши, как правило, скопируйте ее в буфер обмена) и запустите эти команды, чтобы проверить новые источники пакетов (и введите здесь ваш ключ):

gpg --keyserver packages.dotdeb.org --recv-key  E9C74FEEA2098A6E
gpg -a --export E9C74FEEA2098A6E | sudo apt-key add -

Метод # 2 (спасибо Петру за это!)

wget http://www.dotdeb.org/dotdeb.gpg
sudo apt-key add dotdeb.gpg
  1. Повторите обновление:

    Обновление sudo apt-get

  2. Установите последнюю версию PHP 5:

    sudo apt-get install php5

  3. Проверьте установленную версию PHP 5 (phpinfo() все равно покажет старую версию PHP до перезапуска apache):

    php -v

Наконец, перезапустите apache:

sudo service apache2 restart

Кстати, его невозможно (насколько мне известно) установить PHP 5.5 на Debian 6 (без компиляции исходного кода вручную).