PKP Frequently Asked Questions

From PKP Wiki
Jump to: navigation, search

Since Open Conference Systems, Open Journal Systems and the PKP Harvester share similar code, the answers to many questions are the same for all three. You'll find general questions answered below, followed by application-specific questions.


Common Questions relevant to OJS, OCS, and the PKP Harvester


What documentation is available?

Each application has its own help page:

OJS has the most extensive amount of documentation, and a fair amount of it is applicable to either or both OCS and the PKP Harvester; for example, developers interested in any of the three applications would find the Technical Reference on the OJS documentation page helpful.

You can also find video tutorials at

Are there other resources for finding help?

The PKP uses Bugzilla to report and track bugs and new features. It can be found at If you think you've found a bug with our software, or are encountering an error, we encourage you to search the bug database to see if it has been identified and/or fixed, and to post a bug report if it has not been.

We also maintain a web-based user interface to our CVS repository, which can be found at You can browse the entire codebase for OJS, OCS and more from that site. This is particularly helpful when you have identified a problem file and want to know the file's history: you can look the file up in this interface, and see all code revisions made to it since it was created. Most of these revisions also link back to bug reports posted to Bugzilla, which is again a handy way to look up bugs.

The PKP Support Forum itself has become an invaluable knowledge base for technical and editorial issues, and we highly recommend you search it for information before you post.

You can also find other types of information on the wiki you are currently viewing. It includes a fair bit of information on where we look to be going, such as roadmaps and proposed plugin information.

Finally, you can search across all resources using our Google Custom Search.


How much does this software cost?

All software released by the Public Knowledge Project, including OJS, OCS, the PKP Harvester, Lemon8-XML, and OMP, are released as Free software: you can download the software at no charge, and you are free to redistribute and/or modify the code under the terms of the GNU GPL V2. More information is available on the download page, and within each software package, under docs/COPYING.

How much does it cost to run this software?

That depends on your hosting arrangement. Our software runs on a wide range of hosting platforms, many of which cost no more than $10 a month. (You will want to check with your service provider to make sure they meet the software's system requirements.) If you are part of a larger institution like a university, they may be able to provide hosting. There are also a number of businesses who offer OJS hosting; these can be found via Google. Finally, Simon Fraser University also offers OJS and OCS hosting services, information on which can be found here.

I lost/forgot my password, and I can't retrieve it!

Retrieving your password is a three-step process:

  • Request a New Password: click the "Log in" link at the top of the navigation bar or on the sidebar, click the "Forgot your Password" link on the following page, enter your email address, and then click on "Reset Password".
  • Check Your Email and Confirm Your Request: You then need to check your email inbox for a confirmation email which asks whether you did indeed request your password to be reset. When you click the link included in the email, you will be taken back to the journal in question, and the system will email you a new password.
  • Retrieve New Password and Log In: You must then recheck your email for the password that has just been sent to you. It will have been automatically generated; you can use it to log in and then reset your password to something you can more easily remember. The system will automatically ask that you fill in a new password.

I'm having problems logging in -- after I try to log in, I'm referred back to the login page.

This is likely a problem with your browser's privacy settings. Our software requires that cookies are enabled in your browser for you to login. You can check the status of your browser cookies here. If you aren't sure how to enable cookies, try selecting a lower security setting (such as "Medium" in Internet Explorer), or try a different browser. If you are still having problems, report them to the support forum.

Why is Taiwan listed in the country list as a province of China, and not its own country?

In a nutshell, the PKP uses an ISO standard for the OJS and OCS country lists, which is itself derived from UN resources; we don't have plans to use another resource or maintain our own list. More details: ISO 3166 website, ISO 3166 Glossary, Wikipedia on ISO 3166. If you want to modify the list that is shipped with OJS or OCS, you can add/edit Taiwan to be its own country by editing registry/locale/[name of locale]/countries.xml -- simply add or edit where you believe to be appropriate. Please note that you should keep track of any changes like this you make to the codebase, as you will have to maintain them in the event of an upgrade.

Why can't I delete a user's account?

As a Journal or Conference Manager, you can "remove" and "disable" a user's account. Removing a user will only remove them as a user registered with your journal, and will not delete them from the site. Disabling an account doesn't delete it -- it just makes it so that a user can't log in with that account. User deletion in OJS can only be done by using the Merge Users feature: you pick the user to be removed, and merge their account into another one. We don't provide a one-click delete feature because users typically have a lot of information and actions attached to their account that must not be orphaned: submitted files, completed reviews, editorial decisions and so on. We essentially mandate that all of these items must be passed on to another user before the user can be removed from the system.

Instructions on using the Merge Users tool from the command line (including instructions on creating a batch-merge shell script) is available on the forum.

Please note that the Merge Users function is currently not available in the PKP Harvester.

My journal is filled with fake user accounts! What do I do?

Some OJS users have experienced a large volume of fake user accounts registered with their journals. For example, the fake accounts might have a name like "12 alekssafer alekssafer alekssafer".

The first step in solving this problem is to have your system administrator enable CAPTCHA for your journal registration process. This should block or at least limit any further fake account creation.

Once that is done, you can then begin to clear out the accounts. If you have access to the underlying MySQL database, you can remove them directly from there. However, if you are limited using your Journal Manager account you can do it using the " Merge Users feature. You would simply mark the checkbox for one or more of the fake accounts, and then merge those accounts into another fake account, or into a temporary account you create for this purpose. Once the fake accounts are merged, they are removed from OJS.

How do I delete an article from OJS or OCS?

To get rid of articles, you need to do the following:

  • Login as the Editor (for OJS) or Director (for OCS)
  • Find the article record
  • From the Summary page, under "Status", select the "Reject and Archive Submission" link
  • Skip the email -- this will send the record to the editorial "Archives" (not to be confused with the back issue "Archives")
  • Next, go back to the Editor (or Director) Home page and in the "Submissions" section select "Archives" -- the link just below "In Editing" (for OJS) or "Presentations" (for OCS)
  • Find the article record and then select the "Delete" link to its right -- that will remove it from the system

Is there any way I can get content into OJS or OCS quickly?

For small numbers of submissions you can use the Expedited Submission Process. For large amounts of content, you might want to consult with your Journal or Conference Manager on using the Articles & Issues XML-based import plugin.

Please note that these functions are not available in the PKP Harvester.

How do I prepare for the Canadian Anti-Spam Legislation that goes live on July 1?

Full details on Canada's new anti-spam legislation are here: The legislation covers all "Commercial Electronic Messages" (CEMs), "where one of the purposes [is] to encourage the recipient to participate in commercial activity" (see See SFU's own response to the CASL here:

A small number of OJS and OCS email functions may fall into the CEM category, depending on whether the journal/conference activities can be perceived as commercial in nature. In particular, these email functions are:

  • The Notify Users email, particularly when sending out notice of new journal/conference content that must be registered for or subscribed to;
  • Any Site Notifications emails that registered users can enable via the Notifications sidebar block;
  • Any other notification emails that visitors to the site (not necessarily registered users) can subscribe to via the Notifications Sidebar block (referred to here as "mailing list").

There are three general requirements/issues when it comes to sending CEMs: consent, identification, and the provision of an unsubscribe mechanism. OJS 2.4 and OCS 2.3 do not currently provide a mechanism to address all of these issues in one central location. In order to comply immediately, you should do the following:


  • Disable the "Reader" registration option under Journal Setup Step 4.1, as this currently works as an opt-out rather than opt-in registration option (see for further information and an upcoming fix; this issue does not apply to OCS);


  • Add your physical mailing address, phone number, and primary contact email address to your journal's signature (Journal Setup Step 1.4) or conference's signature (Scheduled Conference Setup Step 1.5), or optionally provide a hyperlink to this information on your site;


There is no central method for users to unsubscribe from OJS or OCS. There are different methods depending on whether they have registered as a reader/author, have requested notification emails to be sent via the Site Notifications sidebar, or have subscribed to the mailing list. You will have to provide full instructions on how to unsubscribe in all three scenarios. We recommend the following:

  • Copy the sample text below, and add it as an additional "About" item (Journal Setup Step 2.5; or in OCS, Website Management Step 1.7);
  • add a hyperlink to your journal/conference signature to link to this Unsubscribe information, as per the instructions in "Identification" above.
Instructions to Unsubscribe: 

This website provides notification emails in a number of different contexts. If you wish to unsubscribe, please follow the instructions for your particular context: 

I have a reader/author account

If you have a reader or author account, you may receive email notifications regarding new issues being published. To unsubscribe entirely, you must unenroll yourself as an author or reader. To do so, please log in; visit your User Profile page; and uncheck the Reader and Author role options. 

I have enabled notifications for certain events

This website allows you to opt in for email notifications on different events (including new content being published, new announcements being published, etc.). You can disable email notifications for these by logging in, and clicking the "Manage Notifications" option in the sidebar. 

I have subscribed to your mailing list

This website provides a mailing list subscription option. Currently the only way to unsubscribe from the mailing list is to retrieve the original confirmation email from your inbox, and click the "Unsubscribe" link included there. If you cannot find this email, please contact us directly.

Other Steps

PKP is actively working on providing more centralized subscription management options that abide by the Canadian Anti-Spam regulations; these options will be available in OJS 2.4.5 and OCS 2.3.7. For more information on this work, including patches and other upgrade information, see You can CC yourself to that bug report for further updates

In the meantime, we recommend you use the Notify Users function extremely judiciously, and similarly so for any email that you may send out that could be construed as a CEM as per the definition.


Can I modify your code?

As all PKP software is open source, you are free to make any code changes that you like. We welcome any code submissions or patches to be posted on the relevant Development Forums at if you think your changes may be beneficial to other users. Please note that if you plan on redistributing our software (either in original or a modified form), you must do so according to the terms of the GNU General Public License v2. See docs/LICENSE in all software packages for the complete terms of this license.

We also publish our documentation and tutorials with a Creative Commons Attribution-Share Alike 2.5 Canada License. To view a copy of this license, visit or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. This license means that you can share and rework our documentation so long as you always provide proper attribution.

When I click some button or follow some link, I'm left with a blank page. What do I do?


What is a stacktrace and how do I display them in OxS?

A stacktrace shows the route through the code taken to display the current page. When an error is displayed, a stacktrace is often helpful in helping to track down how the error is being caused, by letting the developer step through the code and see what route they must take to reproduce the error.

To enable stacktracing on errors in OxS, turn on the 'show_stacktrace' option in (near the bottom of the document). An example stacktrace will look like this:

DB Error: ERROR: invalid input syntax for integer: ""
Stack Trace:
File: /var/www/ojs/classes/article/ line 76
Function: DAO->retrieve("SELECT COUNT(*) FROM article_galleys WHERE public_galley_id = ? ...", Array(2))
File: /var/www/ojs/classes/submission/form/ line 233
Function: ArticleGalleyDAO->publicGalleyIdExists("pdf", "")
File: /var/www/ojs/pages/sectionEditor/ line 1459
Function: ArticleGalleyForm->execute("layoutFile")
File: /var/www/ojs/pages/sectionEditor/ line 1314
Function: SubmissionEditHandler::uploadGalley("layoutFile")
File: /var/www/ojs/pages/sectionEditor/ line 469
Function: SubmissionEditHandler::uploadLayoutFile()
File: (unknown) line (unknown)
Function: SectionEditorHandler::uploadLayoutFile(Array(0))
File: /var/www/ojs/index.php line 88
Function: call_user_func(Array(2), Array(0))
File: /var/www/ojs/index.php line 99
Function: handleRequest()

I can install OJS (or OCS, or the Harvester), but Apache crashes when I try to log in.

This is caused by a buggy version of Zend Optimizer being installed on your system. Search this forum for "optimizer" for a variety of discussions on this, including a work-around patch for OJS. A good thread detailing the Zend Optimizer problem, including workarounds, can be found in this forum thread.

I am receiving the following error: Fatal error: Allowed memory size of 8388608 bytes exhausted (etc.)

Your PHP memory limit is most likely set too low. It's normally set at 8mb by default, but OJS for example needs at least 16mb set to run properly (and often more for occasional tasks like upgrading). You can find a memory_limit configuration directive in your server's php.ini config file.

After completing the install page, I receive a database error. What's going on?

You are probably receiving an error similar to

DB Error: Table 'ojs.journals' doesn't exist

... where the 'ojs' part of the error is the name of your database as specified during install. What has most likely happened is that you have attempted to create your OJS database and the installer has attempted to fill that database with the necessary data, but for some reason was unable to do so. Possible reasons for this include your database system (eg. MySQL) not allowing web-based database creation; or otherwise not allowing large-scale table creation. The best solution is to:

  • restore your to the original (copying over config.TEMPLATE.php will do this);
  • create your database manually via phpMyAdmin, CPanel, or similar, depending on what your service provider provides;
  • restart the installation process by reloading your root OJS/OCS page;
  • fill in all installation fields as appropriate, ensuring that you write in the correct name for your newly-created database;
  • uncheck the "Create new Database" option;
  • click the "Manual Install" option at the very bottom of the installation page.
  • copy the database query from the resulting page, and run it against your database via phpMyAdmin or similar.

Please note that when you click the Manual Install button, the resulting page will say that the OJS Install has completed successfully, but this isn't quite true: you still have to copy the SQL statements and add them to your database manually.

Note: You may also be encountering a plugin bug. There have been plugin bugs in the past where plugins have attempted to access the "journals" table before the installer has created the table; these will result in a "Table 'ojs.journals' doesn't exist" message when someone attempts to load the installer page in the first place. In this case, you can narrow it down to a particular plugin by checking the stack trace.

I'm having file permission problems; how should I set file permissions?

This is a difficult question to answer generally, as it depends on your server's operating system, web server, and PHP setup.

Start by checking which server API PHP uses on your server. Log in as Site Administrator, click "System Information", and at the bottom of the page, click "Extended PHP Information". Find the line that says "Server API". Depending on which API you are using (mod_php/SAPI or CGI/FastCGI), permissions should be set as follows.

  • mod_php/SAPI: In this configuration, all PHP scripts on the system typically execute as the same user (usually Apache's "nobody" or "www-data" accounts). Be warned that this may be insecure on a shared host. The files_dir (configured in, the cache directory, the public directory, and all contents and subdirectories must be writable and readable by the web server user. The configuration file must be readable by the web server user.
  • CGI/FastCGI: In this configuration, PHP scripts will typically run under your user account (though server configurations may vary). This can be a well-secured configuration. The files_dir (configured in, the cache directory, the public directory, and all contents and subdirectories must be writable and readable by this user account. The configuration file must be readable by this account.

Because security configurations can vary, and because of the volume of requests for support we receive regarding file permissions, we will only be able to provide limited help with these issues. Please be as specific as possible when posting about permissions issues.

PHP Safe Mode is not a recommended configuration and may not function properly. This is because in some configurations it will cause PHP's mkdir() function to create directories that cannot thereafter be read or written because of file permissions. This is a limitation of Safe Mode and may prevent you from using OJS in a Safe Mode environment.

There is thread on the forum that provides more general instructions here as well as here.

HTML Galleys don't display properly / files I upload aren't being identified properly.

This is most likely caused by your server incorrectly identifying your HTML file as something other than HTML. The quickest way to diagnose this is to check the Galley Edit page: if you have uploaded an HTML file and the Label field says something other than "HTML" (like "Untitled", for example), then the file has not been correctly identified as HTML and will most likely not display correctly.

OJS and OCS use three methods to determine a filetype, in the following order:

  • PHP's mime_content_type function, which uses your system's magic.mime file (this method is deprecated)
  • PHP's finfo_... suite of functions (which replaces mime_content_type as the preferred method)
  • The external "file" tool, by executing the following:
file -bi [filename here]

Problems may occur if:

  • you are using the first option but your magic.mime file does not include enough information on the filetype you are attempting to identify;
  • your server configuration does not support the first two options;
  • you do not have sufficient permissions to run an external tool as in the third

Additionally, you may be encountering problems due to malformed files. If you are having trouble having your HTML files recognized, you may want to run them through HTML-Tidy ( or otherwise ensure that they are valid HTML. HTML files created by word processors in particular may have a hard time being recognized as HTML.

You may also want to search the forums for the keywords "magic mime" or for "mimetype" -- many users have had this problem, and there are several discussions on how to solve it.

My css files aren't being identified properly.

This could be the result of the identification issue above, or it could be because your css file includes a comment on the first line, before any actual css. Try removing the comment(s) from the top of the file and reuploading.

Note that this situation often occurs when uploading a modified copy of the main CSS file. We don't recommend this approach -- it's better to upload a CSS file that only contains overrides for the styles that you wish to modify from the default layout, as the main stylesheet is applied before any custom CSS files. This will help to avoid stylesheet headaches on upgrade.

I'm having trouble with encoding; characters are showing up strangely.

See this link for a good introduction to character encoding and Unicode issues.

Other links in the support forum include:

How do I change the way my application handles URLs?

You can use the base_url override settings in to manage how OJS, OCS or the Harvester displays URLs. You can also use Apache's mod_rewrite module, although we won't troubleshoot this if you do. See this thread in particular, and search the forums for discussion related to mod_rewrite.

How can I change the System Administrator password?

See this thread on the forum.

Will your software work in a Microsoft IIS environment?

OJS, OCS and the Harvester all run on IIS 6. PHP 5.x is required because of an issue with the $_SERVER[PATH_INFO] variable. We welcome feedback from users who have successfully installed and used OJS in other server environments.

How can I create a backup of my site?

To properly backup an OJS or OCS system, the following should be backed up:

  • The OJS database, using the tools provided by your DBMS (e.g., mysqldump for MySQL, pg_dump for PostgreSQL)
  • The base OJS directory
  • The non-public files directory (the directory specified by the "files_dir" configuration option), which is typically outside of the base OJS or OCS directory (this step does not apply to the PKP Harvester).

This backup procedure can be easily integrated into any automated backup mechanism.

How can I move an existing installation to a different server?

To move an OJS, OCS or Harvester install from one server to another, you will need to:

  • Copy the database data, and import it into the new server (e.g., using the command-line tools provided by the DBMS)
  • Copy the base install directory and non-public files directory
  • Update with any changed settings for the new server (typically, the base URL, database authentication/access, email, and files settings will differ between servers)

How secure is the Public Knowledge Project's software?

The current suite of releases (OJS 2.x, OCS 2.x, and the PKP Harvester 2.x) are based on a structured, proven, and widely deployed platform. We have taken considerable care to ensure that our software is secure at all levels, including checks to prevent SQL injections, XSS (cross-site scripting) attacks, and to ensure that application-level permissions are checked. As all of our software is open-source, it additionally benefits from community scrutiny. Our security track record is extremely good. If you have any questions about the security of the PKP suite, please contact us.

When I try to access my OJS site this error message is displayed: "Warning: Smarty error: problem creating directory '/./templates' in ./lib/smarty/Smarty.class.php"

This can occur if a higher level directory has execute permission but not read permission. In these situations, the __FILE__ value in an included file appears to be relative to the location of the including file. This issue can be resolved by ensuring all parent directories are both readable and executable.

See also this PHP bug report:

Uploads of large files fail inexplicably.

This can be caused by certain Apache or PHP settings.

Apache 2.x has a LimitRequestBody directive that, if set to a low number, can lead to this behaviour. In particular, the default PHP packages for recent versions of Red Hat Linux set LimitRequestBody to 524288 bytes in /etc/httpd/conf.d/php.conf.

Low values for the PHP ini settings like post_max_size (default "8M"), upload_max_filesize (default "8M"), and memory_limit (default "8M") can also cause this problem.

Emails sent out by the system are never received.

By default, mail is sent through PHP's built-in mail() facility.

On Windows PHP needs to be configured to send email through a SMTP server (running either on the same machine or on another machine).

On other platforms such as Linux and Mac OS X, PHP will sent mail using the local sendmail client, so a local MTA such as Sendmail or Postfix must be running and configured to allow outgoing mail.

See for more details on configuring PHP's mail functionality.

Our software can also be configured to use an SMTP server as specified in, either with or without authentication.

I am using Apache 2.0.x, and pages fail to load, producing an error like "File does not exist: .../index.php/index/...".

With some versions or configurations of Apache 2.0.x, it may be necessarily to explicitly enable the AcceptPathInfo directive in your Apache configuration file.

See for more information about this directive.

Installation fails with the MySQL error "Client does not support authentication protocol requested by server; consider upgrading MySQL client".

This problem is caused by a change in the MySQL authentication protocol in MySQL 4.1, and can occur if your system is using an older MySQL client library with a newer MySQL server.

See for suggested approaches to resolve this issue.

I see "Warning: ini_set(): A session is active. You cannot change the session module's ini settings at this time" messages appear when I load a page.

Check if session.auto_start is enabled in your php.ini configuration. Our software requires this setting to be disabled, which is the default behaviour in current versions of PHP.

The installation form loads successfully, but after clicking the button to install, a blank page appears and the database was not created.

This may indicate that your server does not have the selected PHP database module installed and enabled (this can be verified by looking at the output of phpinfo() to see if the required database support exists -- see

The installer lists database drivers for which the required PHP extension does not appear to be loaded in brackets (e.g., "[MySQL]").

Most Linux distributions offer a separate package that can be installed for each supported PHP database module -- e.g., php4-mysql or php-mysql (for MySQL support), or php4-pgsql or php-pgsql (for PostgreSQL support).

Note also that even with the module installed it may be necessary to modify your php.ini configuration to load the module, by adding "" or "", for example.

How can I control the address to which bounced emails will be sent? Why do messages sent with an envelope sender have an 'X-Warning' header?

To control the address to which a bounced emails will be sent, you need to set the envelope sender address. Enable the "allow_envelope_sender" option in the [email] section of the configuration file; when this option is enabled, a "Bounce Address" field appears on Page 2 of the Journal Setup.

Note that this option may require changes to the server's mail server configuration so that the user the web server runs as (e.g. "www-data") is trusted by the sendmail program, or an "X-Warning" header will be added to outgoing messages. Consult your mail server's documentation if outgoing mails include such a header.

For example, Sendmail keeps a list of trusted users in the file "/etc/mail/trusted-users"; other mail systems use similar files.

The command-line option used to set the envelope sender is "-f".

How can I allow users to search non-text files, such as PDF or Microsoft Word documents?

OJS and OCS supports indexing of non-text files via external conversion applications. The "Search Settings" configuration section in can be modified to enable indexing of certain binary file formats by setting a "index[MIME_TYPE]" setting (with the desired file mime-type) to the path of the appropriate external text converter for that file format.

Note that additional third-party software must be installed to use this feature (such as "pdftotext" for PDF files).

I am changing the URL to my software installation. Does OJS (or OCS, or the Harvester) need to be reconfigured to be accessible under the new URL?

The only reconfiguration that is required after a change in the site URL is to update the value of the "base_url" configuration setting in

How large is a typical OxS Installation, and how large does it grow over time?

That's a very good question, and one that relies on a whole range of factors. You can read a thread on recommended disk space here. We have also conservatively estimated 1GB of space used every three years for an active journal.

How do I add another Site Administrator?

The Site Administrator is created when first installing OJS, OCS or the Harvester; and typically there is only one Site Admin for any given installation. If you need to grant access to Site Administrator functions to more than one person, you may want to consider sharing account information; but you can also extend Site Admin capabilities to a second user via a database command, as detailed here.

Can I install the OxS database manually?

The standard, web-based OxS installation process is recommended for most users as the default method for installing OxS.

If you require finer grained control over the installation process, please see the Manual Database Install and Upgrade guide.

How could I rebuild my OxS search index?

In some situations (enable file indexation, database migration) you could be interested in rebuilding your search tables. It could be done via the command line. From your OJS root folder call the rebuid search index script as follows:

php tools/rebuildSearchIndex.php

and let OJS do it job again.

Emails aren't being received by users, or I am encountering Sender Policy Framework (SPF) validation issues on sending email; what should I do?

Troubleshooting email problems:

If emails aren't being received by some users, the first thing to do is check to see if you yourself can receive email. Try sending an email to yourself using the system. If you received it, OJS is probably sending email fine. You should then ask the user with the problem to check their email's spam/junk folders.

If the user can find no record whatsoever of the email being filtered as spam or junk, you may be encountering a Sender Policy Framework (SPF) validation problem with their server. You can confirm this by viewing your server's mail log to see if there are any reported receipt blockages/returns with SPF validation errors as the result.

Explanation of the problem, and the solution:

As of version 2.4.6, OJS included a change to the way emails are sent out. Previously, all emails were sent using the OJS user's email address in the "FROM" field. This unfortunately led to some issues with the journal's outgoing emails being flagged as "spoofed" by some email servers, since the email addresses in question (eg.") didn't match the domain name of the server sending the email (eg. ""). (Technically, the emails were failing Sender Policy Framework (SPF) validation.) Being flagged in this way is more serious than being considered spam: in many cases, the receiving email server won't even assign the email to a spam/junk queue, instead simply choosing to discard it.

To prevent this from happening, the PKP development team has adopted an email notification method similar to other web applications such as Wordpress: send all email from the system using one central email address in the "FROM" field, with the intended recipients' email addresses in the "REPLY-TO" Field. The central email address to be used by default would be the one provided in Journal Setup Step 1.2: Principal Contact, which should match the domain name from which the journal sends mail. (If this email address cannot match the sending domain on a per-journal basis, an alternate email address can be configured at the site level via the OJS file). In addition, a new "Email Header" setting has been provided in Journal Setup Step 1.4: Email Identification, which can be used to provide explanatory text to the recipient.

To properly configure this, we suggest the following:

  • If you aren't on OJS 2.4.6+ already, upgrade.
  • Configure the email address OJS will use to send out all email using the "Principal Conact" setting in Journal Setup Step 1.2
    • If at all possible, have your Principal Contact email address serve as a general point of contact for the journal, and have it match the journal domain name. For example, if your domain name is "", try using an email address like "".
  • Provide some explanatory text using the "Email Header" setting in Journal Setup Step 1.4. This text will appear at the top of every email generated by the system. Remember, these emails are typically notifications to users, and should be treated just like notification emails from other systems. We recommend the following text:
You are receiving this email on behalf of <journal-name>. In the event of a requested response, you may respond directly to this email.

Open Journal Systems

Is OJS a good fit for my journal?

The answer to this question really depends on what you need. Some things to consider in your assessment:

  • Read the OJS in an Hour guide and try out the OJS demo and OJS test drive. The OJS in an Hour guide includes both the URL and the login information for the OJS test drive.
  • If OJS looks like it has the features that you need, evaluate your technical expertise and resources and determine how to best host your journal: on your own server (system requirements), via PKP hosting, or using an external hosting provider.
  • If you require certain features that OJS does not currently include, consider discussing these with the OJS development team and other OJS users via the forum. The OJS development team may be able to add your requested features in a future release of the software and/or other OJS users may have already added similar features to their own installations of an existing release of OJS.
  • If you plan to add custom features to OJS yourself, keep in mind some best practices and consider the following: Would these features benefit other OJS users? What is the best way to add support for these features? Will my custom features be maintainable in the long term with future updates to the OJS software? If you have any doubts or questions, please feel free to contact the OJS development team to discuss your ideas. The development team may be contacted via the contact page or the OJS user forum.

Are there any considerations in managing a large number of journals from a single OJS installation?

Whether it's best to host your journals on one installation or several will depend on your situation. We typically host journals on separate installations, as there are a few places where separate journals on the same installation affect each other. These are:

1. User accounts. While OJS allows users to have arbitrary roles in different journals (i.e. Journal Manager in one and Reader in another), the master list of user accounts is shared between installations. When the Journal Manager wants to enroll a user as a Copyeditor, for example, they'll be able to pick through the entire user list.

2. Code modifications. While all journal settings (such as a journal stylesheet) can be set independently for different journals, some changes may require modifications to the source code. These changes will affect all journals. If you anticipate this sort of change, you'll need to host your journals separately.

3. Search features. While the search form will default to searching within the particular journal you are browsing, it is possible to search across all journals in a particular installation. Likewise, browsing by title and by author can span journals. If your journals are independently managed, they may not like this kind of association.

If you maintain a clean environment, e.g. all installations of OJS are kept current and things like file permissions are standardized, it is possible to perform maintenance tasks like upgrades on large numbers of installations painlessly (although obviously not as quickly as if you maintain only one installation). It's largely a political decision -- if your journals need complete autonomy, it's probably best to install separate copies of OJS. If they tend to fall into logical groups, perhaps a few installations with several journals apiece would be best.

There is also a happy medium solution based on share code but different databases for each journal. The implementation is explained here.

If in doubt, it's much easier to start with a single copy of OJS (and later divide it into several if needed) than to try to merge several OJS installations into one.

Here are some examples of installations hosting multiple journals with a single OJS:

Here are some examples of installations hosting multiple journals with multiple OJS:

What other open source journal management and publishing systems are available?

In addition to OJS, other open source systems include DPubS, GAPworks, Hyperjournal, ePublishing Toolkit, OpenACS, SOPS, TOPAZ (from Peter Suber's Open Access News) and Open Publish (Drupal's profile)

Can OJS be used to publish newsletters or magazines?

Although OJS was developed for peer-reviewed journal publishing, there are sites that have used it for newsletter or magazine publishing.

OJS is quite flexible, and allows you to modify the text, display, and structure of much of the information using the web administrative interface, the CSS, and the templates.

Additionally, OJS provides an 'expedited submission' process, allowing editors to skip the rounds of review and editing, and quickly add articles to the site, which may be more appropriate for a newsletter.

Does OJS support open peer review?

We've certainly considered this for OJS, but in the absence of a clearly successful model, we've stayed away from investing any time in developing something yet. Once an obviously effective method of open reviews is evident, we'll definitely consider moving it into OJS.

For now, however, there are some steps you could take to experiment with this in OJS:

1. Create a new section in the journal (e.g., Open Submissions).

2. Enable Reader Comments.

3. Immediately Accept new submissions to this section, and notify author that their work has been accepted for open peer review, explain the process, and inform them that although their article will appear in the journal (as is), reader comments may require that it be revised or rejected.

4. Immediately create a PDF/HTML galley file and schedule to latest issue.

5. Monitor comments.

6. After a specified period of time, unschedule the article.

7. If comments indicate the article should be published as is, add any additional layout formatting and re-publish in the appropriate issue.

8. If comments indicate the article requires revisions and/or re-review, change the editorial decision and notify the author. Follow the standard OJS process from this point forward.

9. If comments indicate the article should not be published, change the editorial decision and notify the author. Follow the standard OJS process from this point forward.

Although this process isn't perfect, it could allow you to start experimenting with open reviews immediately. You might find the resources at Open Reviews and Socially Networked Open Peer Review useful as well.

Why am I seeing strange codes in the web pages of my OJS journal?

This is a common problem caused by pasting content directly from Microsoft Word into one of the text forms in OJS. This happens in Wordpress, Drupal, and all other web-based applications, too. It is not a problem specific to OJS.

When you need to add text to one of the OJS text boxes, instead of pasting directly, use the little "Paste From Word" button (it looks like a clipboard with the Word icon over it). This will strip out all of the nasty Microsoft Word code that is being copied over.

To fix it, you need to go back to the text form and clean out that Word code. It is often easier to just delete what is there now, and re-paste (using the Paste from Word button this time).

Can you use OJS in conjunction with Crossref?

Yes! you can use the Crossref Export plugin to generate Crossref deposit XML. You can also follow the following steps to add outbound Crossref links to your references:

  • Start asking your authors to provide their references separately, in the References field in Submission Step 3. (This option can be enabled in Journal Setup Step 3.1.)
  • During the Editing process, you'll want to ensure that the references are accurate and well-formatted. While doing this, use Crossref's Simple Text Query form to look up the references. Crossref has some rules about how the references should be formatted in order to be parsed correctly; see for probably too much information on the subject.
  • If/when a DOI is returned for any given reference, add it to the reference metadata you are still working on. You can also hyperlink it, so that it becomes an outbound link:
<a href="<0715:COAPSR>2.0.CO;2">doi:10.1175/1520-0442(1988)001<0715:COAPSR>2.0.CO;2</a>

(Note the addition of "" to the URL above.)

Please read full Crossref/DOI documentation available here:

Open Conference Systems

Can I make the conference proceedings searchable?

PKP follows Open Archive Initiative standards -- an emerging global standard for electronic archiving and indexing. OCS uses this standard, with authors using a common indexing system, whether for conference papers, dissertations, journal articles or forums.

This means that one can search your conference proceedings using general keywords, or focusing in on specific index terms such as method or coverage.

How easy would it be to link my conference to related research?

Since OCS complies with Open Archive Initiative standards, your conference can easily be linked to other OAI-compliant databases. Your conference database will follow a global standard, making it easily searchable, and linkable to other OAI databases.

Can conference registrants pay their conference fees online using OCS?

Yes. OCS 2.0 supports credit card payment via PayPal, and additional payment methods can be added by writing plugins in PHP to support them.

Does OCS archive old papers?

Yes. OCS allows your conference papers to exist in digital format long after your conference is over. This system is also integrated with the Public Knowledge Project's other online research tools, using a common archives tool that is used by many other online archives.

In short, OCS archives papers in the most effective way possible: using sophisticated index terms that would please even the most discerning librarian.

Will conference participants know who the paper reviewers are?

No. If the organizer wishes the reviewers to remain anonymous, the participants will not know who the reviewers are. Reviewers are given a special password to access papers. Only the conference organizer will know who reviews which paper.

Can people who don't attend the conference read the papers presented?

Yes. OCS will create a public Web site for all the conference papers (but certain administration features, like paper reviewing, will remain private). You can refer your students and colleagues to relevant papers on a publicly accessible Web site.

Lemon-8 XML

Is Lemon8-XML Open Source?

Yes. Like all PKP software, it is licensed under the GNU GPL v2 Open Source license.

What technology is Lemon8-XML based on?

Lemon8-XML has been developed using 100% free and Open Source software and technology. More information is available on the home page of the demonstration site.

Can it convert documents automatically from Word/ODT to XML and if so, what sort of heuristics are used?

Yes, automatic, hands-free conversion is what Lemon8-XML is designed for. The approach is loosely based on looking for visual "markers" within a document: e.g. a section title which is larger than the surrounding text and bolded, a list of references at the end of the document, a caption immediately before or after an embedded figure, etc. Although the parsers are far from perfect, they have been developed over dozens of scholarly articles and continue to be improved.

Does it rely on authors choosing styles?

Not at this point, although we are discussing a collaboration with a number of electronic publishers to share their experience with developing style templates and tools to apply them.

Can it interoperate with other XML languages, e.g. MathML?

Not at the moment, only a subset of the National Library of Medicine Journal Publishing DTD is supported. However, because the semantic structure stored in Lemon8-XML is not tied to any particular schema, it is possible to write output XSL transformations to any XML schema desired. We are planning to include additional XML schemas such as Docbook, Erudit DTD, and TEI, as well as support for embedded MathML, SVG, etc. in the future.

Is it only intended for medical and scientific journals?

Absolutely not. Both Lemon8-XML and the NLM publishing DTD are intended to be used by journals from all disciplines and varying layout complexity. While it still shows some of its STM heritage, we intend to improve support for alternative and creative forms of formatting.

Is this a collaborative project - e.g. will it be on Sourceforge?

This is most definitely a collaborative project, although we will continue to host the documentation, discussion, and source code on the PKP website for the forseeable future. We are constantly interested in hearing from others willing to contribute to development or testing of Lemon8-XML.