Benutzer-Werkzeuge

Webseiten-Werkzeuge


wiki:web_services:strato_owncloud:uebersicht

Cloud-Service unter DEINER Kontrolle!

Nextcloud@Strato (Oktober 2026)

Update Script (all-in-one)

| update_nextcloud.sh
#!/bin/bash
 
NCURL="https://download.nextcloud.com/server/releases/"
NEWVERSION="35.0.2"
 
 
NEWFILENAME="nextcloud-${NEWVERSION}.tar.bz2"
NEWVERSIONURL="${NCURL}${NEWFILENAME}"
 
OLDVERSION=`cat nextcloud/version.php | grep -i VersionString | cut -d"'" -f2`
echo "DEBUG: Old version: ${OLDVERSION}"
ARCHIVDIR="Archiv/${OLDVERSION}"
 
NCDATADIR="nextcloud_data"
NCBASEDIR="nextcloud"
NCCONFIGDIR="${NCBASEDIR}/config"
#echo "DEBUG: Config directory: ${NCBASEDIR}/config"
 
MARIADBUSER="dbuxxxxxx"
MARIADBPW="PLACE_YOUR_PASSWORD_HERE"
MARIADBHOST="DB-HOSTNAME-HERE"
MARIADB="dbsXXXXXXXX"
 
MAINTENACE_DISABLE="'maintenance' => false,"
MAINTENACE_ENABLE="'maintenance' => true,"
 
# Functions ##########################################################
 
GET_NEW_NC_VERSION ()
{
  cd ~
  echo "GET new version: $NEWVERSIONURL ..."
  echo "Change directory to \"~tmp\""
  cd tmp
  if [ -d "nextcloud" ]; then
    echo "remove old nextcloud folder"
    rmdir nextcloud
  else
    echo "no old nextcloud folder to remove"
  fi
  echo "Start downloading new Version: $NEWVERSIONURL"
  wget $NEWVERSIONURL
  echo "Uncompressing $NEWFILENAME ..."
  tar xjf $NEWFILENAME
  cd ~
}
 
CREATE_BACKUP ()
{
  cd ~
  echo "Creating Archive for old Version: $OLDVERSION ..."
  echo "Create new directory: $ARCHIVDIR"
    if [ -d $ARCHIVDIR ]; then
      echo "Archive directory $ARCHIVDIR already exsists."
    else
      echo "Create archive directory: $ARCHIVDIR."
      mkdir -p $ARCHIVDIR
    fi
  echo "Backup (cp) ${NCCONFIGDIR}/ to ${ARCHIVDIR}/"
  cp -r ${NCCONFIGDIR} ${ARCHIVDIR}/
  echo "Backup (tar) ${NCDATADIR} to ${ARCHIVDIR}/"
  tar --totals -zcf ${ARCHIVDIR}/`date +%Y%m%d-%H%M`_nextcloud_data_backup.tar.gz ${NCDATADIR}
  echo "Backup (tar) ${NCBASEDIR} to ${ARCHIVDIR}/"
  tar --totals -zcf ${ARCHIVDIR}/`date +%Y%m%d-%H%M`_nextcloud_backup.tar.gz ${NCBASEDIR}
  echo "Create MySQL dump to $ARCHIVDIR"
  mysqldump --single-transaction --no-tablespaces -u $MARIADBUSER -p$MARIADBPW -h $MARIADBHOST $MARIADB | gzip > $ARCHIVDIR/MariaDB-Backup_`date +%Y%m%d-%H%M`.sql.gz
  mysqldump --single-transaction --no-tablespaces -u $MARIADBUSER -p$MARIADBPW -h $MARIADBHOST $MARIADB > $ARCHIVDIR/MariaDB-Backup_`date +%Y%m%d-%H%M`.sql
  echo "Backup done!"
}
 
MAINTENANCE_MODE ()
{
cd ~
 if [ $1 == "enable" ]; then
   echo "Enable NC maintenance mode"
   sed -i "s/$MAINTENACE_DISABLE/$MAINTENACE_ENABLE/g" $NCCONFIGDIR/config.php
 else
   echo "Disable NC maintenance mode"
   sed -i "s/$MAINTENACE_ENABLE/$MAINTENACE_DISABLE/g" $NCCONFIGDIR/config.php
 fi
}
 
REPLACE_NC ()
{
  cd ~
  echo "Rename ${NCBASEDIR} to ${NCBASEDIR}_${OLDVERSION}"
  mv  ${NCBASEDIR} ${NCBASEDIR}_${OLDVERSION}
  echo "Move new version to ${NCBASEDIR}"
  mv tmp/nextcloud dokuwiki/
  mkdir -p dokuwiki/nextcloud/tmp
  echo "Copy \"config.php\" to ${NCBASEDIR}"
  cp ${NCBASEDIR}_${OLDVERSION}/config/config.php ${NCBASEDIR}/config/
}
 
# Main script #########################################################
 
GET_NEW_NC_VERSION
CREATE_BACKUP
MAINTENANCE_MODE "enable"
REPLACE_NC
MAINTENANCE_MODE "disable"
echo "Script DONE!"

OOC Kommando per CLI (SSH) ausführen

Quelle: https://schneidr.de/2021/09/php-auf-der-kommandozeile-bei-strato/

ssh strato
cd <nextcloud_root_folder>
# fehlende Tabelleneinträge korrigieren:
#/opt/RZphp80/bin/php-cli path/to/nextcloud/occ db:add-missing-indices
/opt/RZphp82/bin/php-cli path/to/nextcloud/occ db:add-missing-indices

Fehlers ''Enable HTTP Strict Transport Security'' beheben

Zeile Header always set Strict-Transport-Security „max-age=15552000; includeSubDomains“ einfügen
Siehe Nextcloud Hardening and security guidance

mcedit nextcloud/.htaccess
<IfModule mod_headers.c>
  <IfModule mod_setenvif.c>
    <IfModule mod_fcgid.c>
       SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
       RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
    </IfModule>
    <IfModule mod_proxy_fcgi.c>
       SetEnvIfNoCase Authorization "(.+)" HTTP_AUTHORIZATION=$1
    </IfModule>
    Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
  </IfModule>
...  
wiki/web_services/strato_owncloud/uebersicht.txt · Zuletzt geändert: von wikimaster