ownCloudのインストール

2018年12月11日

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

CentOS-6.9にOwnCloud-9.1.5をインストールしたが、バグらしきものを発見したのでメモしておく。

まず、インストール方法としては、検索すればいくらでも出てくる。私はownCloud Server 8 を CentOS 6 に yum インストールする手順を参考にしたが、この通りにしてみると、なぜかownCloud-9.1がインストールされてしまった。

ownCloudのURLパスを変更する

ownCloudをインストールすると、CentOS-6.9(httpd-2.2.15, apache)の場合、/etc/httpd/conf.dにownCloudの設定ファイルがインストールされる。この設定ファイルでは、/owncloudというパスでowncloudがアクセスできるようになっている。

しかし、このサーバでは複数のドメインのサービスをするためVirtualホストを使用しており、このままだと、すべてのホストからownCloudがアクセスできてしまう。便利と言えば便利なのだが。。。例えば、

  • http://foo.com/owncloud
  • http://bar.com/owncloud

と一律にアクセスできてしまうのだ(ただし、最初に管理者を登録したURL以外からアクセスすると「信頼できるホストとして登録するか?」と聞いてくるが)。

しかし、これを変更して、単一のVirtualHostからのアクセスにする方法がわからない。例えば、

  • http://owncloud.sample.com

としたいわけである。書き方がわからないので、せめて/owncloudという名前は変更することにする。これは

/etc/httpd/conf.d/owncloud.confの中の最初のエイリアスを書き換えれば良いようだ。

Alias /sampleloc/apps-appstore /var/lib/owncloud/apps
Alias /sampleloc/assets /var/lib/owncloud/assets
Alias /sampleloc /usr/share/owncloud

などとすれば、

  • http://foo.com/sampleloc
  • http://bar.com/sampleloc

ということになる。

初期設定

次に悩んだのが、初期設定である。とはいっても、管理者名とパスワード、データベース種類とユーザ名・パスワードを指定するだけなのだが、ここにバグがあるらしい。何度やってもうまくいかない。

単純に以下のような画面なのである。

これ以前に既に、mysqlのデータベースowncloudを作成しており、ユーザ名dbu、パスワードdbpだとする。
そして、管理者名foo、パスワードbarだとする。

これを上の画面に入力するだけなのだが、なぜかエラーが発生してしまう。

Error while trying to create admin user: Failed to connect to the database: An exception occured in driver SQLSTATE[HY000][1045] Access denied for user ‘oc_foo’@’localhost'(using password:YES)

というメッセージである。つまり、mysqlに接続しようとしているのだが、しかし、DBユーザ名ではなく、管理者名の前にoc_を付けた名前、つまりoc_fooを使おうとしているのである。本来はdbuのはずなのだが。

これでは接続できるはずがない。しかし、問題の解決は簡単だった。いったんこれを行うと、/usr/share/owncloud/config/config.phpというファイルが作成されており、ここでdbuser、dbpasswordが記録されているので、これを直接書き換えればよい。

  'version' => '9.1.5.2',
  'dbname' => 'owncloud',
  'dbhost' => 'localhost',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'dbu',
  'dbpassword' => 'dbup',
  'logtimezone' => 'UTC',

その後で、初期画面をリロードすると既に管理者としてログインされている。

信頼できるホストとして登録するか?

先にも書いたように、管理者を登録し、データベースのアクセス設定したホスト以外からアクセスすると以下の画面になる。