0

I need to upgrade php 5.4 to 5.6 to use my framework magento 2. I apply these commands :

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

It works I have that now in 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

But Magento 2 does not works and when I put echo phpversion(); in the index.php, I have this version ! 5.4.45-0+deb7u5

I am on debian and I do not understand how I can have 2 other php versions on the same server

Can you help me ?

EDIT:

Content of /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

Content of /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
  • Take a look at which version of PHP Apache is configured for. Check in /etc/apache2/mods-enabled vs. what is in mods-available, and a2enmod/a2dismod as needed – ivanivan Mar 07 '17 at 18:28
  • in /etc/apache2/mods-enabled/php5.load : LoadModule php5_module /usr/lib/apache2/modules/libphp5.so In /mods-available/php5.load LoadModule php5_module /usr/lib/apache2/modules/libphp5.so – user3908398 Mar 08 '17 at 21:37
  • The content of the actual file will be the same between mods-available and mods-enabled - the enabled are just symlinks back to -available. But if you get a directory listing, are there any other php related modules in -available? Alternatively use dpkg to show a listing of what files the php56 package(s) own – ivanivan Mar 08 '17 at 21:44
  • I add folder content in top subject, I think there is php5_cgi and php5 But I do not know which one I must delete and how – user3908398 Mar 08 '17 at 22:37
  • Gentoo allows to have different PHP versions on a single server, just saying :) – Anubioz Mar 08 '17 at 22:43
  • yes but i want just 1 version the 5.6 – user3908398 Mar 10 '17 at 00:54

1 Answers1

0

In default installation, php is installed as apache-module. e.g. package libapache2-mod-php5

other possibilities to include php to apache could be cgi, fast-cgi, fcgid... (here you have to search in the *cgi*-config for the path to the php-binary. But I guess you are using php as apache module so check the following.

search for php-packages:

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

if you have not this version number, check if the package is installed from the dotdebian-repository. (the default selected version for install is marked with *** before the version number)

You could check from which repository a package would be installed with apt-cache.

# apt-cache policy libapache2-mod-php5

Installing a package from an explicit repository could be done with the -t switch

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

what about the php on commandline?

when you run "php" on commandline another binary is executed.

find out which binary is used and which packaged installed it:

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

In this example, the package php5-cli ships the binary used when typing "php" in the console.

Maxx Flow
  • 66
  • 2