有馬総一郎のブログ

(彼氏の事情)

2025年01月09日 18:29:01 JST - 3 minute read - Linux

NextCloud Severを初期化する

前回、外付けHDDのデータが吹き飛んだことを書いたが、それで Nextcloudを初期化して、データを取り込み直すことにした。バージョンは Nextcloud Hub 8 (29.0.8)

NextCloud Severの初期化のやりかたについては Resetting Nextcloud | Wild Tech ‘Garden’を参考にした。

  1. データベースPostgreSQLにログインする

    $ docker exec -i -t postgresql-server /bin/bash
    8c2dfbab8532:/# su postgres -c "psql"
    
  2. Nextcloudのデータベースを削除する

    postgres=# \l
                                                             List of databases
        Name     |   Owner   | Encoding | Locale Provider |   Collate   |    Ctype    | ICU Locale | ICU Rules |   Access privileges   
    -------------+-----------+----------+-----------------+-------------+-------------+------------+-----------+-----------------------
     joplin      | joplin    | UTF8     | libc            | ja_JP.UTF-8 | ja_JP.UTF-8 |            |           | 
     miniflux    | miniflux  | UTF8     | libc            | en_US.utf8  | en_US.utf8  |            |           | 
     nextclouddb | nextcloud | UTF8     | libc            | ja_JP.UTF-8 | ja_JP.UTF-8 |            |           | 
     postgres    | postgres  | UTF8     | libc            | en_US.utf8  | en_US.utf8  |            |           | 
     template0   | postgres  | UTF8     | libc            | en_US.utf8  | en_US.utf8  |            |           | =c/postgres          +
                 |           |          |                 |             |             |            |           | postgres=CTc/postgres
     template1   | postgres  | UTF8     | libc            | en_US.utf8  | en_US.utf8  |            |           | =c/postgres          +
                 |           |          |                 |             |             |            |           | postgres=CTc/postgres
    (6 rows)
    
    postgres=# DROP DATABASE nextclouddb;
    DROP DATABASE
    
  3. Nextcloudのデータベース1を再作成する

    postgres=# CREATE DATABASE nextclouddb TEMPLATE template0 ENCODING 'UNICODE';
    CREATE DATABASE
    postgres=# ALTER DATABASE nextclouddb OWNER TO nextcloud;
    ALTER DATABASE
    postgres=# GRANT ALL PRIVILEGES ON DATABASE nextclouddb TO nextcloud;
    GRANT
    postgres=# \q
    
  4. Nextcloudの設定ファイルをバックアップし、再設定する項目を削除する

    $ sudo cp /var/www/nextcloud/config/config.php /var/www/nextcloud/config/config.php_20241228
    $ sudoedit /var/www/nextcloud/config/config.php
    

    instanceidpasswordsaltsecretdbtableprefixinstalled削除 する

    $CONFIG = array (
    ・・・中略・・・
    -  'instanceid' => 'ほげほげ',
    -  'passwordsalt' => 'ほげほげ',
    -  'secret' => 'ほげほげ',
    -  'dbtableprefix' => 'oc_',
    -  'installed' => true,
    
  5. 設定ディレクトリ内にCAN_INSTALLファイルを作成する

    $ sudo touch /var/www/nextcloud/config/CAN_INSTALL
    arimasou16@ubuntu:~$ sudo ls -l /var/www/nextcloud/config/CAN_INSTALL
    合計 1268
    -rw-r--r--  1 root     root           0 12月 28 05:54 CAN_INSTALL
    $ sudo chown www-data:www-data /var/www/nextcloud/config/CAN_INSTALL
    

    作成しないとNextcloudを再インストールしようとしているようです。 しかし、CAN_INSTALLファイルがconfigディレクトリにありません。 続行するには、configフォルダーにCAN_INSTALLファイルを作成してください。と表示された以下のようなエラー画面とこんにちわする。

    Nextcloud
  6. データディレクトリの権限をwww-dataでも読み書きできるようにしておく

  7. nginxサービスを再起動する

ローカルにデータがある場合は、デスクトップアプリを起動して、ログインして、既にある既存のディレクトリを選択する。

Nextcloud
Nextcloud

すると

  • ローカルデータを保持
  • ローカルフォルダーを消去して、クリーン同期を開始します

の選択肢が出るのでローカルデータを保持を選択すれば、めでたく初期化されたNextcloudにデータが同期される。以上。


  1. ユーザは再作成する必要がなかった。作ろうとしたらERROR: role "nextcloud" already existsとなった。 ↩︎