How to Install Omeka with LEMP Stack on AlmaLinux 8

Omeka is a free, open-source content management system for online digital collections. As a web application, it allows users to publish and exhibit cultural heritage objects, and extend its functionality with themes and plugins. In this article, we are going to learn how to install Omeka on AlmaLinux 8. So, let’s get started.

Checkout the Omeka Project Here.

Try this wiki on our VPS. Starting at just $5/month with 24x7 In-house customer support.

Pre-requisites

Once you're all set, we'll proceed with Omeka installation and configuration.

Create Database

Let us begin with creating a Database and a user. We will then grant the required privileges to the user so it can interact with the Database.

mysql -u root

CREATE DATABASE crowncloud;

CREATE USER 'crowncloud'@'localhost' IDENTIFIED BY 'YOUR-PASSWORD-HERE';

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

FLUSH PRIVILEGES;

quit

The above commands will give complete access to the user crowncloud. Replace YOUR-PASSWORD-HERE with a safe and secure password.

Configuring Nginx Reverse Proxy

Let's configure nginx.conf with the following command:

nano /etc/nginx/nginx.conf

Replace the nginx.conf file with the below configuration.

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;
}

Now, type in Ctrl+O and type Ctrl+X to save and exit the file.

Create a new Nginx configuration file dev.conf for the domain with the following command:

vi /etc/nginx/conf.d/dev.conf

Add the following codes:

Replace dev.domainhere.info with Your Domain Name and Change SSL Path according to your SSL Path.

And also replace the root path, /var/www/html/Omeka with the actual path where your website's data are stored.

server {
listen 80;

server_name dev.domainhere.info;
root /var/www/html/omeka/omeka-s;
index index.php index.html index.htm;

location / {
try_files $uri $uri/ /index.php?$args;
}

location = /favicon.ico {
log_not_found off;
access_log off;
}

location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}

location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}

location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

listen 443 http2 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/dev.domainhere.info/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/dev.domainhere.info/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

Now, press the Esc key, and type :wq! and press the Enter key to save and exit the file.

For SELinux enabled systems, Run the below command

setsebool -P httpd_can_network_connect 1

Now, restart & check the Nginx with the following commands:

systemctl restart nginx

systemctl status nginx

Enable http and https ( 80/443 )

To enable http and https connection through the firewall, follow the commands:

firewall-cmd --permanent --zone=public --add-service=http

firewall-cmd --permanent --zone=public --add-service=https

firewall-cmd --reload

Install Omeka

Download Omeka from the official website : Click here.

Let's install Omeka using below commands:

cd /var/www/html

mkdir omeka && cd omeka

wget https://github.com/omeka/omeka-s/releases/download/v3.1.1/omeka-s-3.1.1.zip

unzip omeka-s-3.1.1.zip

rm omeka-s-3.1.1.zip

cd omeka-s

Setting up Database details

For setting database details, use the below codes.

cd config

nano database.ini

Replace with the below configurations

user     = "crowncloud"
password = "YOUR-PASSWORD-HERE"
dbname   = "crowncloud"
host     = "localhost"
port     = "3306"

Edit the file and type in Ctrl+O and type Ctrl+X to save and exit the file.

Setting up File Permissions

Let's make the folders readable.

chmod -R 755 /var/www/html/omeka/omeka-s

chmod -R 777 /var/www/html/omeka/omeka-s/files

chown -R nginx:nginx /var/www/html/omeka/omeka-s

chcon -R -t httpd_sys_content_rw_t /var/www/html/omeka/omeka-s

Now, restart & check Nginx with the following commands:

systemctl restart nginx

systemctl status nginx

Configuring Omeka

Now open the IP address from your browser, this will redirect you to configuring the final parts of the Omeka installation.

https://dev.domainhere.info

Replace the dev.domainhere.info with the actual IP or domain configured on the server.

Follow the below steps:

Now you have successfully installed Omeka with LEMP Stack on AlmaLinux 8.