Nextcloud
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/
- copy the tgz file to the new server and unpack at /usr/share
- to a mysqlump of the owncloud mysql database on the old server
- create a new owncloud mysql database on the new server
- use the dump to restore the data on the new server
- copy the apache configuration from the old server to the new server and activate it
- 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:
- https://central.owncloud.org/t/the-requested-uri-login-cannot-be-processed-by-the-script-owncloud-index-php/993
- https://github.com/owncloud/core/issues/24525
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
- https://apps.nextcloud.com/
- https://apps.nextcloud.com/apps/calendar
- https://apps.nextcloud.com/apps/contacts
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
- 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
- run the upgrade by visiting your nextcloud url and watch that things work ok.
We had to run the script three times
- start from 9 => 9.0.58
- to upgrade from 9 to 10 => 10.0.6
- to upgrade from 10 to 11 => 11.0.6
- 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
- 12->13
- 13->14
- 14->15
were the next steps we tested according to https://docs.nextcloud.com/server/16/admin_manual/release_schedule.html