Page MenuHomePhabricator

installer failure: generation of localsettings.php abort /w ini_set() error
Closed, InvalidPublic

Description

Author: office

Description:
Error message when installing:

Warning: ini_set() has been disabled for security reasons in
/data/members/paid/u/h/uhahn.net/htdocs/www/wiki/config/index.php on line 117

Warning: main(includes/Defines.php): failed to open stream: No such file or
directory in /data/members/paid/u/h/uhahn.net/htdocs/www/wiki/config/index.php
on line 121

Fatal error: main(): Failed opening required 'includes/Defines.php'
(include_path='.:/data/apache/php/mmp_lib:/data/session') in
/data/members/paid/u/h/uhahn.net/htdocs/www/wiki/config/index.php on line 121

Many thanks for explanation & help, U


Version: 1.5.x
Severity: major

Details

Reference
bz3146

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 21 2014, 8:46 PM
bzimport set Reference to bz3146.
bzimport added a subscriber: Unknown Object (MLST).

adam82 wrote:

Did you upload all the files? Including those not in directories?

office wrote:

Yes, all files uploaded into /wiki and subdirectories on the hoster's server.

The procedure fails when calling ini_set() due to the host's security settings
which do not allow executing ini_set().

I have started to

  • copy all files requested (error messages ...) by the setup procedure into the

/config installation directory

  • edit index.php in /config to load the files directly from /install directory

This method is not very practical ... and it may finally fail.

The better/generic solution should probably be to replace the ini_set() command
in config/index.php with something compatible to relatively narrow Apache settings?

Or hardcode the wiki directory path somewhere (where?) in config/index.php?

ezo wrote:

Disabled ini_set()

If the php-function ini_set() has been disabled for security reasons you have to
change some paths. The row-numbers are for version 1.5.1. In the file
config/index.php:

  • 122: require_once( "includes/Defines.php" ); => require_once( "../includes/Defines.php" );
  • 123: require_once( "includes/DefaultSettings.php" ); => require_once( "../includes/DefaultSettings.php" );
  • 124: require_once( "includes/MagicWord.php" ); => require_once( "../includes/MagicWord.php" );
  • 125: require_once( "includes/Namespace.php" ); => require_once( "../includes/Namespace.php" );
  • 166: require_once( "install-utils.inc" ); => require_once( "../install-utils.inc" );
  • 167: require_once( "maintenance/updaters.inc" ); => require_once( "../maintenance/updaters.inc" );
  • 465: require_once( "maintenance/InitialiseMessages.inc" ); => require_once( "../maintenance/InitialiseMessages.inc" );
  • 1284: require_once( "languages/Names.php" ); => require_once( "../languages/Names.php" );

In the file includes/DefaultSettings.php:

  • 27: require_once( 'includes/SiteConfiguration.php' ); => require_once( '../includes/SiteConfiguration.php' );

Then you can run the script index.php again. Don't take notice of the fatal
error in includes/DefaultSettings.php. Just reload the page. After moving
config/LocalSettings.php to the folder above you have to comment out the
ini_set() in LocalSettings.php:

  • 8: ini_set( "include_path", ".:$IP:$IP/includes:$IP/languages" ); => #ini_set( "include_path", ".:$IP:$IP/includes:$IP/languages" );
  • 12: ini_set( 'memory_limit', '20M' ); => #ini_set( 'memory_limit', '20M' );