LINUX, FOSS AND LIBRARY TECHNOLOGY ENTHUSIAST

Thursday, October 29, 2026

Install and Set Up Omeka S on Debian/Ubuntu

0 comments
Omeka S is an open-source web publishing platform designed for libraries, archives, museums, universities and cultural institutions. It allows you to organize digital objects, describe them with structured metadata, create digital collections and publish online exhibitions.

In this tutorial, we will install Omeka S on Debian 13 (Trixie) using Apache, MariaDB and PHP. We will also cover the initial configuration required to start building a digital collection.

System Requirements

Before installing Omeka S, ensure that your server has the following components:

  • Debian 13 (Trixie)
  • Apache web server
  • MariaDB database server
  • PHP and the required extensions
  • A web browser for completing the installation

Omeka S 4.2 requires PHP 8.1 or later, MariaDB 10.2.6 or later, and Apache with mod_rewrite enabled and AllowOverride All configured. The PHP GD extension can be used to generate thumbnails.


Install Apache, MariaDB and PHP

Update the package index:

sudo apt update

Install the required packages:

sudo apt install -y apache2 mariadb-server \
  libapache2-mod-php php php-cli php-mysql \
  php-xml php-mbstring php-curl php-zip \
  php-gd php-intl unzip curl wget

Enable and start the services:

sudo systemctl enable --now apache2 mariadb

Verify the installed versions:

php -v
mariadb --version
apache2 -v

3. Create the Omeka S Database

Omeka S requires a dedicated database. We will create a database named omeka_s and a separate database user.

Open the MariaDB shell:

sudo mariadb

Execute the following SQL statements:

CREATE DATABASE omeka
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;

CREATE USER 'omeka'@'localhost'
  IDENTIFIED BY 'omeka123';

GRANT ALL PRIVILEGES ON omeka.*
  TO 'omeka'@'localhost';

FLUSH PRIVILEGES;
EXIT;

Replace the example password with a strong, unique password. Keep the database name, username and password for the next step.

4. Download Omeka S

Omeka S releases are available from the official GitHub repository.

For version 4.2.1, download the release archive:

cd /tmp

wget -O omeka-s.zip \
  https://github.com/omeka/omeka-s/releases/download/v4.2.1/omeka-s-4.2.1.zip

Verify the archive before extracting it:

file omeka-s.zip
unzip -t omeka-s.zip

Extract the archive:

mkdir -p /tmp/omeka-extract
unzip -q /tmp/omeka-s.zip -d /tmp/omeka-extract

Locate the application files:

find /tmp/omeka-extract -maxdepth 3 \
  \( -name index.php -o -name database.ini \)

Inspect the output and identify the directory containing the application files, including index.php, admin/, application/ and config/.

Create the web directory:

sudo mkdir -p /var/www/html/omeka-s

Copy the contents of the actual application directory into /var/www/html/omeka-s/. For example, if the files are inside /tmp/omeka-extract/omeka-s/:

sudo cp -a /tmp/omeka-extract/omeka-s/. \
  /var/www/html/omeka-s/

Adjust the source path if the extracted directory has a different name. The application files should not be nested inside an unnecessary extra directory.

Configure the Database Connection

Open the database configuration file:

sudo nano /var/www/html/omeka-s/config/database.ini

Enter the database details:

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

Use the password created in Step 3 and preserve any other required settings in the existing configuration file.

Save the file and exit the editor.

6. Set File Permissions

The Apache user needs access to the application and writes permission for the files that Omeka S manages.

Run:

sudo chown -R www-data:www-data /var/www/html/omeka-s

sudo find /var/www/html/omeka-s \
  -type d -exec chmod 755 {} \;

sudo find /var/www/html/omeka-s \
  -type f -exec chmod 644 {} \;

These commands establish standard directory and file permissions.

7. Enable Apache URL Rewriting

Enable the Apache rewrite module:

sudo a2enmod rewrite

Create a virtual-host configuration:

sudo nano /etc/apache2/sites-available/omeka-s.conf

Add the following configuration:

<VirtualHost *:80>
    ServerName omeka.local
    DocumentRoot /var/www/html/omeka-s

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

    ErrorLog ${APACHE_LOG_DIR}/omeka-s-error.log
    CustomLog ${APACHE_LOG_DIR}/omeka-s-access.log combined
</VirtualHost>

Enable the site and verify the configuration:

sudo a2dissite 000-default.conf
sudo a2ensite omeka-s.conf
sudo apache2ctl configtest
sudo systemctl reload apache2

The ServerName value is an example hostname. Configure DNS or a local hosts entry to use it, or adapt the virtual host to your actual domain. If this server hosts other websites, ensure that the new virtual host does not unintentionally replace their configuration.

8. Complete the Web Installation

Open the installation's administrator URL in a browser:


Replace SERVER-IP with the server's actual IP address. If you are using a domain, use the corresponding domain name instead.

No comments:

Post a Comment