Tips

PHPとMySQLで構築できるCalDAVサーバ「Baïkal」(設定編)

「mysql」の設定

「mysql」の設定の設定は、データベースとテーブルの作成用スクリプトがないので、
sqlite3を参考に登録します。

ユーザーの登録とデータベースの作成です。
・データベース「baikal」の作成

create database baikal;

・ユーザー「baikal」の作成と権限の付与

GRANT ALL PRIVILEGES ON baikal.* TO 'baikal'@'localhost' IDENTIFIED BY 'baikal';

次に、テーブルの作成です。
以下は、登録したテーブルの一覧です。

・テーブル名
addressbookchanges
addressbooks
calendarchanges
calendarobjects
calendars
calendarsubscriptions
cards
groupmembers
locks
principals
users

作成した際のSQL文も参考に掲載しておきます。
・baikalデータベース

CREATE DATABASE baikal;

・addressbookchangesテーブル

CREATE TABLE addressbookchanges (
  id int(11) unsigned NOT NULL AUTO_INCREMENT,
  uri varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  synctoken int(11) unsigned NOT NULL,
  addressbookid int(11) unsigned NOT NULL,
  operation tinyint(1) NOT NULL,
  PRIMARY KEY (id),
  KEY addressbookid_synctoken (addressbookid,synctoken)
);

・addressbooksテーブル

CREATE TABLE addressbooks (
  id int(11) unsigned NOT NULL AUTO_INCREMENT,
  principaluri varchar(181) COLLATE utf8_unicode_ci DEFAULT NULL,
  displayname varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  uri varchar(152) COLLATE utf8_unicode_ci DEFAULT NULL,
  description text COLLATE utf8_unicode_ci,
  ctag int(11) unsigned NOT NULL DEFAULT '1',
  PRIMARY KEY (id),
  UNIQUE KEY principaluri (principaluri,uri)
);

・calendarchangesテーブル

CREATE TABLE calendarchanges (
  id int(11) unsigned NOT NULL AUTO_INCREMENT,
  uri varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  ctag int(11) unsigned NOT NULL,
  calendarid int(11) unsigned NOT NULL,
  operation tinyint(1) NOT NULL,
  PRIMARY KEY (id),
  KEY calendarid_synctoken (calendarid,ctag)
);

・calendarobjectsテーブル

CREATE TABLE calendarobjects (
  id int(10) unsigned NOT NULL AUTO_INCREMENT,
  calendardata mediumblob,
  uri varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,
  calendarid int(10) unsigned NOT NULL,
  lastmodified int(11) unsigned DEFAULT NULL,
  etag varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
  size int(11) unsigned NOT NULL,
  componenttype varchar(8) COLLATE utf8_unicode_ci DEFAULT NULL,
  firstoccurence int(11) unsigned DEFAULT NULL,
  lastoccurence int(11) unsigned DEFAULT NULL,
  PRIMARY KEY (id),
  UNIQUE KEY calendarid (calendarid,uri)
);

・calendarsテーブル

CREATE TABLE calendars (
  id int(10) unsigned NOT NULL AUTO_INCREMENT,
  principaluri varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  displayname varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  uri varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,
  ctag int(10) unsigned NOT NULL DEFAULT '0',
  description text COLLATE utf8_unicode_ci,
  calendarorder int(10) unsigned NOT NULL DEFAULT '0',
  calendarcolor varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
  timezone text COLLATE utf8_unicode_ci,
  components varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
  transparent tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (id),
  UNIQUE KEY principaluri (principaluri,uri)
);

・calendarsubscriptionsテーブル

CREATE TABLE calendarsubscriptions (
  id int(11) unsigned NOT NULL AUTO_INCREMENT,
  uri varchar(200) NOT NULL,
  principaluri varchar(100) NOT NULL,
  source text,
  displayname varchar(100) DEFAULT NULL,
  refreshrate varchar(10) DEFAULT NULL,
  calendarorder int(11) unsigned NOT NULL DEFAULT '0',
  calendarcolor varchar(10) DEFAULT NULL,
  striptodos tinyint(1) DEFAULT NULL,
  stripalarms tinyint(1) DEFAULT NULL,
  stripattachments tinyint(1) DEFAULT NULL,
  lastmodified int(11) unsigned DEFAULT NULL,
  PRIMARY KEY (id),
  UNIQUE KEY principaluri (principaluri,uri)
);

・cardsテーブル

CREATE TABLE cards (
  id int(11) unsigned NOT NULL AUTO_INCREMENT,
  addressbookid int(11) unsigned NOT NULL,
  carddata mediumblob,
  uri varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,
  lastmodified int(11) unsigned DEFAULT NULL,
  PRIMARY KEY (id)
);

・groupmembersテーブル

CREATE TABLE groupmembers (
  id int(10) unsigned NOT NULL AUTO_INCREMENT,
  principal_id int(10) unsigned NOT NULL,
  member_id int(10) unsigned NOT NULL,
  PRIMARY KEY (id),
  UNIQUE KEY principal_id (principal_id,member_id)
);

・locksテーブル

CREATE TABLE locks (
  id int(10) unsigned NOT NULL AUTO_INCREMENT,
  owner varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  timeout int(10) unsigned DEFAULT NULL,
  created int(11) DEFAULT NULL,
  token varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  scope tinyint(4) DEFAULT NULL,
  depth tinyint(4) DEFAULT NULL,
  uri varchar(1000) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (id),
  KEY token (token),
  KEY uri (uri(333))
);

・principalsテーブル

CREATE TABLE principals (
  id int(10) unsigned NOT NULL AUTO_INCREMENT,
  uri varchar(200) COLLATE utf8_unicode_ci NOT NULL,
  email varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL,
  displayname varchar(80) COLLATE utf8_unicode_ci DEFAULT NULL,
  vcardurl varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (id),
  UNIQUE KEY uri (uri)
);

・usersテーブル

CREATE TABLE users (
  id int(10) unsigned NOT NULL AUTO_INCREMENT,
  username varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  digesta1 varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (id),
  UNIQUE KEY username (username)
);


ここまでが、apacheとMySQLの設定となります。
baikalのセットアップに関しては、次回の記事にしたいと思います

次回は、「baikalのセットアップ」について説明していきたいと思います。

 

Linux認定資格 LPICを取るなら・・

Linux資格 「LPIC Lv1」徹底解説 連載目次

Recent News

Recent Tips

Tag Search