OJS

Open Journal Systems

Open Journal Systems (OJS) is a web-based platform for managing scientific journals, designed to facilitate the publication process in an open-access format. Developed by the Public Knowledge Project (PKP), OJS simplifies the management of all stages of journal publication, from article submission, peer-review processes, editing, to publication and archiving.

OJS supports various user roles such as editors, authors, reviewers, and readers. The platform also includes features for publication scheduling, metadata management, automatic notification systems, and integration with DOI (Digital Object Identifier). OJS is widely used by universities, research institutions, and scientific journal publishers worldwide due to its ability to enhance accessibility, transparency, and the reputation of managed journals.

1. System Requirements

System requirements for OJS 3.3:

  • PHP 8.0+
  • Apache
  • MySQL, MariaDB, or PostgreSQL

Before starting the deployment, prepare the following:

  • A VPS or server with Ubuntu 24.04 OS
  • SSH access to the server
  • A domain already pointed to the server

2. Server Preparation

Update the system

sudo apt update
sudo apt upgrade -y

Install Apache

sudo apt install apache2 -y

Install MariaDB

sudo apt install mariadb-server -y

Install the PPA ondrej/php repository:

sudo add-apt-repository ppa:ondrej/php -y
sudo apt update 
sudo apt upgrade -y

Install PHP 8.3 and the required extensions.

sudo apt install libapache2-mod-php8.3 php8.3 php8.3-cli php8.3-common \
  php8.3-apcu php8.3-mbstring php8.3-gd php8.3-intl \
  php8.3-xml php8.3-soap php8.3-bcmath php8.3-mysql php8.3-zip \
  php8.3-curl php8.3-tidy php8.3-imagick -y

3. Create a Database

Log in to MariaDB:

sudo mysql

Create a database and user.

CREATE DATABASE ojs_jurnal;
GRANT ALL PRIVILEGES ON ojs_jurnal.* TO 'ojs_jurnal'@'localhost' IDENTIFIED BY 'rahasia';
FLUSH PRIVILEGES;
exit

4. Download OJS

Download OJS v3.3

wget https://pkp.sfu.ca/ojs/download/ojs-3.3.0-20.tar.gz

Extract ojs-3.3.0-20.tar.gz:

tar xzvf ojs-3.3.0-20.tar.gz

Create a directory and move the ojs-3.3.0-20 directory:

sudo mkdir -p /var/www/jurnal.universitas.ac.id/files
sudo mv ojs-3.3.0-20 /var/www/jurnal.universitas.ac.id/ojs

Change the ownership of the directory:

chown -R www-data:www-data /var/www/jurnal.universitas.ac.id

5. Apache Configuration

Create a virtual host configuration for jurnal.universitas.ac.id.

sudo nano /etc/apache2/sites-available/jurnal.universitas.ac.id.conf	

Enter the configuration.

<VirtualHost *:80>
    ServerName jurnal.universitas.ac.id
    DocumentRoot /var/www/jurnal.universitas.ac.id/ojs
    <Directory /var/www/jurnal.universitas.ac.id/ojs>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog /var/log/apache2/jurnal.universitas.ac.id_error.log
    CustomLog /var/log/apache2/jurnal.universitas.ac.id_access.log combined
</VirtualHost>

Enable the rewrite module, virtual host, and restart apache2.

sudo a2enmod rewrite
sudo a2ensite jurnal.universitas.ac.id
sudo systemctl restart apache2	

6. Install SSL

Install certbot

sudo apt install certbot python3-certbot-apache -y	

Request an SSL certificate.

sudo certbot --non-interactive \
  -m [email protected] \
  --agree-tos \
  --no-eff-email \
  --apache -d jurnal.universitas.ac.id \
  --redirect	

7. Install OJS

Access https://jurnal.universitas.ac.id to install OJS:

  1. Administrator Account: Enter the Username, Password, and Email for the admin account.
  2. Directory for Uploads: Enter the path to the files directory.
  3. Database Settings: Select Database driver = MySQLi, and enter the Username, Password, and Database name.
  4. Finally, click Install Open Journal Systems.

The OJS installation is complete and ready to use.