Как установить php5.6 в Ubuntu 16.04 с php7?

У меня возникла проблема, несколько месяцев назад я обновил ubuntu 14.04 до 16.04, и у моего php5.6 от LAMP были проблемы с работой рядом с php7, поэтому я его удалил. Теперь с новыми проектами все в порядке, но если я пытаюсь обновить композитор в старых проектах, консоль возвращает ошибку... Содержание ниже:

Problem 1
    - Installation request for simpay/api_client dev-master -> satisfiable by simpay/api_client[dev-master].
    - simpay/api_client dev-master requires ext-curl ^0.0.0 -> the requested PHP extension curl has the wrong version (7.0.8-0ubuntu0.16.04.3) installed.

  To enable extensions, verify that they are enabled in those .ini files:
    - /etc/php/7.0/cli/php.ini
    - /etc/php/7.0/cli/conf.d/10-mysqlnd.ini
    - /etc/php/7.0/cli/conf.d/10-opcache.ini
    - /etc/php/7.0/cli/conf.d/10-pdo.ini
    - /etc/php/7.0/cli/conf.d/15-xml.ini
    - /etc/php/7.0/cli/conf.d/20-calendar.ini
    - /etc/php/7.0/cli/conf.d/20-ctype.ini
    - /etc/php/7.0/cli/conf.d/20-curl.ini
    - /etc/php/7.0/cli/conf.d/20-dom.ini
    - /etc/php/7.0/cli/conf.d/20-exif.ini
    - /etc/php/7.0/cli/conf.d/20-fileinfo.ini
    - /etc/php/7.0/cli/conf.d/20-ftp.ini
    - /etc/php/7.0/cli/conf.d/20-gd.ini
    - /etc/php/7.0/cli/conf.d/20-gettext.ini
    - /etc/php/7.0/cli/conf.d/20-iconv.ini
    - /etc/php/7.0/cli/conf.d/20-json.ini
    - /etc/php/7.0/cli/conf.d/20-mbstring.ini
    - /etc/php/7.0/cli/conf.d/20-mysqli.ini
    - /etc/php/7.0/cli/conf.d/20-pdo_mysql.ini
    - /etc/php/7.0/cli/conf.d/20-phar.ini
    - /etc/php/7.0/cli/conf.d/20-posix.ini
    - /etc/php/7.0/cli/conf.d/20-readline.ini
    - /etc/php/7.0/cli/conf.d/20-shmop.ini
    - /etc/php/7.0/cli/conf.d/20-simplexml.ini
    - /etc/php/7.0/cli/conf.d/20-sockets.ini
    - /etc/php/7.0/cli/conf.d/20-sysvmsg.ini
    - /etc/php/7.0/cli/conf.d/20-sysvsem.ini
    - /etc/php/7.0/cli/conf.d/20-sysvshm.ini
    - /etc/php/7.0/cli/conf.d/20-tokenizer.ini
    - /etc/php/7.0/cli/conf.d/20-wddx.ini
    - /etc/php/7.0/cli/conf.d/20-xmlreader.ini
    - /etc/php/7.0/cli/conf.d/20-xmlwriter.ini
    - /etc/php/7.0/cli/conf.d/20-xsl.ini
    - /etc/php/7.0/cli/conf.d/20-zip.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Можно будет установить php5.6 без проблем? А сделать алиас например php5? Как это сделать?


person jdoe    schedule 10.01.2017    source источник
comment
вам может потребоваться скомпилировать желаемую версию из исходного кода.   -  person hassan    schedule 11.01.2017


Ответы (1)


Просто установите php5.6 с помощью apt-get. Я получил свои инструкции от здесь. Обязательно используйте репозиторий ondreij ppa. Таким образом, php7.0 и php5.6 устанавливаются рядом как совершенно отдельные пакеты.

У меня новая установка 16.04. Я установил php7.0 и все необходимые расширения. Сегодня я установил php5.6 и сделал псевдонимы для переключения между двумя версиями. Поместите это в ~/.bash_aliases и перезагрузите.

alias enablephp5.6="sudo ln -s -f /usr/bin/php5.6 /etc/alternatives/php"
alias enablephp7.0="sudo ln -s -f /usr/bin/php7.0 /etc/alternatives/php"

Итак, теперь при запуске php из консоли или при использовании composer install вы можете включить правильную версию. Он отлично работает для меня.

Если вам нужны дополнительные расширения php5.6, просто установите их с помощью sudo apt-get install php5.6-<extension>.

person mandarin    schedule 22.02.2017
comment
лучшее решение! Спасибо!! - person jdoe; 01.08.2017