Debian wheezy升级php 5.4到5.5

mar*_*987 13 php debian

[解决了]

我有安装php 5.4.18的Debian Wheezy.我想将它升级到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
Run Code Online (Sandbox Code Playgroud)

我更新了源代码

apt-get update
Run Code Online (Sandbox Code Playgroud)

并安装了php5

apt-get install php5
Run Code Online (Sandbox Code Playgroud)

但在httpd重启后我还有旧的php版本.

php -v
Run Code Online (Sandbox Code Playgroud)

收益:

root@xxx:/# 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
Run Code Online (Sandbox Code Playgroud)

当我搜索PHP

find / -name php5
Run Code Online (Sandbox Code Playgroud)

我只能看到已安装的文件

root@xxx:/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
root@xxx:/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
root@xxxx:/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
Run Code Online (Sandbox Code Playgroud)

我的phpinfo返回PHP版本5.4.18

我做错了什么?

//编辑:我通过directadmin/custombuild更新了它

root@xxxx:/usr/local/directadmin/custombuild# vim options.conf
Run Code Online (Sandbox Code Playgroud)

我换线了:

php1_release=5.4
Run Code Online (Sandbox Code Playgroud)

php1_release=5.5
Run Code Online (Sandbox Code Playgroud)

和下一个:

root@xxxx:/usr/local/directadmin/custombuild# ./build update_data
# [..]
root@xxxx:/usr/local/directadmin/custombuild# ./build php d
# [..]
Run Code Online (Sandbox Code Playgroud)

现在我有php 5.5.19,我可以使用password_hash()函数;)

Has*_*imi 36

  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
Run Code Online (Sandbox Code Playgroud)

保存并关闭(CTRL-X,"y",ENTER).

  1. 做更新:

    sudo apt-get update

您现在将在更新进度的最后一行收到错误消息.

  1. 现在不可能安装PHP,因为Debian只是给出了一个错误,并且说这些新来源没有经过验证,等等等等,公钥无法使用......我发现这个过程非常不明显,我真的不知道为什么会如此更新PHP很复杂,但是,它就是这样......

方法#1 此错误消息的最后一行包含一个键,如"E9C74FEEA2098A6E".复制该密钥(用鼠标标记字符串通常将其复制到剪贴板中)并运行这些命令以验证新的包源(并将您的密钥放在此处):

gpg --keyserver packages.dotdeb.org --recv-key  E9C74FEEA2098A6E
gpg -a --export E9C74FEEA2098A6E | sudo apt-key add -
Run Code Online (Sandbox Code Playgroud)

方法#2(感谢Petr带来这个!)

wget http://www.dotdeb.org/dotdeb.gpg
sudo apt-key add dotdeb.gpg
Run Code Online (Sandbox Code Playgroud)
  1. 再次进行更新:

    sudo apt-get update

  2. 安装最新版本的PHP 5:

    sudo apt-get install php5

  3. 检查已安装的PHP 5版本(phpinfo()仍将显示旧的PHP版本,直到apache重启):

    php -v

最后,重启apache:

sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

顺便说一句,在Debian 6上安装PHP 5.5是不可能的(据我所知)(不需要手动编译源代码).

  • 方法2 one-liner:wget -O - http://www.dotdeb.org/dotdeb.gpg | apt-key add - (4认同)