Suche
Suche Menü

PHP 8.1 auf einem Raspberry Pi installieren

Vor kurzem ist die neue PHP Version 8.1 herausgekommen. Hier die Beschreibung wie PHP 8.1 auf einem Raspberry Pi installiert werden kann.

PHP Installieren

Als erstes müssen die entsprechenden Sourcen hinzugefügt werden. Als erstes müssen die GnuPG Keys heruntergeladen werden um die Pakete der Sourcequelle verifizieren zu können:

sudo wget -qO /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

Nun das Repository hinzufügen:

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list

Die Paketliste aktualisieren

sudo apt update

Nun kann PHP 8.1 sowie das Commandozeilen Interface (CLI) und weitere Extensions installiert werden. Der Platzhalter [ExtensionName] muss durch den Namen der jeweiligen Extension ersetzt werden.

sudo apt install -y php8.1-common php8.1-cli php8.1-[ExtensionName]

Beispiel mit gängigen Extensions:

sudo apt install -y php8.1-common php8.1-cli php8.1-mysql php8.1-xml php8.1-curl php8.1-zip php8.1-gd php8.1-imap 

Danach kontrollieren ob die PHP Version auch aktiv ist:

php --version

Mit folgendem Befehl kann geprüft werden, welche PHP Extensions installiert sind:

php -m

PHP in Apache Integrieren

sudo apt install -y libapache2-mod-php8.1

Sollte bereits eine Version von PHP in Apache aktiviert sein, so meldet die Installation

...
Creating config file /etc/php/8.1/apache2/php.ini with new versionlibapache2-mod-php8.1: php8.0 module already enabled, not enabling PHP 8.1

In diesem Fall muss die alte PHP Version deaktiviert werden und die neue Version aktiviert:

sudo a2dismod php8.0
sudo a2enmod php8.1

In diesem Fall ist die alte Verision die PHP Version 8.0.

Nun den Apache Webserver neustarten, damit die Anpassung aktiv wird.

sudo service apache2 restart

PHP Testen

Im public Verzeichnis des Webservers z.B. /var/www/html eine neue Datei phpinfo.php mit folgendem Inhalt erstellen:

<?php
phpinfo();

Nun kann kontrolliert werden, ob die korrekte PHP Version angezeigt wird. Die Datei sollte unbedingt nach dem Testen wieder gelöscht werden, sofern die Seite öffentlich zugänglich ist.

PHP deinstallieren

Wenn PHP wieder komplett entfernt werden soll, müssen folgende Befehle ausgeführt werden:

sudo apt purge --autoremove -y php-common mime-support

GPG Keys und Repositorys entfernen

sudo rm -rf /etc/apt/trusted.gpg.d/php.gpg
sudo rm -rf /etc/apt/sources.list.d/php.list

Weitere verknüpfte Datei entfernen:

sudo rm -rf /var/lib/systemd/timers/stamp-phpsessionclean.timer

8 Kommentare Schreibe einen Kommentar

  1. An sich ein eine sehr gute Beschreibung und es funktionierte auch fast alles… Nur dieser Befehl «sudo apt purge –autoremove -y php-common mime-support» hat nicht nur php deinstalliert sondern so ziemlich alles auf meinem Pi… Gewisse Programme sind weg, andere Programme plötzlich da, das Erscheinungsbild ist komplett anders, … Schade

    Antworten

  2. Hallo,
    wenn ich dieser Anleitung folge kommt es beim restart zur Kernel panic unter 2022-09-22-raspios-bullseye-armhf-lite

    Ausgabe beim install ended mit:
    ….
    apt-listchanges: Reading changelogs…
    (Reading database … 45485 files and directories currently installed.)
    Preparing to unpack …/libpcre2-8-0_10.40-1+0~20220713.16+debian11~1.gbpb6cec5_armhf.deb …
    Unpacking libpcre2-8-0:armhf (10.40-1+0~20220713.16+debian11~1.gbpb6cec5) over (10.36-2+deb11u1) …
    E: Sub-process /usr/bin/dpkg exited unexpectedly
    pi@raspberrypi:~ $ sudo reboot now
    Illegal instruction
    pi@raspberrypi:~ $

    Antworten

    • Mit den vorhandenen Informationen kann ich nicht beurteilen wo der Fehler für die Kernel Panic liegt. Aus meiner eigenen Erfahrung kenne ich das Problem bei der Installation von PHP nicht. Gibt es Logdateien mit weiteren Informationen?

      Antworten

    • Das gleiche Problem habe ich auch. Reproduzierbar. Das Dateisystem ist danach defekt und lässt sich nur noch durch ein vorher erstelltes Image wieder zum Laufen bringen.

      Antworten

  3. Meldungen während sudo apt upgrade:
    Get:31 http://archive.raspberrypi.org/debian bullseye/main armhf vcdbg armhf 1:1 .20230405-1 [213 kB]
    Fetched 115 MB in 55s (2,096 kB/s)
    Reading changelogs… Done
    Extracting templates from packages: 100%
    (Reading database … 43727 files and directories currently installed.)
    Preparing to unpack …/libwbclient0_2%3a4.13.13+dfsg-1~deb11u5_armhf.deb …
    Unpacking libwbclient0:armhf (2:4.13.13+dfsg-1~deb11u5) over (2:4.13.13+dfsg-1~deb11u4) …
    Preparing to unpack …/libpcre3_2%3a8.44-2+0~20210301.9+debian11~1.gbpa278ad_armhf.deb …
    Unpacking libpcre3:armhf (2:8.44-2+0~20210301.9+debian11~1.gbpa278ad) over (2:8.39-13) …
    Setting up libpcre3:armhf (2:8.44-2+0~20210301.9+debian11~1.gbpa278ad) …
    (Reading database … 43727 files and directories currently installed.)
    Preparing to unpack …/libpcre2-8-0_10.40-1+0~20220713.16+debian11~1.gbpb6cec5_armhf.deb …
    Unpacking libpcre2-8-0:armhf (10.40-1+0~20220713.16+debian11~1.gbpb6cec5) over (10.36-2+deb11u1) …
    E: Sub-process /usr/bin/dpkg exited unexpectedly
    egal was ab jetzt eingegeben wird: imer dieser Fehler
    pi@pi2:~ $ ls
    Illegal instruction
    pi@pi2:~ $

    Antworten

  4. Neustart, log der seriellen Konsole:
    [ 5.360160] usb 1-1.5: SerialNumber: 00e04c000001
    [ 11.788036] EXT4-fs (mmcblk0p2): orphan cleanup on readonly fs
    [ 11.799242] EXT4-fs (mmcblk0p2): 2 orphan inodes deleted
    [ 11.808584] EXT4-fs (mmcblk0p2): recovery complete
    [ 12.275920] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
    [ 12.293088] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
    [ 12.313928] devtmpfs: mounted
    [ 12.327332] Freeing unused kernel image (initmem) memory: 436K
    [ 12.336963] Kernel memory protection not selected by kernel config.
    [ 12.347038] Run /sbin/init as init process
    [ 12.867282] Kernel panic – not syncing: Attempted to kill init! exitcode=0x00000004
    [ 12.878856] CPU: 0 PID: 1 Comm: init Not tainted 5.15.84+ #1613
    [ 12.888488] Hardware name: BCM2835
    [ 12.895495] Backtrace:
    [ 12.901466] [] (dump_backtrace) from [] (show_stack+0x20/0x24)
    [ 12.912894] r7:ffffe000 r6:c0ad3e38 r5:00000000 r4:c0add43c
    [ 12.922326] [] (show_stack) from [] (dump_stack_lvl+0x24/0x28)
    [ 12.933795] [] (dump_stack_lvl) from [] (dump_stack+0x14/0x1c)
    [ 12.945252] r5:00000000 r4:c0d7a338
    [ 12.952557] [] (dump_stack) from [] (panic+0xf8/0x300)
    [ 12.963283] [] (panic) from [] (do_exit+0xa6c/0xab0)
    [ 12.973792] r3:00000001 r2:c1112004 r1:00000004 r0:c0ad3e38
    [ 12.983155] r7:ffffe000
    [ 12.989301] [] (do_exit) from [] (do_group_exit+0x4c/0xcc)
    [ 13.000442] r7:00000048
    [ 13.006726] [] (do_group_exit) from [] (get_signal+0x1a4/0xa10)
    [ 13.018478] r5:00000003 r4:0830009f
    [ 13.026041] [] (get_signal) from [] (do_work_pending+0x14c/0x580)
    [ 13.038099] r10:00000000 r9:c1111f44 r8:00000101 r7:c0c2f028 r6:c1111fb0 r5:00000000
    [ 13.050049] r4:ffffe000
    [ 13.056523] [] (do_work_pending) from [] (slow_work_pending+0xc/0x20)
    [ 13.072857] Exception stack(0xc1111fb0 to 0xc1111ff8)
    [ 13.082053] 1fa0: b665122c 00000000 b6651000 00000000
    [ 13.098412] 1fc0: b6650e94 b65d8a45 00000001 bec32f14 bec32f1c b6650e94 b6f7e000 00000000
    [ 13.114834] 1fe0: 00000015 bec32ed0 b6f5c328 b65d89e0 40000030 ffffffff
    [ 13.125782] r10:b6f7e000 r9:c1110000 r8:00000000 r7:00c5387d r6:ffffffff r5:40000030
    [ 13.137980] r4:b65d89e0
    [ 13.144753] —[ end Kernel panic – not syncing: Attempted to kill init! exitcode=0x00000004 ]—

    Antworten

  5. Funktioniert leider nicht 🙁 Ich kann das Package nicht installieren:
    W: Failed to fetch https://packages.sury.org/php/dists/bullseye/InRelease Could not wait for server fd – select (11: Resource temporarily unavailable)
    W: Some index files failed to download. They have been ignored, or old ones used instead.
    Wenn ich die php.list in sources.list.d lösche kann ich wieder ganz normal ein sudo apt update machen, aber dann bekomme ich php8.1 nicht installiert und php8.0 nützt mir nichts weil die nextcloud-Installation eine php8.0.2 version erwartet, aber es nur eine php8.0.1 version für bullseye zur Zeit gibt. Heul

    Antworten

  6. Ich habe mit meinem Pi Zero W (bullseye) das gleiche Problem wie Christoph Bruns und Harald. Zum Glück habe ich ein Backup, das ich wieder herstellen kann, denn das OS scheint durch das Upgrade irreparabel zerschossen zu sein. Auch andere Anleitungen führen zu dem gleichen Problem.

    Soweit ich verstanden habe, unterstützt das PHP8 Paket von deb.sury.org das ARMv6 instruction set nicht [1], wie es u.A. von Pi zero, pico und 1 verwendet wird [2]. Falls die von Euch verwendete HW also in diese Kategorie fällt, habt ihr, was ein Update betrifft, aktuell Pech. Auf neueren Distributionen (Bookworm) sollte PHP8 für ARMv6 unterstützt sein, aber auch nicht immer problemlos..

    [1] https://lindevs.com/install-php-on-raspberry-pi (lindevs Kommentare)
    [2] https://raspberrypi.stackexchange.com/questions/83374/raspberry-pi-zero-w-is-armv6-or-armv7
    [3] https://bugs.launchpad.net/raspbian/+bug/2012833

    Antworten

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.