You Have Hosting. You Have a Domain. Now You Need OJS.

You signed up for cPanel shared hosting, and the most accessible and affordable hosting option for independent journals. Your domain is pointing correctly. You are ready to launch your journal. But OJS installation on cPanel is not as simple as uploading files through FTP. There are multiple steps, several potential failure points, and cPanel-specific configurations you need to understand.

SponsoredNeed OJS hosting that scales?

Managed OJS hosting with backups, SSL, and priority support for scholarly publishers.

See pricing plans →

Many editors attempt OJS installation on cPanel and hit errors they don't understand, permission problems, blank pages, database connection failures, or upgrade scripts that time out. These errors are not because cPanel hosting cannot run OJS. They are because the installation process has specific requirements that differ from installation on a VPS or dedicated server.

This guide walks you through the complete OJS 3 installation process on cPanel hosting step by step, from prerequisites through post-installation configuration, written by OJS specialists who have installed OJS on hundreds of cPanel servers and know exactly where the process goes wrong.

If you want an expert to handle your OJS installation on cPanel completely, visit ojsguru.com for a free consultation.

Prerequisites, What You Need Before Starting

Before beginning installation, confirm you have all of the following:

1. An active cPanel hosting account Your hosting provider gave you a cPanel username and password. You can log in to cPanel at either:

  • yourdomainname.com:2083 (if you use your domain to access cPanel)
  • your-hosting-provider-url:2083/cpanel (using provider's URL)

2. A registered domain name Your domain should already be pointed to your hosting account. When you visit yourdomain.com in your browser, you should see the cPanel default page or an existing website.

3. PHP 7.3 or higher OJS 3.x requires PHP 7.3 minimum. Check your PHP version in cPanel:

  • Go to Software → Select PHP Version
  • Confirm your version is 7.3 or higher (8.0 or 8.1 is ideal)
  • If not, change to a compatible version

4. Required PHP extensions Confirm these PHP modules are enabled in cPanel:

  • php-mysql or php-pgsql (database connection)
  • php-mbstring (character encoding)
  • php-xml (XML processing)
  • php-curl (HTTP requests)
  • php-intl (internationalization)
  • php-zip (file compression)

To enable extensions in cPanel:

  • Go to Software → Select PHP Version
  • Click Switch to PHP Options (or similar)
  • Check all required extensions

5. A MySQL or PostgreSQL database You will create this during installation, but you need the ability to create databases in cPanel.

6. OJS 3 installation package Download the latest stable OJS 3 from pkp.sfu.ca/ojs/download/

Step 1: Download and Prepare the OJS Installation Package

Go to pkp.sfu.ca/ojs/download/ and download the latest stable OJS 3 version (currently OJS 3.4.x or later).

You will get a file like ojs-3.4.0-18.tar.gz, approximately 15 to 20MB.

On your computer: Extract the tar.gz file. You can use:

  • Windows: 7-Zip, WinRAR, or built-in Windows extraction
  • Mac: Double-click to auto-extract
  • Linux: tar -xzf ojs-3.4.0-18.tar.gz

This creates a folder named ojs-3.4.0-18 containing the complete OJS file structure.

Step 2: Upload OJS Files to Your cPanel Account

You have two options: use cPanel's File Manager or use FTP. File Manager is simpler but slower for large uploads. FTP is faster if you have an FTP client.

Option A, Using cPanel File Manager (simpler for most users):

  1. Log in to cPanel
  2. Go to Files → File Manager
  3. Navigate to your public_html folder (or a subdirectory if you want OJS in a subfolder)
  4. Click Upload and select the extracted OJS folder
  5. Upload all files and folders from the OJS package

Important: You are uploading the contents of the ojs-3.4.0-18 folder, not the folder itself. The file structure in your public_html should look like:

public_html/
├── index.php
├── config.TEMPLATE.inc.php
├── cache/
├── lib/
├── plugins/
├── public/
├── tools/
...and more files

NOT:

public_html/
└── ojs-3.4.0-18/
    ├── index.php
    ├── config...

Option B, Using FTP (faster for large uploads):

  1. Use an FTP client (FileZilla, Cyberduck, WinSCP)
  2. Connect using FTP credentials from cPanel
  3. Navigate to public_html
  4. Upload all OJS files

The upload takes 5 to 15 minutes depending on your connection speed and the upload method.

Step 3: Set File Permissions Correctly

After uploading, file permissions must be set correctly so the web server can read and write files.

In cPanel File Manager:

  1. Find the uploaded OJS files
  2. Right-click on each folder and select Change Permissions
  3. Set directory permissions to 755 (rwxr-xr-x)
  4. Set file permissions to 644 (rw-r--r--)

For specific directories that need write access:

cache/          755
public/         755
config.inc.php  600 (more restrictive for security)

If you are using FTP, most FTP clients allow you to set permissions via right-click → Properties or by selecting multiple files and using a Permissions option.

Verification: After setting permissions, go back to the OJS folder in File Manager and spot-check that directories show as "folder" and files show with their proper permissions.

Step 4: Create a Database in cPanel

OJS requires a MySQL or PostgreSQL database. Create it in cPanel:

  1. Go to Databases → MySQL Databases
  2. Enter a database name (example: journal_ojs)
  3. Click Create Database
  4. Go to MySQL Users and create a new user
  5. Enter a username (example: journal_user)
  6. Enter and confirm a strong password, save this password, you will need it during installation
  7. Click Create User
  8. Go back to MySQL Databases and associate your new user with your new database:
  • Select the database and user
  • Click Add User to Database
  • Confirm "All Privileges"

Important notes:

  • cPanel often prefixes database and user names with your account username. The actual database name might be youraccountname_journal_ojs and the user youraccountname_journal_user. Note the full names as cPanel shows them.
  • Write down your database name, username, and password exactly, you will need them during OJS installation.

Step 5: Create a Separate Files Directory (Outside Web Root)

OJS stores uploaded submission files, images, and media in a directory that should be outside the web root for security. cPanel makes this easy.

In cPanel:

  1. Go to Files → File Manager
  2. Go up one level from public_html (to your home directory)
  3. Create a new folder named ojs_files (or similar)
  4. Set permissions to 755
  5. Note the full path, it will look like /home/youraccount/ojs_files

This directory will be referenced in your OJS configuration and will store all uploaded articles, galleys, and supplementary files.

Step 6: Access the OJS Installation Wizard

Open your browser and navigate to your domain:

https://yourdomain.com

(Use HTTPS if you have an SSL certificate, HTTP if not)

You should see the OJS Installation Wizard, a series of form pages guiding you through configuration.

If you see a blank page or PHP error instead, check:

  • Files uploaded correctly to public_html
  • Permissions set to 755 on directories
  • PHP version is 7.3+
  • Required PHP extensions are enabled
  • Check cPanel error logs for PHP errors

Step 7: Complete the Installation Wizard

The Installation Wizard has multiple pages. Work through each one carefully.

Page 1, Language and Database

  • Select your preferred language
  • Database driver: MySQL (or PostgreSQL if you prefer)
  • Database host: localhost (for cPanel hosting)
  • Database name: youraccountname_journal_ojs (the full name as shown in cPanel)
  • Database username: youraccountname_journal_user (the full name as shown in cPanel)
  • Database password: the password you set when creating the user
  • Create new database tables: Yes

Click Continue.

Page 2, File Configuration

  • Files directory: Enter the full path you created earlier: /home/youraccount/ojs_files
  • Public files directory: Leave as default
  • Public files max size: Leave as default unless you need larger files
  • Temporary files directory: Leave as default

Click Continue.

Page 3, Site Configuration

  • Locale: Select your preferred language (English is recommended)
  • Base URL: https://yourdomain.com (or http:// if not using SSL)
  • Compress gzip output: Yes (improves performance)
  • Force secure connection: Yes (if you have SSL)
  • Off-site database: No

Click Continue.

Page 4, Administrator Account

  • Username: Choose a strong username for your admin account
  • Password: Choose a strong password and confirm it
  • Email: Your email address
  • First name and last name: Your actual name

Click Continue.

Installation Complete

You should see a confirmation message that OJS has been installed successfully. The wizard will prompt you to log in.

Step 8: Log In and Complete Initial Configuration

Log in with the admin account you created:

  1. Click Login on the OJS homepage
  2. Enter your admin username and password
  3. You are now in the OJS administrative dashboard

Before launching your journal, complete these initial configurations:

Go to Website Settings → General:

  • Enter your site title, description, and logo
  • Set your timezone

Go to Journal Settings → Masthead:

  • Enter your journal title, subtitle, and ISSN (if you have one)
  • Enter editor names and contact information

Go to Settings → Workflow:

  • Configure section editors and editorial roles
  • Set up your peer review process

Go to Settings → Distribution:

  • Configure your open access license
  • Set up DOI registration (optional but recommended)

Step 9: Post-Installation Verification

After installation, verify everything is working:

Test the submission process: Create a test user account, submit a test article, and confirm the submission goes through without errors.

Check email functionality: Go to Administration → System Information → Email and send a test email to yourself to confirm OJS can send emails.

Verify file uploads work: In your test submission, try uploading a file and confirm it uploads without errors.

Check the public site: Visit your journal's public homepage at https://yourdomain.com and confirm it loads without errors.

Common cPanel Installation Problems and Solutions

Problem: Blank page or 404 error when accessing your domain

Cause: Files not uploaded correctly or uploaded to wrong location.

Solution:

  • Verify index.php and other core OJS files are in public_html, not in a subfolder
  • Check file permissions, directories should be 755
  • Clear your browser cache and reload

Problem: "Error establishing database connection"

Cause: Database credentials incorrect or database not created.

Solution:

  • Verify database name, username, and password match exactly what you entered in cPanel
  • Note that cPanel prefixes database names, use the full name
  • Confirm the database user has All Privileges on the database
  • Test credentials in MySQL command line if possible

Problem: "The directory does not exist or is not writable" error for files directory

Cause: Files directory path incorrect or permissions not set.

Solution:

  • Verify the files directory path in config.inc.php is exactly correct
  • Confirm the directory exists, create it if needed
  • Set permissions to 755 for the directory

Problem: Installation wizard times out or hangs

Cause: PHP max_execution_time is too low for the database migration.

Solution:

  • Go to cPanel Software → Select PHP Version → PHP Options
  • Find max_execution_time and increase to 300 seconds
  • Restart installation or manually run upgrade script

Problem: "Cannot create directory" or permission errors

Cause: Web server user doesn't have write access.

Solution:

  • Set directory permissions to 775 (more permissive) instead of 755
  • Contact your hosting provider's support, they can set ownership correctly

After Installation, Essential Configurations

Change the default admin username: For security, change from the generic "admin" username to something unique.

Set up regular backups: In cPanel, configure automatic database backups or use a backup service.

Enable SSL certificate: Go to cPanel SecuritySSL/TLS and install a free Let's Encrypt certificate.

Configure email sending: Go to OJS Settings → Distribution → Email and set up SMTP if PHP mail() doesn't work (common on cPanel).

Set up SEO basics: OJS includes basic SEO settings. Go to Website Settings → SEO and enable any available options.

When to Call in a Professional

OJS installation on cPanel is manageable for most editors, but some situations benefit from professional help:

  • Your hosting provider doesn't support required PHP extensions and you need guidance on alternatives
  • The installation wizard is returning database errors you don't understand
  • You have attempted installation multiple times and encountered different errors each time
  • You want a clean, properly configured installation from the start with no risk of misconfiguration
  • You have multiple journals to install on the same cPanel account

OJS Guru handles complete OJS installations on cPanel, from file upload through initial configuration, with testing to confirm everything works. We ensure your installation is correct from day one and your journal is ready to accept submissions immediately.

👉 Get a free consultation at ojsguru.com

Summary

Installing OJS 3 on cPanel hosting requires attention to specific steps and cPanel-specific configurations. The nine steps covered in this guide take you from domain and hosting to a fully functional OJS installation:

  1. Download and prepare the OJS installation package
  2. Upload OJS files to your cPanel account
  3. Set file permissions correctly
  4. Create a database in cPanel
  5. Create a separate files directory outside the web root
  6. Access the OJS installation wizard
  7. Complete the installation wizard with correct settings
  8. Log in and complete initial configuration
  9. Verify everything is working

Done correctly, your OJS installation will be stable, secure, and ready to accept author submissions within hours of going live.

If you want an OJS specialist to handle your installation on cPanel, contact OJS Guru at ojsguru.com. We install OJS on cPanel regularly and we'll have your journal ready to launch.

OJS Guru is a professional Open Journal Systems service provider specializing in OJS installation, customization, migration, and technical support for research journal publishers in 20+ countries. Visit ojsguru.com to request a free consultation.