はじめに
本章では、Omeka Sのインストール方法をDockerを使って解説します。本書は、デジタルアーカイブ学会のワークショップをベースにしたIIIFチュートリアルであり、Omeka Sを用いてIIIF対応のデジタルコレクションを構築するまでの一連の流れを紹介します。Dockerを使うことで、複雑なサーバ設定を省略し、短時間でOmeka Sの動作環境を構築できます。
Omeka Sとは
Omeka Sは、Roy Rosenzweig Center for History and New Mediaが開発するオープンソースのデジタルコレクション管理システムです。前身であるOmeka Classicと比較して、以下の特徴を持っています:
- Linked Data対応: RDFに基づくメタデータ管理
- マルチサイト機能: 一つのインストールで複数のサイトを運営可能
- 語彙の柔軟性: Dublin Core以外にも多様な標準語彙をサポート
- モジュールアーキテクチャ: IIIF対応を含む豊富なモジュール群
- REST API: プログラムからのデータ操作に対応
Dockerを用いたインストール
前提条件
以下のソフトウェアがインストールされていることを確認してください:
- Docker: 20.10以上
- Docker Compose: 2.0以上
# Dockerのバージョン確認
docker --version
docker compose version
docker-compose.ymlの作成
Omeka Sの動作に必要なコンテナ(Omeka S本体、MySQL、phpMyAdmin)を定義します。
# docker-compose.yml
version: "3.8"
services:
omeka-s:
image: ghcr.io/nakamura196/omeka-s-docker:latest
ports:
- "8080:80"
volumes:
- omeka-files:/var/www/html/files
- omeka-modules:/var/www/html/modules
- omeka-themes:/var/www/html/themes
- omeka-config:/var/www/html/config
depends_on:
- mysql
environment:
- OMEKA_DB_HOST=mysql
- OMEKA_DB_NAME=omeka
- OMEKA_DB_USER=omeka
- OMEKA_DB_PASSWORD=omeka_password
restart: unless-stopped
mysql:
image: mysql:8.0
volumes:
- mysql-data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root_password
- MYSQL_DATABASE=omeka
- MYSQL_USER=omeka
- MYSQL_PASSWORD=omeka_password
command: >
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
restart: unless-stopped
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- "8081:80"
environment:
- PMA_HOST=mysql
- PMA_USER=omeka
- PMA_PASSWORD=omeka_password
depends_on:
- mysql
restart: unless-stopped
volumes:
omeka-files:
omeka-modules:
omeka-themes:
omeka-config:
mysql-data:
コンテナの起動
# プロジェクトディレクトリの作成
mkdir omeka-s-tutorial && cd omeka-s-tutorial
# docker-compose.ymlを配置後、コンテナを起動
docker compose up -d
# コンテナの状態確認
docker compose ps
起動が完了すると、以下のURLでアクセスできるようになります:
- Omeka S: http://localhost:8080
- phpMyAdmin: http://localhost:8081
初期設定
インストールウィザード
ブラウザで http://localhost:8080 にアクセスすると、Omeka Sのインストールウィザードが表示されます。以下の情報を入力します:
- Email: 管理者のメールアドレス
- Password: 管理者パスワード
- Password Confirm: パスワードの再入力
- Display Name: 管理画面で表示される名前
- Installation Title: サイトのタイトル
- Time Zone:
Asia/Tokyoを選択
「Submit」をクリックするとインストールが完了し、管理画面にログインできます。
日本語ロケールの設定
Omeka Sは多言語に対応しており、管理画面の言語を日本語に切り替えることができます。
- 管理画面右上のユーザアイコンをクリック
- 「User settings」を選択
- 「Locale」の項目で「日本語(ja)」を選択
- 「Save」をクリック
これにより、管理画面のメニューやラベルが日本語で表示されるようになります。
タイムゾーンの設定
PHPのタイムゾーン設定を日本時間に変更する場合は、Docker環境では以下のように設定します。
# Omeka Sコンテナに入って設定を変更
docker compose exec omeka-s bash
# php.iniの編集
echo "date.timezone = Asia/Tokyo" >> /usr/local/etc/php/conf.d/timezone.ini
# Apacheの再起動
apache2ctl restart
exit
ファイルアップロード設定
デフォルトのアップロードサイズ制限を変更する場合は、PHPの設定を調整します。
# コンテナ内で設定ファイルを作成
docker compose exec omeka-s bash
cat > /usr/local/etc/php/conf.d/uploads.ini << EOF
upload_max_filesize = 100M
post_max_size = 128M
memory_limit = 256M
max_execution_time = 300
EOF
apache2ctl restart
exit
CORS対応
外部のIIIFビューアからOmeka SのAPIにアクセスする場合、CORS(Cross-Origin Resource Sharing)の設定が必要になることがあります。
# ApacheのCORS設定
docker compose exec omeka-s bash
a2enmod headers
cat > /etc/apache2/conf-enabled/cors.conf << EOF
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET, POST, OPTIONS"
Header set Access-Control-Allow-Headers "Content-Type"
</IfModule>
EOF
apache2ctl restart
exit
データのバックアップ
Docker環境では、ボリュームのバックアップによりデータを保全できます。
# データベースのバックアップ
docker compose exec mysql mysqldump -u omeka -pomeka_password omeka > backup.sql
# ファイルのバックアップ
docker compose cp omeka-s:/var/www/html/files ./files-backup
まとめ
本章では、Dockerを用いたOmeka Sのインストール方法を解説しました。Docker Composeにより、Omeka S本体、MySQL、phpMyAdminの3つのコンテナを簡単に起動・管理できます。次章では、Omeka Sの基本操作として、アイテムの登録やメタデータの入力方法を解説します。