2012年7月9日月曜日

ownCloudのDBをSQLiteからMySQLに変更

dsp74118の補完庫: 自前でDropBoxもどきを作れるownCloudを入れてみた の続き。
導入した時、「少人数で使うし、DBはSQLiteでいいだろー 」と思っていたのだが、今朝になってやたらとSQLiteのアクセス制御に起因すると思われるエラーを吐きまくるようになった。
少し調べてみたが、どうもownCloud側の作り(SQLite周り)があまりよくないっぽいので、SQLiteをやめてMySQLを使うことにした。

前回PHP5.3のMySQLモジュールを入れてなかったので、インストールする。
$ yum install php53u-mysql
(snip)
$ rpm -qa | grep php
php53u-gd-5.3.14-1.ius.el5
php53u-ldap-5.3.14-1.ius.el5
php53u-xml-5.3.14-1.ius.el5
php53u-process-5.3.14-1.ius.el5
php53u-common-5.3.14-1.ius.el5
php53u-pspell-5.3.14-1.ius.el5
php53u-mbstring-5.3.14-1.ius.el5
php53u-mysql-5.3.14-1.ius.el5
php53u-5.3.14-1.ius.el5
php53u-cli-5.3.14-1.ius.el5
php53u-pdo-5.3.14-1.ius.el5
MySQLにデータベース'owncloud'を作る。
$ mysql -u root -p

mysql> create database owncloud default character set utf8;
Query OK, 1 row affected (0.03 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema | 
| mysql              | 
| owncloud           | 
| redmine            | 
+--------------------+
4 rows in set (0.00 sec)
ユーザ'owncloud'を作成するとともに、データベース'owncloud'へのアクセス権を付与する。青字'**********'は任意のパスワード。
mysql> grant all on ownclowd.* to owncloud@localhost identified by '**********';
Query OK, 0 rows affected (0.08 sec)
mysql> \q
Bye
ownCloudのデータ(ファイル)保存先は、デフォルトでは /var/www/owncloud/data となるが、私は /data/owncloud に変えたかったので、あらかじめディレクトリを作って、オーナーをapacheに変えておく。
$ cd /data
$ mkdir owncloud
$ chown -R apache:apache owncloud
$ ls -l
合計 28
drwx------ 2 root   root   16384 12月 10  2010 lost+found
drwxr-xr-x 5 mysql  mysql   4096  7月  9 09:44 mysql
drwxrwx--- 3 apache apache  4096  7月  9 09:55 owncloud
ownCloudの古いコンフィグを消す(リネーム)。
$ cd /var/www/owncloud/config
$ mv config.php config.php_sqlite
この状態でownCloudのトップページにアクセスすると、(コンフィグが消えているので)インストールウィザードが動く。

データ保存先(Data folder)を/data/owncloud に変える。
Figure.1 'Data folder'を変更
DBをMySQLにして、DB名、DBユーザ名、パスワードを入力し、"Finish setup"をクリックすると、セットアップ完了。
Figure.2 MySQLの設定

セットアップ完了後のコンフィグファイルは、以下のような感じ。
$ vi /var/www/owncloud/config/config.php
<?php
$CONFIG = array(
"passwordsalt" => '********************************',
"datadirectory" => '/data/owncloud',
"dbtype" => 'mysql',
"version" => '4.0.4',
"dbname" => 'owncloud',
"dbhost" => 'localhost',
"dbtableprefix" => 'oc_',
"dbuser" => 'owncloud',
"dbpassword" => '**********',
"installed" => true,
);
?>

0 コメント:

コメントを投稿