ownCloudのデータディレクトリ移動に注意

2018年12月11日

ownCloudについての全投稿は/tag/owncloudを参照してほしい。

ownCloudのデータディレクトリの位置を変更した場合は、設定ファイルさえ変更すれば良いと思っていたのだが、そうではなかった。なぜなら、その場所がデータベースに記述されているからである。

以下はMySQLの場合だが、例えばこうなる。

mysql> select * from oc_accounts;
+----+-------+------------+---------------+--------------+-------+------------+------------------+----------------------------+-------+
| id | email | user_id    | lower_user_id | display_name | quota | last_login | backend          | home                       | state |
+----+-------+------------+---------------+--------------+-------+------------+------------------+----------------------------+-------+
|  1 | NULL  | backupOnly | backuponly    | backupOnly   | 5 GB  | 1524916307 | OC\User\Database | /var/www/ocdata/backupOnly |     1 |
...

ownCloudを9.1.5から10.0.10に更新し、ついでにデータディレクトリも/var/lib/owncloud/dataから/var/www/ocdataに移動したのだが、最初は奇怪な現象が起こって困った。それは、

sudo -u apache php /var/www/owncloud/occ file:scan backupOnly

などとすると、どうあっても、

Scanning files for 1 users
Starting scan for user 1 out of 1 (ysugimura)
Home storage for user ysugimura not writable
Make sure you're running the scan command only as the user the web server runs as

というエラーになるのである。

home storage not writable #25755のQ&Aの一番下に答えがあった。結局これは、データベースにユーザのhomeが書き込まれているせいだ。

これを修正したら、正常に動作するようになった。