Frequently Asked Questions -------------------------- This document contains frequently asked questions about OJS, primarily dealing with common technical and support questions. For information about using or interacting with the OJS journal management system, consult the system's built-in help. The README document contains introductory information and installation instructions. ================= General Questions ================= 1) Who can I contact for support? A: A support forum for OJS is available at . Bugs or feature requests can be reported at: Although the forum is the preferred method of contact, email inquiries regarding OJS can be sent to . Although we will try our best to help you and fix any bugs found in the system, please note that OJS comes with no warranty or guarantee of support. ----------------------------------------------------------------------------- 2) Can I modify the OJS code? A: As OJS is an open source program, you are free to make any code changes that you like. We welcome any code submissions or patches to be posted on the OJS Community Forum at or via Github at if you think your changes may be beneficial to other OJS users. Please note that if you plan on redistributing OJS (either in original or a modified form), you must do so according to the terms of the GNU General Public License v3. See docs/COPYING for the complete terms of this license. =================================== Server Configuration and Management =================================== 1) Will OJS work with PHP as a CGI instead of as an Apache module? A: OJS is known to work reasonably well with PHP as a CGI using Apache's mod_actions. Since there are a number of different ways to configure Apache to use the CGI version of PHP (e.g., through FastCGI, etc.), your mileage may vary with other deployments (feedback is welcomed). On PHP 4 it may be necessary to add "cgi.fix_pathinfo = 1" to the server's php.ini to avoid fatal "No input file specified" errors. This parameter is enabled by default on PHP 5. OJS may not function correctly if the base OJS directory is located outside of the virtual host's DocumentRoot directory (e.g., when using mod_alias or mod_userdir). This is due to a bug/feature in the method PHP uses to determine the SCRIPT_NAME environment variable by stripping the DOCUMENT_ROOT from SCRIPT_FILENAME. ----------------------------------------------------------------------------- 2) Will OJS work correctly in PHP's "safe mode"? A: OJS is known to work reasonably well with PHP's safe mode restrictions (including open_basedir) enabled. Testing has not been extensive, so there may be unknown issues, in particular with very restrictive configurations that disable PHP functions relied on by OJS (feedback is welcomed). ----------------------------------------------------------------------------- 3) Will OJS work in a Microsoft IIS environment, or on other non-Apache web servers? A: OJS is not specifically tested with IIS but is reported to work. Generally speaking, OJS is agnostic towards web server software as long as a standard CGI-like environment is available. ----------------------------------------------------------------------------- 4) How can I create a backup of an OJS site? A: It is strongly recommended that an OJS system be periodically backed up to guard against a failure in OJS or the server software or hardware that could result in data loss. To properly backup an OJS 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 directory. This backup procedure can be easily integrated into any automated backup mechanism. ----------------------------------------------------------------------------- 5) How can I move an existing OJS installation to a different server? A: To move an OJS system 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 OJS directory and non-public files directory - Update config.inc.php with any changed settings for the new server (typically, the base URL, database authentication/access, email, and files settings will differ between servers) ======================= Common Technical Issues ======================= 1) Uploads of large files fail inexplicably. A: 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. ----------------------------------------------------------------------------- 2) Emails sent out by the system are never received. A: By default, OJS sends mail 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. OJS can also be configured to use an SMTP server as specified in config.inc.php, either with or without authentication. ----------------------------------------------------------------------------- 3) I am using Apache 2.0.x, and OJS pages fail to load, producing an error like "File does not exist: .../index.php/index/...". A: 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 http://httpd.apache.org/docs-2.0/mod/core.html for more information about this directive. ----------------------------------------------------------------------------- 4) "Warning: ini_set(): A session is active. You cannot change the session module's ini settings at this time" messages appear when I load OJS. A: Check if session.auto_start is enabled in your php.ini configuration. OJS requires this setting to be disabled, which is the default behaviour in current versions of PHP. ----------------------------------------------------------------------------- 5) The installation form loads successfully, but after clicking the button to install, a blank page appears and the database was not created. A: 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 http://php.net/phpinfo). The OJS 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. php-mysql (for MySQL support), 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 "extension=mysql.so" or "extension=pgsql.so", for example. ========================== Advanced OJS Configuration ========================== 1) 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? A: 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 OJS 2.x configuration file; when this option is enabled, a "Bounce Address" field appears in 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 by OJS 2.x to set the envelope sender is "-f". ----------------------------------------------------------------------------- 2) How can I allow users to search non-text files, such as PDF or Microsoft Word documents? A: OJS supports indexing of non-text files via external conversion applications. The "Search Settings" configuration section in config.inc.php 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). ----------------------------------------------------------------------------- 3) I am changing the URL to my OJS installation. Does OJS need to be reconfigured to be accessible under the new URL? A: 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 config.inc.php. ----------------------------------------------------------------------------- 4) How can I remove "index.php" from the URLs in OJS? A: OJS uses a REST-style URL syntax for all of its links. To force OJS to remove the "index.php" portion of all URLs, edit config.inc.php and set "restful_urls" to "On". In addition, your server will have to support URL rewriting in order to recognize the new URLs. Apache servers use the mod_rewrite plugin, which must be enabled in your httpd.conf, and the following section added to the correct section of either your httpd.conf or an .htaccess file (preferred) in your OJS root directory (the same location as config.inc.php): RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,L]