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.
Official documentation: https://omeka.org/s/docs/user-manual/install/
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.
