-
Notifications
You must be signed in to change notification settings - Fork 45
Upgrade to PHP 8.0 with Apache
❗ ❗ ❗ This guide is outdated. PHP 8.0 has been discontinued and should no longer be used. ❗ ❗ ❗
We recommend upgrading to PHP 8.3 instead if you're on NC 28 or newer. For Nextcloud 26 or 27, follow the PHP 8.2 guide first. If you're on Nextcloud 24 or 25, follow the PHP 8.1 guide first.
- This tutorial was developed for and tested with DietPi 7.2 on a RaspberryPI.
- This tutorial only works if you use "Apache" as webserver.
Run
dietpi-software
and check the setting for "Webserver Preference". - DietPi may behave differently on other systems.
- Nextcloud 21 is required before upgrading to PHP 8.0.
- This does not work for DietPi Docker. You can't upgrade PHP in a Docker image.
- Make sure to make a backup of your entire DietPi Instance (config, data, etc.) before you do this.
If you're using SSH, log in with ssh root@<your dietpi ip>
.
If you're directly on the device, use sudo su
Execute the following commands on your DietPi to add the repository PHP 8.0 from deb.sury.org:
# Add the PHP PPA from deb.sury.org
apt-get -y install apt-transport-https lsb-release ca-certificates curl
curl -sSL -o /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
apt-get update
Execute the following command on your DietPi to install PHP 8.0:
# Install PHP 8.0
apt-get -y install libapache2-mod-php8.0 php8.0-apcu php8.0-mysql php8.0-xml php8.0-zip php8.0-mbstring php8.0-gd php8.0-curl php8.0-redis php8.0-intl php8.0-bcmath php8.0-gmp php8.0-imagick imagemagick
Execute the following commands on your DietPi to update the Apache configuration:
# Enable the image magick module
phpenmod imagick
# Symlink NCP PHP configuration
ln -s /etc/php/7.3/mods-available/dietpi-nextcloud.ini /etc/php/8.0/mods-available/dietpi-nextcloud.ini
ln -s /etc/php/7.3/mods-available/dietpi.ini /etc/php/8.0/mods-available/dietpi.ini
phpenmod dietpi
phpenmod dietpi-nextcloud
# Configure apache for php8.0
a2dismod php7.3
a2enmod php8.0
# Restart Apache
systemctl restart apache2
# Check for updates
ncc update:check
# Install updates of the passwords app if available
ncc app:update passwords
By default, your DietPi should now be using PHP 8.0.
You can check this by running php -v
. The output should look like this:
root@DietPi:~# php -v
PHP 8.0.3 (cli) (built: Mar 5 2021 08:38:30) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.3, Copyright (c) Zend Technologies
with Zend OPcache v8.0.3, Copyright (c), by Zend Technologies
If it doesn't, you should use update-alternatives --config php
and set PHP 8.0 as default:
root@DietPi:~# update-alternatives --config php
There are 2 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php8.0 80 auto mode
1 /usr/bin/php7.3 73 manual mode
2 /usr/bin/php7.4 74 manual mode
3 /usr/bin/php8.0 80 manual mode
Press <enter> to keep the current choice[*], or type selection number:0
- It can take a day before app updates show up in the apps store