我需要将 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”时使用的二进制文件。