Nie można zainstalować php5 na Ubuntu 16.04

53

więc niedawno zainstalowałem swoje pierwsze Ubuntu, a dokładniej codzienną wersję 16.04, na moim nowym laptopie, ponieważ sprzęt był nowszy w wersji 15.10. Teraz jestem w trakcie konfiguracji i chcę zainstalować php5 i niektóre rozszerzenia.

Po uruchomieniu sudo apt-get install libapache2-mod-php5pojawia się komunikat o błędzie, że nie ma dostępnego pakietu instalacyjnego dla php5 i libapache2.

Komunikat o błędzie jest w języku niemieckim, więc wątpię, aby to pomogło, ale i tak jest. :-) E: For package »libapache2-mod-php5« existiert kein Installationskandidat.

Czy muszę dodać repozytorium apt-get? A co robię źle?

użytkownik529857
źródło

Odpowiedzi:

76

TL; DR: Jeśli chcesz zostać z php5, musisz zostać w Ubuntu 14.04 LTS

Korzystanie z PHP 7.0 na Ubuntu 16.04 LTS

Ubuntu 16.04 przeszedł na PHP 7.0 z nową infrastrukturą dla pakietu PHP. Więc nie, nie możesz zainstalować php5 na Ubuntu 16.04, ale możesz zainstalować pakiety PHP 7.0 za pomocą:

apt-get install libapache2-mod-php

Spowoduje to zainstalowanie pakietu wirtualnego, który zależy od najnowszej wersji PHP i zostanie pobrane libapache2-mod-php7.0jako zależność.

Jeśli szukasz rozszerzeń, zawsze używaj również wersji bez wersji (np. php-apcuZamiast php7.0-apcu), ponieważ rozszerzenia PECL są pakowane bez wersji, aby umożliwić płynne uaktualnienia.

Użycie PHP PPA do zainstalowania PHP 5.6 z PHP 7.0

Istnieje możliwość jednoczesnej instalacji pakietów PHP 5.6 ppa:ondrej/php.

Aby uzyskać więcej informacji, zobacz tę odpowiedź: https://askubuntu.com/a/762161/309221

Wyciąg z linku powyżej:

Zakładając, że libapache2-mod-phpjest to odpowiedni sposób na włączenie PHP w Apache, możesz postępować w ten sposób:

sudo add-apt-repository ppa:ondrej/php

sudo apt-get update

sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0

Przełącz wersję PHP (Apache):

  • z php5.6 na php7.0:
    sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart

  • z php7.0 na php5.6:
    sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart

oerdnj
źródło
2
Nie, w repozytoriach Xenial nie ma pakietów PHP 5.x. Tylko w PPA.
oerdnj
Wygląda na to, że masz rację: bugs.launchpad.net/ubuntu/+source/php5/+bug/1522422
NoBugs
Kiedy przełączam się na php5.6, pojawia się błąd „Zadanie dla apache2.service nie powiodło się, ponieważ proces sterowania zakończył się z kodem błędu. Szczegółowe informacje można znaleźć w„ systemctl status apache2.service ”i„ journalctl -xe ”.”.
lyhong
A co mówi dziennik?
oerdnj
znalazłem coś takiego: apache2: Błąd składni w linii 140 pliku /etc/apache2/apache2.conf: Błąd składni w linii 3 / e
lyhong
25

EDYCJA: zaakceptowana odpowiedź nie mówi wprost, jak współinstalować PHP 5.6 i 7.0, więc chciałem ją rozszerzyć.

Aby uzyskać więcej informacji, zobacz tę odpowiedź: https://askubuntu.com/a/762161/309221

Wyciąg z linku powyżej:

Zakładając, że libapache2-mod-phpjest to odpowiedni sposób na włączenie PHP w Apache, możesz postępować w ten sposób:

sudo add-apt-repository ppa:ondrej/php

sudo apt-get update

sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0

Przełącz wersję PHP (Apache):

  • z php5.6 na php7.0:
    sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart

  • z php7.0 na php5.6:
    sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart

FlavioEscobar
źródło
1
FYI: PPA, z którego korzystasz, jest utrzymywane przez osobę, która napisała zaakceptowaną odpowiedź. I ostatni wiersz w tej odpowiedzi: „Istnieje możliwość wspólnej instalacji pakietów PHP 5.6 za pomocą ppa: ondrej / php”. Zauważ, że nie instalujesz również pakietów php5, ale php5.6
muru
1
Istnieje wiele różnic w pakiecie i lokalizacji plików konfiguracyjnych, które każdy, kto szuka starych pakietów php5, byłby zaskoczony nowymi.
muru
Zredagowałem swoją odpowiedź, więc nie oznacza to, że zaakceptowana odpowiedź była nieprawidłowa, a jedynie ją rozszerza.
FlavioEscobar
@NoBugs Ma spakowane rozszerzenie imagick. Proszę przestańcie wypluwać rzeczy bez co najmniej podstawowego sprawdzania, czy są prawdziwe, czy nie.
oerdnj
@FlavioEscobar Połączyłem Twoje zmiany w mojej odpowiedzi. Dziękujemy za udzielenie odpowiedzi.
oerdnj