From 1c3eba50308ec3d87d59921eb312733ddd8177f9 Mon Sep 17 00:00:00 2001 From: Pablo Zmdl Date: Thu, 28 May 2026 14:51:53 +0200 Subject: [PATCH] Run PHP commands as www-data Signed-off-by: Pablo Zmdl --- Containers/nextcloud/upgrade-latest-major.sh | 33 +++++++++++--------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/Containers/nextcloud/upgrade-latest-major.sh b/Containers/nextcloud/upgrade-latest-major.sh index 20fceb89..f1f2e0df 100644 --- a/Containers/nextcloud/upgrade-latest-major.sh +++ b/Containers/nextcloud/upgrade-latest-major.sh @@ -1,38 +1,43 @@ #!/bin/bash +PHP_CLI="php" +if [[ "$EUID" = 0 ]]; then + PHP_CLI="sudo -u www-data $PHP_CLI" +fi + # shellcheck disable=SC2016 -image_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')" +image_version="$($PHP_CLI -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')" IMAGE_MAJOR="${image_version%%.*}" -php /var/www/html/occ config:system:set updatedirectory --value="/nc-updater" -INSTALLED_AT="$(php /var/www/html/occ config:app:get core installedat)" +$PHP_CLI /var/www/html/occ config:system:set updatedirectory --value="/nc-updater" +INSTALLED_AT="$($PHP_CLI /var/www/html/occ config:app:get core installedat)" if [ -n "${INSTALLED_AT}" ]; then # Set the installedat to 00 which will allow to skip staging and install the next major directly # shellcheck disable=SC2001 INSTALLED_AT="$(echo "${INSTALLED_AT}" | sed "s|[0-9][0-9]$|00|")" - php /var/www/html/occ config:app:set core installedat --value="${INSTALLED_AT}" + $PHP_CLI /var/www/html/occ config:app:set core installedat --value="${INSTALLED_AT}" fi -php /var/www/html/updater/updater.phar --no-interaction --no-backup -if ! php /var/www/html/occ -V || php /var/www/html/occ status | grep maintenance | grep -q 'true'; then +$PHP_CLI /var/www/html/updater/updater.phar --no-interaction --no-backup +if ! $PHP_CLI /var/www/html/occ -V || $PHP_CLI /var/www/html/occ status | grep maintenance | grep -q 'true'; then echo "Installation of Nextcloud failed!" touch "$NEXTCLOUD_DATA_DIR/install.failed" exit 1 fi # shellcheck disable=SC2016 -installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')" +installed_version="$($PHP_CLI -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')" INSTALLED_MAJOR="${installed_version%%.*}" # If a valid upgrade path, trigger the Nextcloud built-in Updater if ! [ "$INSTALLED_MAJOR" -gt "$IMAGE_MAJOR" ]; then - php /var/www/html/updater/updater.phar --no-interaction --no-backup - if ! php /var/www/html/occ -V || php /var/www/html/occ status | grep maintenance | grep -q 'true'; then + $PHP_CLI /var/www/html/updater/updater.phar --no-interaction --no-backup + if ! $PHP_CLI /var/www/html/occ -V || $PHP_CLI /var/www/html/occ status | grep maintenance | grep -q 'true'; then echo "Installation of Nextcloud failed!" # TODO: Add a hint here about what to do / where to look / updater.log? touch "$NEXTCLOUD_DATA_DIR/install.failed" exit 1 fi fi -php /var/www/html/occ config:system:set updatechecker --type=bool --value=true -php /var/www/html/occ app:enable nextcloud-aio --force -php /var/www/html/occ db:add-missing-columns -php /var/www/html/occ db:add-missing-primary-keys -yes | php /var/www/html/occ db:convert-filecache-bigint +$PHP_CLI /var/www/html/occ config:system:set updatechecker --type=bool --value=true +$PHP_CLI /var/www/html/occ app:enable nextcloud-aio --force +$PHP_CLI /var/www/html/occ db:add-missing-columns +$PHP_CLI /var/www/html/occ db:add-missing-primary-keys +yes | $PHP_CLI /var/www/html/occ db:convert-filecache-bigint