Installation Issue OJS 3.1.2

Hi

I’m having trouble installing OJS 3.1.2 to our newly purchased web host I assume it’s something to do with the server configuration but I’m not getting any errors in my PHP log when using the GUI install just warnings/Deprecated alerts like:

PHP Warning: Declaration of InstallHandler::validate($request) should be compatible with PKPHandler::validate($requiredContexts = NULL, $request = NULL) in

After hitting install the page just reloads no indication of what the issue might be all fields are filled out (I believe correctly).

Server Config:

Web Host dreamscape networks (crazy domains)

PHP 7.0.33

MySQL Version 10.2.19-MariaDB-log-cll-lve

Apache Version 2.4.37

SQL driver: MySQLi (appears to be the only one installed)

I’ve also tried to install via command line which does connect to the database and start populating the tables but I don’t think the install completes.

Output from cmd install:

*** Install Open Journal Systems [y/N] y

[pre-install]

[load: install.xml]

[version: 3.1.2.0]

[code: Installer Installer::checkPhpVersion]

[code: Installer Installer::createDirectories]

[code: Installer Installer::createDatabase]

[schema: lib/pkp/xml/schema/common.xml]

[schema: lib/pkp/xml/schema/log.xml]

[schema: lib/pkp/xml/schema/controlledVocab.xml]

[schema: lib/pkp/xml/schema/scheduledTasks.xml]

[schema: lib/pkp/xml/schema/temporaryFiles.xml]

[schema: lib/pkp/xml/schema/announcements.xml]

[schema: lib/pkp/xml/schema/reviews.xml]

[schema: lib/pkp/xml/schema/reviewForms.xml]

[schema: lib/pkp/xml/schema/submissions.xml]

[schema: lib/pkp/xml/schema/submissionFiles.xml]

[schema: lib/pkp/xml/schema/categories.xml]

[schema: lib/pkp/xml/schema/notes.xml]

[schema: lib/pkp/xml/schema/views.xml]

[schema: lib/pkp/xml/schema/metadata.xml]

[schema: lib/pkp/xml/schema/genres.xml]

[schema: lib/pkp/xml/schema/tombstone.xml]

[schema: lib/pkp/xml/schema/rolesAndUserGroups.xml]

[schema: lib/pkp/xml/schema/metrics.xml]

[schema: lib/pkp/xml/schema/libraryFiles.xml]

[schema: lib/pkp/xml/schema/navigationMenus.xml]

[schema: dbscripts/xml/ojs_schema.xml]

[data: dbscripts/xml/indexes.xml]

[code: Installer Installer::createData]

I’m assuming the above is not supposed to be the end of the process as the config.inc.php is not updated. I’ve tried updating the config.inc.php manually but the site won’t load and I receive a HTTP ERROR 500 in browser and the following php errors in my log file. (I’ve replaced my server directories with <Host Directory> in the below)

[24-Mar-2019 22:37:30 Australia/Sydney] PHP Fatal error: Uncaught Error: Call to a member function getPrimaryLocale() on null in <Host Directory> /public_html/classes/i18n/AppLocale.inc.php:108

Stack trace:

#0 <Host Directory>/public_html/lib/pkp/classes/i18n/PKPLocale.inc.php(129): AppLocale::getLocale()

#1 <Host Directory>/public_html/lib/pkp/classes/core/Dispatcher.inc.php(131): PKPLocale::initialize(Object(Request))

#2 <Host Directory>/public_html/lib/pkp/classes/core/PKPApplication.inc.php(252): Dispatcher->dispatch(Object(Request))

#3 <Host Directory>/public_html/index.php(68): PKPApplication->execute()

#4 {main}

thrown in <Host Directory>/public_html/classes/i18n/AppLocale.inc.php on line 108

The only other detail that might be relevant using a phpinfo file it lists the server api as LiteSpeed V7.1 not sure if that affects anything as I saw fastcgi mentioned in other threads

I would appreciate any help or suggestions anyone can give. Let me know if you need more details.

You are correct. The output of the installer should continue on to ultimately report

Successfully installed version 3.1.2

If it didn’t progress to the success message, I would have expected a PHP Error or PHP Fatal Error at the end of the output.

It is odd that CrazyDomains is on the end-of-life PHP 7.0 instead of one of the supported PHP releases (PHP 7.1 or later), but I don’t think this would cause a problem.

It would appear that the process either failed in the Installer::createData method or trying to proceed to the Installer::createConfig method.

An unlikely possibility is that your php settings are explicitly suppressing PHP errors. What do you get if you execute:

$ php -i | grep error

?

I’ll try tonight, I can update the php version to 7.1 or 7.2 it was originally on 5 something. I think I did try 7.2 with the gui install at one point but it didn’t help havn’t tried it via command line. Might do that as well.

Sorry ended up working late didn’t get a chance to test out.

This is the output guessing error logging on is good. not sure if any of the others might be an issue.

php -i | grep error
display_errors => STDOUT => STDOUT
display_startup_errors => Off => Off
error_append_string => no value => no value
error_log => error_log => error_log
error_prepend_string => no value => no value
error_reporting => 32767 => 32767
html_errors => Off => Off
ignore_repeated_errors => Off => Off
log_errors => On => On
log_errors_max_len => 1024 => 1024
track_errors => Off => Off
xmlrpc_error_number => 0 => 0
xmlrpc_errors => Off => Off

That should be reporting all errors. If this were my system, my next step would be to identify where in Installer::createData the installation was stopping. This could be done by stepping though the code with a tool such as xdebug (if available), or by adding error_log() statements to report progress to the UI / CLI, e.g.:

	/**
	 * Create initial required data.
	 * @return boolean
	 */
	function createData() {
error_log('entered createData()');
		$siteLocale = $this->getParam('locale');

		// Add initial site administrator user
error_log('add site admin');
		$userDao = DAORegistry::getDAO('UserDAO', $this->dbconn);
		$user = $userDao->newDataObject();
		$user->setUsername($this->getParam('adminUsername'));
		$user->setPassword(Validation::encryptCredentials($this->getParam('adminUsername'), $this->getParam('adminPassword'), $this->getParam('encryption')));
		$user->setGivenName($user->getUsername(), $siteLocale);
		$user->setFamilyName($user->getUsername(), $siteLocale);
		$user->setEmail($this->getParam('adminEmail'));
		$user->setInlineHelp(1);
		if (!$userDao->insertObject($user)) {
			$this->setError(INSTALLER_ERROR_DB, $this->dbconn->errorMsg());
			return false;
		}

		// Create an admin user group
error_log('add admin group');
	AppLocale::requireComponents(LOCALE_COMPONENT_PKP_DEFAULT);
		$userGroupDao = DAORegistry::getDao('UserGroupDAO', $this->dbconn);
		$adminUserGroup = $userGroupDao->newDataObject();
		$adminUserGroup->setRoleId(ROLE_ID_SITE_ADMIN);
		$adminUserGroup->setContextId(CONTEXT_ID_NONE);
		$adminUserGroup->setDefault(true);
		foreach ($this->installedLocales as $locale) {
			$name = __('default.groups.name.siteAdmin', array(), $locale);
			$namePlural = __('default.groups.plural.siteAdmin', array(), $locale);
			$adminUserGroup->setData('name', $name, $locale);
			$adminUserGroup->setData('namePlural', $namePlural, $locale);
		}
		if (!$userGroupDao->insertObject($adminUserGroup)) {
			$this->setError(INSTALLER_ERROR_DB, $this->dbconn->errorMsg());
			return false;
		}

		// Put the installer into this user group
		$userGroupDao->assignUserToGroup($user->getId(), $adminUserGroup->getId());

		// Add initial site data
error_log('add site data');
		$siteDao = DAORegistry::getDAO('SiteDAO', $this->dbconn);
		$site = $siteDao->newDataObject();
		$site->setRedirect(0);
		$site->setMinPasswordLength(INSTALLER_DEFAULT_MIN_PASSWORD_LENGTH);
		$site->setPrimaryLocale($siteLocale);
		$site->setInstalledLocales($this->installedLocales);
		$site->setSupportedLocales($this->installedLocales);
		if (!$siteDao->insertSite($site)) {
			$this->setError(INSTALLER_ERROR_DB, $this->dbconn->errorMsg());
			return false;
		}

		// Install email template list and data for each locale
error_log('add emails and data');
		$emailTemplateDao = DAORegistry::getDAO('EmailTemplateDAO');
		$emailTemplateDao->installEmailTemplates($emailTemplateDao->getMainEmailTemplatesFilename());
		foreach ($this->installedLocales as $locale) {
			$emailTemplateDao->installEmailTemplateData($emailTemplateDao->getMainEmailTemplateDataFilename($locale));
		}

		// Install default site settings
error_log('add site settings');
		$siteSettingsDao = DAORegistry::getDAO('SiteSettingsDAO');
		$siteSettingsDao->installSettings('registry/siteSettings.xml', array(
			'contactEmail' => $this->getParam('adminEmail')
		));

error_log('leaving createData()');
		return true;
	}

Hi
I tried to install the OJS 3.1.2 on localhost, all the parameters seems ok.
but I’m getting errors in my PHP log file says:

[28-Mar-2019 17:54:09 UTC] PHP Warning:  Declaration of InstallHandler::validate($request) should be compatible with PKPHandler::validate($requiredContexts = NULL, $request = NULL) in C:\wamp64\www\ojs\lib\pkp\pages\install\InstallHandler.inc.php on line 118

[28-Mar-2019 17:54:09 UTC] PHP Stack trace:

[28-Mar-2019 17:54:09 UTC] PHP 1. {main}() C:\wamp64\www\ojs\index.php:0

[28-Mar-2019 17:54:09 UTC] PHP 2. Application->execute() C:\wamp64\www\ojs\index.php:68

[28-Mar-2019 17:54:09 UTC] PHP 3. Dispatcher->dispatch() C:\wamp64\www\ojs\lib\pkp\classes\core\PKPApplication.inc.php:252

[28-Mar-2019 17:54:09 UTC] PHP 4. PageRouter->route() C:\wamp64\www\ojs\lib\pkp\classes\core\Dispatcher.inc.php:134

[28-Mar-2019 17:54:09 UTC] PHP 5. require() C:\wamp64\www\ojs\lib\pkp\classes\core\PKPPageRouter.inc.php:190

[28-Mar-2019 17:54:09 UTC] PHP 6. import() C:\wamp64\www\ojs\lib\pkp\pages\install\index.php:25

[28-Mar-2019 17:54:09 UTC] PHP Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; dbObject has a deprecated constructor in C:\wamp64\www\ojs\lib\pkp\lib\adodb\adodb-xmlschema.inc.php on line 106

The errors you’ve shared here are not critical and can be suppressed, if desired. E.g., a PHP setting of:

error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE & ~E_WARNING

If you are seeing functional problems, the errors you are most interested in will specify “PHP Error” or “PHP Fatal”.

Dear @ctgraham
I’ve the same problem. How we can ignore these message? because these warning message prevent a successful installation. i can’t see the next message “Successfully installed version 3.1.2”

These warning messages should not, of themselves, prevent a successful installation. They may, however, be making it harder to find a relevant PHP Error or PHP Fatal message.

To suppress these warnings, you need to modify the PHP error_reporting configuration directive. This is done in settings within your hosting provider, within php.ini (or included files), via an apache PHP configuration directive, or via a code change. The method you use will be dependent on your server; check with your system administrator or hosting provider for a recommendation.

Thank you so much for your quick response