奇怪:同一台服务器上有 2 个 php 版本

奇怪:同一台服务器上有 2 个 php 版本

我需要将 php 5.4 升级到 5.6 才能使用我的框架 magento 2。我应用以下命令:

echo "deb http://packages.dotdeb.org wheezy-php56 all" >> /etc/apt/sources.list.d/dotdeb.list echo "deb-src http://packages.dotdeb.org wheezy-php56 all" >> /etc/apt/sources.list.d/dotdeb.list wget http://www.dotdeb.org/dotdeb.gpg -O- | apt-key add - apt-get update apt-get install php5-cli php5-fpm

现在可以了,我在 SSH 中已经可以使用了:

# php -v
PHP 5.6.30-1~dotdeb+7.1 (cli) (built: Jan 21 2017 14:50:59)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

但是 Magento 2 不起作用,当我在 index.php 中输入 echo phpversion(); 时,我得到的是这个版本!5.4.45-0+deb7u5

我使用的是 Debian,我不明白如何在同一台服务器上安装另外两个 php 版本

你能帮助我吗 ?

编辑:

/etc/apache2/mods-available 的内容:

actions.conf          deflate.conf               php5_cgi.load.dpkg-remove
actions.load          deflate.load               php5.conf
alias.conf            dir.conf                   php5.conf.dpkg-new
alias.load            dir.load                   php5.load
asis.load             disk_cache.conf            php5.load.dpkg-new
auth_basic.load       disk_cache.load            proxy_ajp.load
auth_digest.load      dump_io.load               proxy_balancer.conf
authn_alias.load      env.load                   proxy_balancer.load
authn_anon.load       expires.load               proxy.conf
authn_dbd.load        ext_filter.load            proxy_connect.load
authn_dbm.load        file_cache.load            proxy_ftp.conf
authn_default.load    filter.load                proxy_ftp.load
authn_file.load       headers.load               proxy_http.load
authnz_ldap.load      ident.load                 proxy.load
authz_dbm.load        imagemap.load              proxy_scgi.load
authz_default.load    include.load               reqtimeout.conf
authz_groupfile.load  info.conf                  reqtimeout.load
authz_host.load       info.load                  rewrite.load
authz_owner.load      ldap.conf                  setenvif.conf
authz_user.load       ldap.load                  setenvif.load
autoindex.conf        log_forensic.load          speling.load
autoindex.load        mem_cache.conf             ssl.conf
cache.load            mem_cache.load             ssl.load
cern_meta.load        mime.conf                  status.conf
cgid.conf             mime.load                  status.load
cgid.load             mime_magic.conf            substitute.load
cgi.load              mime_magic.load            suexec.load
charset_lite.load     negotiation.conf           unique_id.load
dav_fs.conf           negotiation.load           userdir.conf
dav_fs.load           php5_cgi.conf.dpkg-new     userdir.load
dav.load              php5-cgi.conf.dpkg-new     usertrack.load
dav_lock.load         php5_cgi.conf.dpkg-remove  vhost_alias.load
dbd.load              php5_cgi.load.dpkg-new

/etc/apache2/mods-enabled 的内容:

alias.conf            autoindex.load  mime.conf         setenvif.conf
alias.load            cgi.load        mime.load         setenvif.load
auth_basic.load       deflate.conf    negotiation.conf  ssl.conf
authn_file.load       deflate.load    negotiation.load  ssl.load
authz_default.load    dir.conf        php5.conf         status.conf
authz_groupfile.load  dir.load        php5.load         status.load
authz_host.load       env.load        reqtimeout.conf
authz_user.load       expires.load    reqtimeout.load
autoindex.conf        headers.load    rewrite.load

答案1

在默认安装中,php 是安装为 apache-module。例如软件包 libapache2-mod-php5

将 php 包含到 apache 的其他可能性可能是 cgi、fast-cgi、fcgid……(这里您必须在 *cgi*-config 中搜索 php-binary 的路径。但我猜您正在使用 php 作为 apache 模块,因此请检查以下内容。

搜索 php 包:

# dpkg -l | grep php
ii  libapache2-mod-php5                      5.6.29-1~dotdeb+7.1 [...]

如果你没有这个版本号,检查软件包是否从 dotdebian-repository 安装.(默认选择安装的版本在版本号前标有***)

您可以使用 apt-cache 检查从哪个存储库安装的包。

# apt-cache policy libapache2-mod-php5

可以使用 -t 开关从显式存储库安装软件包

# apt-get -t wheezy-php56 install libapache2-mod-php5

命令行上的 php 怎么样?

当您在命令行上运行“php”时,另一个二进制文件被执行。

找出使用了哪个二进制文件以及安装了哪个软件包:

# dpkg -S $(readlink -f $(which php))
php5-cli: /usr/bin/php5

在这个例子中,php5-cli 包提供了在控制台中输入“php”时使用的二进制文件。

相关内容