Omeka Sは、デジタルコレクションを管理・公開するためのオープンソースのウェブアプリケーションです。本章では、Omeka Sのインストール方法について、Docker環境を利用した方法と手動インストールの2つの方法を解説します。

システム要件

Omeka Sを動作させるためには、以下の環境が必要です。

  • Linux(Ubuntu 20.04以降を推奨)
  • Apache(mod_rewriteが有効であること)
  • MySQL 5.7.9以降 または MariaDB 10.2.6以降
  • PHP 7.4以降(8.0以降を推奨)
  • PHP拡張モジュール: PDO、pdo_mysql、xml、mbstring、intl、fileinfo、gd または imagick

また、画像のサムネイル生成のために ImageMagick が必要です。さくらレンタルサーバなどの環境では、ImageMagickのパスを明示的に指定する必要がある場合があります。

Dockerを使ったインストール(推奨)

Dockerを使用すると、環境構築が容易になり、再現性の高いインストールが可能です。詳細については、Omeka S Docker の紹介:デジタルコレクションのための最新かつセキュアなソリューションを参照してください。

docker-compose.ymlの準備

以下は、Omeka Sを動作させるためのdocker-compose.ymlの基本的な例です。

version: '3'
services:
  omeka-s:
    image: ghcr.io/nakamura196/omeka-s-docker:latest
    ports:
      - "80:80"
    volumes:
      - omeka-files:/var/www/html/files
      - omeka-modules:/var/www/html/modules
      - omeka-themes:/var/www/html/themes
    environment:
      OMEKA_DB_HOST: mariadb
      OMEKA_DB_NAME: omeka
      OMEKA_DB_USER: omeka
      OMEKA_DB_PASSWORD: omeka
    depends_on:
      - mariadb

  mariadb:
    image: mariadb:10.11
    volumes:
      - db-data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: omeka
      MYSQL_USER: omeka
      MYSQL_PASSWORD: omeka

volumes:
  omeka-files:
  omeka-modules:
  omeka-themes:
  db-data:

起動手順

# docker-compose.ymlのあるディレクトリで実行
docker-compose up -d

# ログの確認
docker-compose logs -f omeka-s

起動後、ブラウザで http://localhost にアクセスすると、Omeka Sの初期設定画面が表示されます。

CORS対応

Docker環境でIIIF対応のビューアなど、外部からAPIにアクセスする場合は、CORS(Cross-Origin Resource Sharing)の設定が必要になることがあります。詳しくは、Docker版のOmeka SでCORS対応を行うを参照してください。

Apacheの設定ファイルに以下を追加します。

Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET, POST, OPTIONS"
Header set Access-Control-Allow-Headers "Content-Type"

手動インストール

Docker環境を使用せず、直接サーバーにインストールする場合の手順を説明します。

1. ファイルの配置

Omeka Sの公式サイトからZIPファイルをダウンロードし、ウェブサーバーのドキュメントルートに展開します。

# ダウンロードと展開
wget https://github.com/omeka/omeka-s/releases/download/v4.1.1/omeka-s-4.1.1.zip
unzip omeka-s-4.1.1.zip -d /var/www/html/

# 権限の設定
chown -R www-data:www-data /var/www/html/omeka-s/
chmod -R 755 /var/www/html/omeka-s/files/

2. データベースの作成

MySQLまたはMariaDBにデータベースとユーザーを作成します。

CREATE DATABASE omeka CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'omeka'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON omeka.* TO 'omeka'@'localhost';
FLUSH PRIVILEGES;

utf8mb4を使用することで、日本語を含むマルチバイト文字を正しく扱えるようになります。

3. database.iniの設定

config/database.iniファイルを編集し、データベースの接続情報を設定します。

user     = "omeka"
password = "your_password"
dbname   = "omeka"
host     = "localhost"

4. Apacheの設定

.htaccessが正しく動作するように、Apacheの設定でmod_rewriteを有効にし、AllowOverride Allを設定します。

<Directory /var/www/html/omeka-s>
    AllowOverride All
    Require all granted
</Directory>

5. ウェブインストーラーの実行

ブラウザでOmeka Sの配置先にアクセスすると、初期設定画面が表示されます。管理者のメールアドレス、パスワード、サイト名などを入力して、インストールを完了します。

日本語検索の不具合修正(FixCjkSearch)

Omeka Sのデフォルトの全文検索機能は、MySQLのFULLTEXT INDEXを使用しています。しかし、MySQLのデフォルトのパーサー(InnoDB ft_default_parser)は、日本語・中国語・韓国語(CJK文字)の分かち書きに対応していないため、日本語での全文検索が正しく動作しません。

この問題を解決するために、FixCjkSearchモジュールを開発しました。詳しくは、FixCjkSearch: Omeka Sの日本語による全文検索の不具合修正を参照してください。

FixCjkSearchのインストール

cd /var/www/html/omeka-s/modules/
git clone https://github.com/nakamura196/Omeka-S-module-FixCjkSearch.git FixCjkSearch

モジュールをダウンロードしたら、Omeka Sの管理画面から「モジュール」ページにアクセスし、FixCjkSearchを有効にします。

仕組み

FixCjkSearchは、CJK文字の各文字間にスペースを挿入することで、MySQLのFULLTEXT INDEXがN-gram的な検索を行えるようにします。これにより、分かち書きに依存せずに日本語の全文検索が可能になります。

バージョン4.1.0では、さらなる改善が行われています。詳しくは、Omeka-S-module-FixCjkSearchのv4.1.0をリリースしました。を参照してください。

また、全文検索のもう一つの選択肢として、MroongaSearchモジュールがあります。こちらはMySQL/MariaDBのMroongaストレージエンジンを使用して、日本語の全文検索を実現します。詳しくは、Omeka-SのMroongaSearchモジュールで日本語全文検索を実現するを参照してください。

Amazon Lightsailへのデプロイ

AWS上にOmeka Sを構築する場合、Amazon Lightsailを利用すると比較的低コストで環境を構築できます。初期設定スクリプトを用いた手順については、Amazon Lightsailを用いたOmeka Sサイトの構築(独自ドメイン+SSL化を含む)を参照してください。

環境設定

Omeka Sでは、.htaccessファイルでアプリケーションの実行環境を指定できます。

SetEnv APPLICATION_ENV "production"

productiondevelopmentの違いについては、Omeka SのSetEnv APPLICATION_ENVのproductionとdevelopmentの違いで解説しています。開発時はdevelopmentに設定するとエラーの詳細が表示されますが、本番環境では必ずproductionを使用してください。

関連記事