Déployer Omeka S sur une VM Alpine Linux
Introduction
Cet article documente l'installation d'Omeka S 4.2 sur une VM Alpine 3.23, avec Apache, PHP 8.4 et MariaDB. Toutes les commandes s'exécutent depuis une session SSH en tant que root.
(Mise à jour : cette procédure utilise désormais PHP 8.4, officiellement supporté par Omeka S 4.2.0 et disponible dans les dépôts community d'Alpine 3.23. Pour la variante PHP 8.3, remplacer simplement php84 par php83 partout.)
1. Préparation du système
Vérification de la version d'Alpine, activation du dépôt community (nécessaire pour certaines extensions PHP) et mise à jour du système.
cat /etc/alpine-release
sed -i 's|^#\(.*/community\)|\1|' /etc/apk/repositories
apk update
apk upgrade
2. Installation des paquets
Apache, PHP 8.4 avec toutes les extensions requises par Omeka S, MariaDB et ImageMagick en une seule passe.
apk add apache2 apache2-utils \
php84 php84-apache2 \
php84-pdo php84-pdo_mysql \
php84-xml php84-dom php84-simplexml php84-xmlreader php84-xmlwriter \
php84-mbstring php84-ctype php84-iconv php84-tokenizer \
php84-fileinfo php84-openssl php84-curl php84-session \
php84-gd php84-zip php84-intl php84-phar php84-opcache \
php84-pecl-imagick \
mariadb mariadb-client \
imagemagick \
wget unzip
Relevage des limites PHP pour autoriser l'upload de fichiers volumineux.
cat > /etc/php84/conf.d/99_omeka.ini <<'EOF'
memory_limit = 256M
post_max_size = 128M
upload_max_filesize = 128M
max_execution_time = 300
EOF
3. Configuration de MariaDB
Initialisation et démarrage du service
/etc/init.d/mariadb setup
rc-service mariadb start
rc-update add mariadb default
Sécurisation interactive
Définit un mot de passe root, supprime les comptes anonymes et la base test.
mariadb-secure-installation
Création de la base et de l'utilisateur dédié
mariadb -u root -p <<'EOF'
CREATE DATABASE omeka_s CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'omeka'@'localhost' IDENTIFIED BY 'MotDePasseOmeka';
GRANT ALL PRIVILEGES ON omeka_s.* TO 'omeka'@'localhost';
FLUSH PRIVILEGES;
EOF
4. Configuration d'Apache
Activation de mod_rewrite, déclaration d'un répertoire Omeka avec AllowOverride All, et fixation du ServerName.
sed -i 's|^#LoadModule rewrite_module|LoadModule rewrite_module|' /etc/apache2/httpd.conf
cat > /etc/apache2/conf.d/omeka-s.conf <<'EOF'
<Directory "/var/www/localhost/htdocs/omeka-s">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
EOF
echo "ServerName <IP-VM>" > /etc/apache2/conf.d/servername.conf
(Remplacer <IP-VM> par l'adresse IP — ou le nom DNS — de votre VM.)
5. Téléchargement et déploiement d'Omeka S
Récupération de la version 4.2.0 depuis GitHub, déploiement dans htdocs, configuration de la connexion BDD.
cd /tmp
wget https://github.com/omeka/omeka-s/releases/download/v4.2.0/omeka-s-4.2.0.zip
unzip omeka-s-4.2.0.zip
mv omeka-s /var/www/localhost/htdocs/omeka-s
cat > /var/www/localhost/htdocs/omeka-s/config/database.ini <<'EOF'
user = "omeka"
password = "MotDePasseOmeka"
dbname = "omeka_s"
host = "localhost"
EOF
Application des permissions (Apache tourne sous l'utilisateur apache sur Alpine).
chown -R apache:apache /var/www/localhost/htdocs/omeka-s
find /var/www/localhost/htdocs/omeka-s -type d -exec chmod 755 {} \;
find /var/www/localhost/htdocs/omeka-s -type f -exec chmod 644 {} \;
chmod -R 775 /var/www/localhost/htdocs/omeka-s/files
chmod -R 775 /var/www/localhost/htdocs/omeka-s/logs
chmod 600 /var/www/localhost/htdocs/omeka-s/config/database.ini
Démarrage d'Apache, activation au boot, et contrôle de la syntaxe de configuration.
rc-service apache2 start
rc-update add apache2 default
httpd -t
6. Finalisation via le navigateur
L'installation se conclut via une interface web qui crée le super-utilisateur et initialise la base. À ouvrir depuis le poste client :
http://<IP-VM>/omeka-s/admin
(Le formulaire demande l'email/mot de passe de l'admin, le nom d'affichage, le titre de l'installation, le fuseau horaire et la langue.)
7. Configuration post-installation
Déclaration du chemin PHP CLI et d'ImageMagick
Sur Alpine, le binaire PHP s'appelle php84 et n'est pas détecté automatiquement par Omeka. Ces réglages sont indispensables pour les tâches de fond et la génération de miniatures.
cp /var/www/localhost/htdocs/omeka-s/config/local.config.php \
/var/www/localhost/htdocs/omeka-s/config/local.config.php.bak
sed -i "s|'phpcli_path' => null,|'phpcli_path' => '/usr/bin/php84',|" \
/var/www/localhost/htdocs/omeka-s/config/local.config.php
sed -i "s|'imagemagick_dir' => null,|'imagemagick_dir' => '/usr/bin',|" \
/var/www/localhost/htdocs/omeka-s/config/local.config.php
sed -i "s|'locale' => 'en_US',|'locale' => 'fr_FR',|" \
/var/www/localhost/htdocs/omeka-s/config/local.config.php
rm -rf /var/www/localhost/htdocs/omeka-s/files/cache/*
chown -R apache:apache /var/www/localhost/htdocs/omeka-s/files
Mise en place du cron
Utile pour les tâches périodiques (indexation, vérifications) lancées par certains modules.
apk add dcron
rc-service dcron start
rc-update add dcron default
Emplacements clés
Les chemins à connaître pour la maintenance et le diagnostic :
- Racine de l'application :
/var/www/localhost/htdocs/omeka-s - Configuration locale :
/var/www/localhost/htdocs/omeka-s/config/local.config.php - Configuration BDD :
/var/www/localhost/htdocs/omeka-s/config/database.ini - Logs applicatifs :
/var/www/localhost/htdocs/omeka-s/logs/application.log - Limites PHP :
/etc/php84/conf.d/99_omeka.ini - Logs Apache :
/var/log/apache2/error.log
Conclusion
Une installation propre tient en une trentaine de commandes. Les étapes les plus sensibles concernent les permissions sur files/ et logs/, ainsi que la déclaration explicite du chemin PHP CLI sur Alpine — sans quoi les tâches de fond échouent silencieusement.
Les prochaines étapes naturelles : installer les modules essentiels (CSV Import, Common, Generic, Easy Admin), créer un premier site et concevoir un Resource Template adapté au corpus à publier.
↑ Haut de page