OJS (Open Journal Systems) is a popular open-source platform for managing academic journals—from submission through to peer review and publication. It’s robust and flexible, but like any software, it depends on server environment and configuration to function smoothly.
Sometimes your journal may suddenly stop working or show error pages. One frequent culprit is the dreaded “HTTP ERROR 500” – an “Internal Server Error.” When this happens, your users likely see a blank page or a generic message instead of your journal content.
Let’s look at why this happens and what you can do about it—no guesswork, just tested advice.
What Does “HTTP ERROR 500” Mean?
This error indicates the server encountered something unexpected it couldn’t handle. In OJS, it may occur when loading the homepage, accessing the backend, or using plugins.
Common Causes & Fixes
1. Server Environment Issues
- PHP version or missing extensions
OJS generally requires PHP 7.x or 8.x, along with extensions like xml, gd, intl, pdo_mysql, and fileinfo. If an expected function is missing (for example, xml_parser_create()), PHP throws a 500 error.
Fix: Check your PHP environment and install missing modules. On many Linux systems:sudo apt install php-xml php-gd php-intl
Then restart PHP and your webserver.
- File permissions
OJS needs to read and write to certain files—particularly config.inc.php, cache folders, and your files_dir. If these aren’t writable, errors occur. The core config.inc.php file must exist—it lives at your OJS installation root, not in a “config” folder. Permissions like 644 for files and 755 for directories are usually enough. Certain directories (cache, files dir) may require 775 or 777. - Error logs
You won’t fix what you can’t see. Check your PHP-FPM logs (like /var/log/php‑fpm/www-error.log) or Apache/Nginx logs. They often contain hints like “permission denied” or “undefined function” messages.
2. OJS Configuration & Caching
- config.inc.php settings
All key options—database credentials, files_dir path, and security settings—live here. Errors in this file are a major source of HTTP 500s. The file must be present, correct, and readable by the webserver.Check:; [files] files_dir = /full/path/to/ojsdata
And verify this directory exists and is writable.
- Plugin conflicts
A recently installed or updated plugin may break OJS and trigger a 500. Disable the plugin via the database or temporarily rename its folder to test. - Corrupted cache
Old files in cache/, cache/t_cache, cache/t_config, or cache/t_compile can cause issues. Clear them manually and reload your site to let OJS rebuild fresh cache.
3. Server Limits & SSL
- Resource limits
Tasks like upgrading OJS or exporting issues may exceed time or memory limits (max_execution_time, memory_limit). Too much and the server aborts with a 500.
Fix: Raise these limits in php.ini or .htaccess, or run heavy tasks from the command line. - SSL or HTTPS misconfiguration
Enabling SSL means updating server certs and also adjusting OJS’s config.inc.php (force_ssl = On). A mismatch or missing certificate can also cause a 500.
Quick Fix Checklist
- Check logs—PHP‑FPM and web server logs for error messages.
- Confirm PHP modules—especially XML, GD, intl, PDO.
- Validate config.inc.php—exists, readable, correct paths (especially files_dir).
- Fix permissions—ensure OJS folders & files are writable by the PHP user.
- Clear cache—empty all cache directories.
- Disable suspect plugins.
- Increase resource limits—for heavy operations.
- Check SSL settings—ensure SSL is set up cleanly.
Still Stuck?
If you’ve tried all of the above and the site still shows a 500 error, we’re here to help. Reach out to us via our contact page and let our team help get your journal back online.
Comments are closed