Nextcloud

From BITPlan Wiki
Jump to navigation Jump to search

Finding duplicate uids

select count(*),regexp_substr(carddata,"FN:[a-zA-Z. ]+") as name,uid from oc_cards group by uid having(count(*)>1) order by 1;

Upgrading from owncloud 9.0.0 to latest Nextcloud

Its 2017-12 and we had been using owncloud 9.0.0 for some time on our old server. Now we wanted to migrate to Nextcloud.

Step 1

Copying everything from old server to new server

/usr/share$ tar cvfz owncloud.tgz owncloud/
  1. copy the tgz file to the new server and unpack at /usr/share
  2. to a mysqlump of the owncloud mysql database on the old server
  3. create a new owncloud mysql database on the new server
  4. use the dump to restore the data on the new server
  5. copy the apache configuration from the old server to the new server and activate it
  6. modify the config.php to fit the new server

At this point things got frustrating We ran into the owncloud issues:

Internal Server Error
The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.
Technical details
    Remote Address:
    Request ID: ...
root@server:/usr/share/owncloud/data# tail -1 owncloud.log 
{"reqId":"...","remoteAddr":"","app":"index","message":"Exception: {\"Exception\":\"Exception\",\"Message\":\"The requested uri() cannot be processed by the script '\\\/owncloud\\\/index.php')\",\"Code\":0,\"Trace\":\"#0 \\\/usr\\\/share\\\/owncloud\\\/lib\\\/private\\\/appframework\\\/http\\\/request.php(636): OC\\\\AppFramework\\\\Http\\\\Request->getRawPathInfo()\\n#1 \\\/usr\\\/share\\\/owncloud\\\/lib\\\/base.php(828): OC\\\\AppFramework\\\\Http\\\\Request->getPathInfo()\\n#2 \\\/usr\\\/share\\\/owncloud\\\/index.php(39): OC::handleRequest()\\n#3 {main}\",\"File\":\"\\\/usr\\\/share\\\/owncloud\\\/lib\\\/private\\\/appframework\\\/http\\\/request.php\",\"Line\":610}","level":3,"time":"2017-12-28T09:06:17+00:00"}

That was a known issue that seems not to be fixed - the bug report was simply closed:

So we deciced to migrate/upgrade to Nextcloud

Step 2 - migration to nextcloud

We followed the instructions at:

Which worked like a charm.

Current version is 9.0.0.
Migration to Nextcloud 9.0.58 available. 

sudo -u www-data php occ upgrade
Nextcloud is already latest version

We had to replace the contacts and calendar apps from

Step 3 move to /usr/share/nextcloud

move the owncloud directory

mv /usr/share/owncloud /usr/share/nextcloud

update apache configuration

#
# nextcloud Server configuration
#  2017-12-28 nextcloud upgrade to version 10
#  
<VirtualHost *:80> 
  ServerName nextcloud.yourdomain.com 
  DocumentRoot /usr/share/nextcloud

  <Directory /usr/share/nextcloud/>
    Options +FollowSymLinks
    AllowOverride All
    <IfVersion < 2.3>
        order allow,deny
        allow from all
    </IfVersion>
    <IfVersion >= 2.3>
        Require all granted
    </IfVersion>
  </Directory>
  ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
  CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
</VirtualHost>

nextcloud config.php

<?php
$CONFIG = array (
  'updatechecker' => false,
  'instanceid' => 'see config.php',
  'passwordsalt' => 'see config.php',
  'secret' => 'see config.php',
  'trusted_domains' => 
  array (
    0 => 'nextcloud.bitplan.com',
  ),
  'datadirectory' => '/usr/share/nextcloud/data',
  'overwrite.cli.url' => 'http://nextcloud.bitplan.com',
  'dbtype' => 'mysql',
  'version' => '9.0.58.1',
  'logtimezone' => 'UTC',
  'installed' => true,
  'maintenance' => false,
  'dbname' => 'owncloud',
  'dbhost' => '127.0.0.1',
  'dbuser' => 'owncloud',
  'dbpassword' => 'see config.php',
  'theme' => '',
  'loglevel' => 2,
  'htaccess.RewriteBase' => '/',
  'appstore.experimental.enabled' => true,
);

Step 4 upgrading from version 9 to 12

Since the major upgrades need downloading one major version after another from https://download.nextcloud.com/server/releases we decided to write a helper script.

You might want to download the helper script and adapt it to your settings.

The script will attempt to find out your major version with an occ command. Each time you run the script it will do the steps from https://intux.de/2016/08/upgrade-nextcloud-9-0-50-10-0-0/ automatically.

Before each step you might want to

  1. backup your database - this important since there is no automatic downgrade - if you'd like to get the old state back you need to rename the backup version e.g. /usr/share/nextcloud.9 and get your database content back to the old state

After each step you might want to

  1. run the upgrade by visiting your nextcloud url and watch that things work ok.

We had to run the script three times

  1. start from 9 => 9.0.58
  2. to upgrade from 9 to 10 => 10.0.6
  3. to upgrade from 10 to 11 => 11.0.6
  4. to upgrade from 11 to 12 => 12.0.4

Step 5 reinstalling apps

/usr/local/src/nextcloud/# wget https://github.com/nextcloud/contacts/releases/download/v2.0.1/contacts.tar.gz
/usr/local/src/nextcloud/# wget https://github.com/nextcloud/calendar/releases/download/v1.5.7/calendar.tar.gz
/usr/share/nextcloud/apps# tar xvfz /usr/local/src/nextcloud/calendar.tar.gz 
/usr/share/nextcloud/apps# tar xvfz /usr/local/src/nextcloud/contacts.tar.gz 
/usr/share/nextcloud/apps# chown -R www-data.www-data contacts
/usr/share/nextcloud/apps# chown -R www-data.www-data calendar

reactivate via nextcloud web interface

/index.php/settings/apps?category=installed#

Further upgrades

As of 2019-05 the script still works to

  1. 12->13
  2. 13->14
  3. 14->15

were the next steps we tested according to https://docs.nextcloud.com/server/16/admin_manual/release_schedule.html