ownCloud10をCentOS6にTarでインストールする
ownCloudについての全投稿は/tag/owncloudを参照してほしい。
ownCloudのWindowsクライアントが勝手に更新してしまうで書いたように、CentOS6にはLinuxパッケージマネージャを使ってのownCloud10のインストールはできない。また、ownCloud公式でも(製品環境においては)tarからのインストールが推奨されているようだ。
そこでこれを行ってみる。さらに既にインストールして動作しているownCloud9.1.5の環境を引き継がねばならない。
ownCloudのインストール
Download ownCloudから現時点での最新の10.0.10のtarをダウンロードし、/var/www/oc10に展開する。権限を適切に設定する。
旧ownCloudの設定状態と停止
rpmでインストールしたowncloud9.1.5は次のような構成だ。
/etc/cron.d/owncloud
/etc/owncloud
/etc/owncloud/ca-bundle.crt
/etc/owncloud/config.php
/usr/share/doc/owncloud-9.1.5
/usr/share/doc/owncloud-9.1.5/3rdpa
...
/usr/share/owncloud
/usr/share/owncloud/3rdparty
...
/var/lib/owncloud
/var/lib/owncloud/apps
/var/lib/owncloud/data
この他、/etc/httpd/conf.d/に複数のowncloud関連のファイルがインストールされ、修正して自環境に合わせるようにしてある。
停止するには、単純に/etc/httpd/conf.d/内の該当ファイルを別の場所に移動し、httpdをリロードする。
さて、どのように移行したら良いのか?
Linuxでのマニュアルインストール
Manual Installation on Linuxという説明がある。
PHPのアップデート
php7.2への更新を強く推奨するとあるが、必要なのは5.6以上とのこと。とりあえず5.6のままで行く。また、初めてownCloudをインストールする場合はphpの拡張をかなりインストールしないといけないのだが、既に動いていた環境なので、すべて入っているものとして話を進める。
MySQL
MySQL/MariaDBが必要だという。それだけだ。
Apacheの設定
Apacheの設定については大したことは書いていない。
これではさっぱりわからない。
ディレクトリ構造
今回/var/www/oc10にインストールしたが、インストールされたディレクトリ構造は以下である。
total 256
-rw-r--r-- 1 apache apache 8859 Sep 17 20:05 AUTHORS
-rw-r--r-- 1 apache apache 83056 Sep 17 20:05 CHANGELOG.md
-rw-r--r-- 1 apache apache 34520 Sep 17 20:05 COPYING
drwxrwxrwx 22 apache apache 4096 Sep 17 20:05 apps
drwxrwxrwx 2 apache apache 4096 Sep 17 20:05 config
-rw-r--r-- 1 apache apache 4371 Sep 17 20:05 console.php
drwxr-xr-x 17 apache apache 4096 Sep 17 20:07 core
-rw-r--r-- 1 apache apache 5033 Sep 17 20:05 cron.php
-rw-r--r-- 1 apache apache 30898 Sep 17 20:05 db_structure.xml
-rw-r--r-- 1 apache apache 179 Sep 17 20:05 index.html
-rw-r--r-- 1 apache apache 3678 Sep 17 20:05 index.php
drwxr-xr-x 3 apache apache 4096 Sep 17 20:05 l10n
drwxr-xr-x 6 apache apache 4096 Sep 17 20:05 lib
-rwxr-xr-x 1 apache apache 283 Sep 17 20:05 occ
drwxr-xr-x 2 apache apache 4096 Sep 17 20:05 ocs
drwxr-xr-x 2 apache apache 4096 Sep 17 20:05 ocs-provider
-rw-r--r-- 1 apache apache 3201 Sep 17 20:05 public.php
-rw-r--r-- 1 apache apache 5488 Sep 17 20:05 remote.php
drwxr-xr-x 4 apache apache 4096 Sep 17 20:05 resources
-rw-r--r-- 1 apache apache 26 Sep 17 20:05 robots.txt
drwxr-xr-x 12 apache apache 4096 Sep 17 20:05 settings
-rw-r--r-- 1 apache apache 1968 Sep 17 20:05 status.php
drwxr-xr-x 6 apache apache 4096 Sep 17 20:05 updater
-rw-r--r-- 1 apache apache 273 Sep 17 20:07 version.php
どう考えても、このディレクトリ自体をウェブサーバのコンテンツとするらしい。
そして、configの中に以下のファイルがある。
-rw-r--r-- 1 apache apache 2419 Sep 17 20:05 config.apps.sample.php
-rw-r--r-- 1 apache apache 47936 Sep 17 20:05 config.sample.php
これも、どう考えても設定ファイルの雛形であるようだ。おそらく、config.sample.php–>config.php、config.apps.sample.php–>config.apps.phpとするのだろう。
しかし、どう検索してみても、config.apps.phpが何をするものかわからない。とりあえず、これは無視しておく。
config.phpの内容
とりあえずconfig.sample.phpをコピーしてconfig.phpを作成し、所有者等を変更しておく。
これについては以下を参考にする。
のっけに「ほとんどのパラメータは管理画面から設定可能なので、必ずしも編集する必要はない」とある。
そして、configディレクトリ内の*.config.phpという名前のファイルはすべて読み込まれるとある。したがって、config.apps.sample.phpをconfig.apps.phpと名称変更しても、これは読み込まれないらしい。
また、これらはの*.config.phpファイルは同じように扱われることがわかる。特に特定の名前を特別扱いするわけではないらしい。
とりあえずhttpdにホストさせてみる
とりあえず/etc/httpd/conf/httpd.confに適当なドメインで書いてみる。
<VirtualHost *:80>
ServerAdmin webmaster@foobar.com
ServerName foobar.com
DocumentRoot /var/www/oc10/
<Directory /var/www/oc10/>
AllowOverride All
</Directory>
ErrorLog logs/foobar.com-error_log
CustomLog logs/foobar.com-access_log combined
</VirtualHost>
アクセスしてみると、エラーログに以下が出る。
[Fri Nov 23 12:25:31 2018] [error] [client *.*.*.*] PHP Fatal error: Class 'RedisCluster' not found in /var/www/oc10/config/config.php on line 1014
Redis clusterとやらをサポートするためのPHPモジュールが無いらしい。必要無いので、この部分をコメントアウトする。
次はこれだ。
[Fri Nov 23 12:31:57 2018] [error] [client *.*.*.*] PHP Fatal error: Class 'Memcached' not found in /var/www/oc10/config/config.php on line 1034
これも不要なのでコメントアウトする。
この状態で実行すると、今度はブラウザの方に以下が表示される。
App directory "/var/www/oc10/apps-external" not found! Please put the ownCloud apps folder in the ownCloud folder or the folder above. You can also configure the location in the config.php file.
appsはあるが、apps-externalというのは無い。説明によれば、更新ソフトがあった場合にここが使われるという。単純にapps-externalを作成して、権限を設定しておく。
次の画面になる。
「サンプル設定ファイルのコピーのままだ。ドキュメントを読んで設定しろ」と言っている。単純に以下の行を削除する。
'copied_sample_config' => true,
以下の画面になる。
Storage&Databaseをクリックして、以下の画面にする。
さて、ここに旧ownCloudのデータベースとデータを指定したいわけだ。
- 以前の管理者名とパスワード
- 以前のMySQLデータベース名とパスワード
- 以前のデータディレクトリ
以下のように指定してみる。
以下のエラーになる。
これではダメのようだ。
config.phpに設定する
そこで、データディレクトリとデータベース情報をconfig.phpに書いてやることにする。
するとconfig.phpが勝手に書き換わってしまっている。ということは単に旧バージョンのconfig.phpをここに入れれば良いことだったのか?
単純にコピーして、URL等を現在の環境に合わせてやる。versionが9.1.5.2になっているので、これを10.0.10にする。
すると、以下の表示になる。
仰せの通り、/var/www/oc10にて「./occ upgrade」を実行することにする。所有者でないと実行できないので、実際には、「sudo -u apache ./occ upgrade」とする。
以下のようになる。
[root@www8321uj oc10]# sudo -u apache ./occ upgrade
ownCloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
2018-11-23T04:15:13+00:00 Set log level to debug
2018-11-23T04:15:13+00:00 Turned on maintenance mode
2018-11-23T04:15:13+00:00 Repair step: Repair MySQL database engine
2018-11-23T04:15:13+00:00 Repair step: Repair MySQL collation
2018-11-23T04:15:13+00:00 Repair info: All tables already have the correct collation -> nothing to do
2018-11-23T04:15:13+00:00 Repair step: Repair SQLite autoincrement
2018-11-23T04:15:13+00:00 Repair step: Repair orphaned reshare
2018-11-23T04:15:13+00:00 Repair step: Repair duplicate entries in oc_lucene_status
2018-11-23T04:15:13+00:00 Repair info: lucene_status table does not exist -> nothing to do
2018-11-23T04:15:13+00:00 Repair step: Upgrade app code from the marketplace
2018-11-23T04:15:13+00:00 Repair warning: Market app is unavailable for updating of apps. Please update manually, see https://doc.owncloud.org/server/10.0/go.php?to=admin-marketplace-apps
2018-11-23T04:15:13+00:00 Repair warning: You have incompatible or missing apps enabled that could not be found or updated via the marketplace.
2018-11-23T04:15:13+00:00 Repair warning: Please install or update the following apps manually or disable them with:
occ app:disable activity
occ app:disable comments
occ app:disable dav
occ app:disable federatedfilesharing
occ app:disable federation
occ app:disable files
occ app:disable files_external
occ app:disable files_pdfviewer
occ app:disable files_sharing
occ app:disable files_texteditor
occ app:disable files_trashbin
occ app:disable files_versions
occ app:disable files_videoplayer
occ app:disable firstrunwizard
occ app:disable gallery
occ app:disable notifications
occ app:disable provisioning_api
occ app:disable systemtags
occ app:disable templateeditor
2018-11-23T04:15:13+00:00 Repair warning: For manually updating, see https://doc.owncloud.org/server/10.0/go.php?to=admin-marketplace-apps
2018-11-23T04:15:13+00:00 OC\RepairException: Upgrade is not possible
2018-11-23T04:15:13+00:00 Update failed
2018-11-23T04:15:13+00:00 Maintenance mode is kept active
2018-11-23T04:15:13+00:00 Reset log level
どうもアプリが無いと言ってる。ブラウザ画面は以下になる。
config.phpのアプリの場所を旧バージョンのままにしておいたせいらしい。きちんと、「/var/www/oc10/apps」に変更してみる。
[root@www8321uj oc10]# sudo -u apache ./occ upgrade
ownCloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
2018-11-23T04:21:55+00:00 Set log level to debug
2018-11-23T04:21:55+00:00 Repair step: Repair MySQL database engine
2018-11-23T04:21:55+00:00 Repair step: Repair MySQL collation
2018-11-23T04:21:55+00:00 Repair info: All tables already have the correct collation -> nothing to do
2018-11-23T04:21:55+00:00 Repair step: Repair SQLite autoincrement
2018-11-23T04:21:55+00:00 Repair step: Repair orphaned reshare
2018-11-23T04:21:55+00:00 Repair step: Repair duplicate entries in oc_lucene_status
2018-11-23T04:21:55+00:00 Repair info: lucene_status table does not exist -> nothing to do
2018-11-23T04:21:55+00:00 Repair step: Upgrade app code from the marketplace
2018-11-23T04:21:56+00:00 Repair warning: Market app is unavailable for updating of apps. Please update manually, see https://doc.owncloud.org/server/10.0/go.php?to=admin-marketplace-apps
2018-11-23T04:21:56+00:00 Repair warning: You have incompatible or missing apps enabled that could not be found or updated via the marketplace.
2018-11-23T04:21:56+00:00 Repair warning: Please install or update the following apps manually or disable them with:
occ app:disable activity
occ app:disable files_pdfviewer
occ app:disable files_texteditor
occ app:disable gallery
occ app:disable templateeditor
2018-11-23T04:21:56+00:00 Repair warning: For manually updating, see https://doc.owncloud.org/server/10.0/go.php?to=admin-marketplace-apps
2018-11-23T04:21:56+00:00 OC\RepairException: Upgrade is not possible
2018-11-23T04:21:56+00:00 Update failed
2018-11-23T04:21:56+00:00 Maintenance mode is kept active
2018-11-23T04:21:56+00:00 Reset log level
面倒くさい。まだダメだと言ってる。アプリが足りないという。インストールするかdisableにしろと言ってるアプリは以下だ。
occ app:disable activity
occ app:disable files_pdfviewer
occ app:disable files_texteditor
occ app:disable gallery
occ app:disable templateeditor
Upgrade Marketplace Applicationsに説明があるという。
インストールの仕方がわからない。とりあえずdisableの仕方はわかった。
sudo -u apache ./occ app:disable activity
などとしてすべてdisableする。
再度挑戦してみると、今度はうまく行ったようだ。1分程度で終了した。
[root@www8321uj oc10]# sudo -u apache ./occ upgrade
ownCloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
2018-11-23T04:34:29+00:00 Set log level to debug
2018-11-23T04:34:29+00:00 Repair step: Repair MySQL database engine
2018-11-23T04:34:29+00:00 Repair step: Repair MySQL collation
2018-11-23T04:34:29+00:00 Repair info: All tables already have the correct collation -> nothing to do
2018-11-23T04:34:29+00:00 Repair step: Repair SQLite autoincrement
2018-11-23T04:34:29+00:00 Repair step: Repair orphaned reshare
2018-11-23T04:34:29+00:00 Repair step: Repair duplicate entries in oc_lucene_status
2018-11-23T04:34:30+00:00 Repair info: lucene_status table does not exist -> nothing to do
2018-11-23T04:34:30+00:00 Repair step: Upgrade app code from the marketplace
2018-11-23T04:34:30+00:00 [37;41mRepair warning: Market app is unavailable for updating of apps. Please update manually, see https://doc.owncloud.org/server/10.0/go.php?to=admin-marketplace-apps
2018-11-23T04:34:30+00:00 Updating database schema
2018-11-23T04:34:44+00:00 Updated database
2018-11-23T04:34:44+00:00 Updating <federatedfilesharing> ...
2018-11-23T04:34:45+00:00 Updated <federatedfilesharing> to 0.3.1
2018-11-23T04:34:45+00:00 Updating <dav> ...
2018-11-23T04:34:48+00:00 Repair step: Remove invalid calendar and addressbook shares
2018-11-23T04:34:48+00:00 Updated <dav> to 0.4.0
2018-11-23T04:34:48+00:00 Updating <files_sharing> ...
2018-11-23T04:34:50+00:00 Updated <files_sharing> to 0.11.0
2018-11-23T04:34:50+00:00 Updating <files_trashbin> ...
2018-11-23T04:34:51+00:00 Updated <files_trashbin> to 0.9.1
2018-11-23T04:34:51+00:00 Updating <notifications> ...
2018-11-23T04:34:53+00:00 Updated <notifications> to 0.3.5
2018-11-23T04:34:53+00:00 Repair step: Repair mime types
2018-11-23T04:34:53+00:00 Repair step: Detect file cache entries with path that does not match parent-child relationships
2018-11-23T04:34:53+00:00 Repair step: Generate ETags for file where no ETag is present.
2018-11-23T04:34:53+00:00 Repair info: ETags have been fixed for 0 files/folders.
2018-11-23T04:34:53+00:00 Repair step: Clean tags and favorites
2018-11-23T04:34:53+00:00 Repair info: 0 tags of deleted users have been removed.
2018-11-23T04:34:53+00:00 Repair info: 0 tags for delete files have been removed.
2018-11-23T04:34:53+00:00 Repair info: 0 tag entries for deleted tags have been removed.
2018-11-23T04:34:53+00:00 Repair info: 1 tags with no entries have been removed.
2018-11-23T04:34:53+00:00 Repair step: Drop old database tables
2018-11-23T04:34:53+00:00 Drop old database tables
2018-11-23T04:34:53+00:00
2018-11-23T04:34:53+00:00 Starting ...
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: calendar_calendars
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: calendar_objects
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: calendar_share_calendar
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: calendar_share_event
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: file_map
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: foldersize
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: fscache
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: gallery_sharing
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: locks
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: log
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: media_albums
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: media_artists
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: media_sessions
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: media_songs
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: media_users
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: permissions
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: pictures_images_cache
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: principalgroups
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: principals
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: queuedtasks
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: sharing
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: clndr_calendars
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: clndr_objects
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: clndr_share_event
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: clndr_share_calendar
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: clndr_repeat
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: contacts_addressbooks
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Drop old database table: contacts_cards
2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 2018-11-23T04:34:53+00:00 Done
28/28 [============================] 100%2018-11-23T04:34:53+00:00
2018-11-23T04:34:53+00:00 Repair step: Drop old background jobs
2018-11-23T04:34:53+00:00 Repair step: Remove getetag entries in properties table
2018-11-23T04:34:53+00:00 Repair info: Removed 0 unneeded "{DAV:}getetag" entries from properties table.
2018-11-23T04:34:53+00:00 Repair step: Repair outdated OCS IDs
2018-11-23T04:34:53+00:00 Repair step: Repair invalid shares
2018-11-23T04:34:53+00:00 Repair step: Remove old share propagation app entries
2018-11-23T04:34:53+00:00 Repair step: Move user avatars outside the homes to the new location
2018-11-23T04:34:53+00:00 Repair step: Remove shares of a users root folder
2018-11-23T04:34:53+00:00 Repair step: Repair unmerged shares
2018-11-23T04:34:53+00:00 Repair step: Disable extra themes
2018-11-23T04:34:53+00:00 Repair step: Repair sub shares
2018-11-23T04:34:53+00:00 Starting code integrity check...
2018-11-23T04:35:10+00:00 Finished code integrity check
2018-11-23T04:35:10+00:00 Update successful
2018-11-23T04:35:10+00:00 Maintenance mode is kept active
2018-11-23T04:35:10+00:00 Reset log level
最後から三行目に「Update succesful」とあるが、しかし二行目にあるように「Maintenance mode is kept active」となっている。ブラウザでの表示も以下のままだ。
これはmaintenance:modeコマンドで解除する。
sudo -u apache ./occ maintenance:mode --off
するとブラウザは以下の画面になる。
ログインしてみると、やっと以下の表示になる。
まとめ
相当に四苦八苦したのだが、結局のところ以下である。
引き継ぐべき旧バージョンのデータ
rpmでのインストールの場合には以下になる。
- MySQLを使用したので、そのデータベース
- /var/lib/owncloud/dataにあるデータ
- /etc/owncloud/config.phpの設定ファイル
- /etc/httpd/conf.d/内に作成されていたhttpd設定ファイル
新バージョンowncloudの解凍と設定
適当な場所に解凍する、するとconfigディレクトリの中にconfig.sample.phpがあるのだが、これは無視してよい。先の旧バージョンのconfig.phpをコピーして、適当に変更する。
更新の実行と存在しないアプリのdisable
sudo -u apache ./occ upgrade
で更新を実行する。
「アプリが無い」と言われたら、インストールするか(やり方不明)、disableする。以下のようにする。
sudo -u apache ./occ app:disable activity
アプリが見つからないうちは更新されないので、再度upgradeを行う。「Update successful」と出たら、以下でメンテモードをOFFにする。
sudo -u apache ./occ maintenance:mode --off
データディレクトリの移動に注意
データディレクトリを移動する場合には、データベースの内容も更新しないといけない。
ownCloudのデータディレクトリ移動に注意を参照のこと。