New: Improved forced install process
Tamper proofed the process by not relying on POST values for forced fields. Disabled all fields set when $force_install_noedit is set. Added a full-featured forced install config file template. On the side: Improved Dolibarr root and url detection. Prevent install locking if install was not successful. Added missing translation on failed administrator creation. Better escaping of posted values.
This commit is contained in:
parent
3fb80d9678
commit
f2a479695e
@ -1,11 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com>
|
* Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2013-2014 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2013-2014 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
* Copyright (C) 2015-2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -28,6 +28,8 @@
|
|||||||
*/
|
*/
|
||||||
include_once 'inc.php';
|
include_once 'inc.php';
|
||||||
|
|
||||||
|
global $langs;
|
||||||
|
|
||||||
$err = 0;
|
$err = 0;
|
||||||
$allowinstall = 0;
|
$allowinstall = 0;
|
||||||
$allowupgrade = false;
|
$allowupgrade = false;
|
||||||
@ -42,7 +44,10 @@ $langs->load("install");
|
|||||||
$useforcedwizard=false;
|
$useforcedwizard=false;
|
||||||
$forcedfile="./install.forced.php";
|
$forcedfile="./install.forced.php";
|
||||||
if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
|
if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
|
||||||
if (@file_exists($forcedfile)) { $useforcedwizard=true; include_once $forcedfile; }
|
if (@file_exists($forcedfile)) {
|
||||||
|
$useforcedwizard = true;
|
||||||
|
include_once $forcedfile;
|
||||||
|
}
|
||||||
|
|
||||||
dolibarr_install_syslog("--- check: Dolibarr install/upgrade process started");
|
dolibarr_install_syslog("--- check: Dolibarr install/upgrade process started");
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
|
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
|
||||||
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
||||||
* Copyright (C) 2004 Sebastien DiCintio <sdicintio@ressource-toi.org>
|
* Copyright (C) 2004 Sebastien DiCintio <sdicintio@ressource-toi.org>
|
||||||
* Copyright (C) 2005-2011 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2011 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
|
* Copyright (C) 2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -28,6 +29,8 @@
|
|||||||
|
|
||||||
include_once 'inc.php';
|
include_once 'inc.php';
|
||||||
|
|
||||||
|
global $langs;
|
||||||
|
|
||||||
$err=0;
|
$err=0;
|
||||||
|
|
||||||
$setuplang=GETPOST("selectlang",'',3)?GETPOST("selectlang",'',3):(isset($_GET["lang"])?$_GET["lang"]:'auto');
|
$setuplang=GETPOST("selectlang",'',3)?GETPOST("selectlang",'',3):(isset($_GET["lang"])?$_GET["lang"]:'auto');
|
||||||
@ -58,12 +61,10 @@ $useforcedwizard=false;
|
|||||||
$forcedfile="./install.forced.php";
|
$forcedfile="./install.forced.php";
|
||||||
if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php"; // Must be after inc.php
|
if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php"; // Must be after inc.php
|
||||||
if (@file_exists($forcedfile)) {
|
if (@file_exists($forcedfile)) {
|
||||||
$useforcedwizard=true; include_once $forcedfile;
|
$useforcedwizard = true;
|
||||||
|
include_once $forcedfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
//$force_install_message='This is the message';
|
|
||||||
//$force_install_noedit=1;
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* View
|
* View
|
||||||
@ -120,37 +121,20 @@ if (! empty($force_install_message))
|
|||||||
print $langs->trans("WebPagesDirectory");
|
print $langs->trans("WebPagesDirectory");
|
||||||
print "</b></td>";
|
print "</b></td>";
|
||||||
|
|
||||||
if(! isset($dolibarr_main_url_root) || dol_strlen($dolibarr_main_url_root) == 0)
|
if (empty($dolibarr_main_url_root)) {
|
||||||
{
|
$dolibarr_main_document_root = detect_dolibarr_main_document_root();
|
||||||
//print "x".$_SERVER["SCRIPT_FILENAME"]." y".$_SERVER["DOCUMENT_ROOT"];
|
|
||||||
|
|
||||||
// Si le php fonctionne en CGI, alors SCRIPT_FILENAME vaut le path du php et
|
|
||||||
// ce n'est pas ce qu'on veut. Dans ce cas, on propose $_SERVER["DOCUMENT_ROOT"]
|
|
||||||
if (preg_match('/^php$/i',$_SERVER["SCRIPT_FILENAME"]) || preg_match('/[\\/]php$/i',$_SERVER["SCRIPT_FILENAME"]) || preg_match('/php\.exe$/i',$_SERVER["SCRIPT_FILENAME"]))
|
|
||||||
{
|
|
||||||
$dolibarr_main_document_root=$_SERVER["DOCUMENT_ROOT"];
|
|
||||||
|
|
||||||
if (! preg_match('/[\\/]dolibarr[\\/]htdocs$/i',$dolibarr_main_document_root))
|
|
||||||
{
|
|
||||||
$dolibarr_main_document_root.="/dolibarr/htdocs";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$dolibarr_main_document_root = substr($_SERVER["SCRIPT_FILENAME"],0,dol_strlen($_SERVER["SCRIPT_FILENAME"]) - 21);
|
|
||||||
// Nettoyage du path propose
|
|
||||||
// Gere les chemins windows avec double "\"
|
|
||||||
$dolibarr_main_document_root = str_replace('\\\\','/',$dolibarr_main_document_root);
|
|
||||||
|
|
||||||
// Supprime les slash ou antislash de fins
|
|
||||||
$dolibarr_main_document_root = preg_replace('/[\\/]+$/','',$dolibarr_main_document_root);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<td class="label" valign="top"><?php
|
<td class="label" valign="top">
|
||||||
if ($force_install_noedit) print '<input type="hidden" value="'.$dolibarr_main_document_root.'" name="main_dir">';
|
<input type="text"
|
||||||
print '<input type="text" size="60" value="'.$dolibarr_main_document_root.'"'.(empty($force_install_noedit)?'':' disabled').' name="main_dir'.(empty($force_install_noedit)?'':'_bis').'">';
|
size="60"
|
||||||
?></td>
|
value="<?php print $dolibarr_main_document_root ?>"
|
||||||
|
name="main_dir"
|
||||||
|
<?php if (!empty($force_install_noedit)) {
|
||||||
|
print 'disabled';
|
||||||
|
} ?>
|
||||||
|
>
|
||||||
|
</td>
|
||||||
<td class="comment"><?php
|
<td class="comment"><?php
|
||||||
print $langs->trans("WithNoSlashAtTheEnd")."<br>";
|
print $langs->trans("WithNoSlashAtTheEnd")."<br>";
|
||||||
print $langs->trans("Examples").":<br>";
|
print $langs->trans("Examples").":<br>";
|
||||||
@ -167,24 +151,21 @@ if (! empty($force_install_message))
|
|||||||
<td valign="top" class="label"><b> <?php print $langs->trans("DocumentsDirectory"); ?></b>
|
<td valign="top" class="label"><b> <?php print $langs->trans("DocumentsDirectory"); ?></b>
|
||||||
</td>
|
</td>
|
||||||
<?php
|
<?php
|
||||||
if (empty($dolibarr_main_data_root))
|
$dolibarr_main_data_root = $force_install_main_data_root;
|
||||||
{
|
if (empty($dolibarr_main_data_root)) {
|
||||||
// Si le repertoire documents non defini, on en propose un par defaut
|
$dolibarr_main_data_root = detect_dolibarr_main_data_root($dolibarr_main_document_root);
|
||||||
if (empty($force_install_main_data_root))
|
|
||||||
{
|
|
||||||
$dolibarr_main_data_root=preg_replace("/\/htdocs$/","",$dolibarr_main_document_root);
|
|
||||||
$dolibarr_main_data_root.="/documents";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$dolibarr_main_data_root=$force_install_main_data_root;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<td class="label" valign="top"><?php
|
<td class="label" valign="top">
|
||||||
if ($force_install_noedit) print '<input type="hidden" value="'.$dolibarr_main_data_root.'" name="main_data_dir">';
|
<input type="text"
|
||||||
print '<input type="text" size="60" value="'.$dolibarr_main_data_root.'"'.(empty($force_install_noedit)?'':' disabled').' name="main_data_dir'.(empty($force_install_noedit)?'':'_bis').'">';
|
size="60"
|
||||||
?></td>
|
value="<?php print $dolibarr_main_data_root ?>"
|
||||||
|
name="main_data_dir"
|
||||||
|
<?php if (!empty($force_install_noedit)) {
|
||||||
|
print 'disabled';
|
||||||
|
} ?>
|
||||||
|
>
|
||||||
|
</td>
|
||||||
<td class="comment"><?php
|
<td class="comment"><?php
|
||||||
print $langs->trans("WithNoSlashAtTheEnd")."<br>";
|
print $langs->trans("WithNoSlashAtTheEnd")."<br>";
|
||||||
print $langs->trans("DirectoryRecommendation")."<br>";
|
print $langs->trans("DirectoryRecommendation")."<br>";
|
||||||
@ -199,39 +180,23 @@ if (! empty($force_install_message))
|
|||||||
|
|
||||||
<!-- Root URL $dolibarr_main_url_root -->
|
<!-- Root URL $dolibarr_main_url_root -->
|
||||||
<?php
|
<?php
|
||||||
if (! empty($main_url)) $dolibarr_main_url_root=$main_url;
|
if (empty($dolibarr_main_url_root)) {
|
||||||
if (empty($dolibarr_main_url_root))
|
$dolibarr_main_url_root = detect_dolibarr_main_url_root();
|
||||||
{
|
|
||||||
// If defined (Ie: Apache with Linux)
|
|
||||||
if (isset($_SERVER["SCRIPT_URI"])) {
|
|
||||||
$dolibarr_main_url_root=$_SERVER["SCRIPT_URI"];
|
|
||||||
}
|
|
||||||
// If defined (Ie: Apache with Caudium)
|
|
||||||
elseif (isset($_SERVER["SERVER_URL"]) && isset($_SERVER["DOCUMENT_URI"])) {
|
|
||||||
$dolibarr_main_url_root=$_SERVER["SERVER_URL"].$_SERVER["DOCUMENT_URI"];
|
|
||||||
}
|
|
||||||
// If SCRIPT_URI, SERVER_URL, DOCUMENT_URI not defined (Ie: Apache 2.0.44 for Windows)
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$proto='http';
|
|
||||||
if (! empty($_SERVER["HTTP_HOST"])) $serverport=$_SERVER["HTTP_HOST"];
|
|
||||||
else $serverport=$_SERVER["SERVER_NAME"];
|
|
||||||
$dolibarr_main_url_root=$proto."://".$serverport.$_SERVER["SCRIPT_NAME"];
|
|
||||||
}
|
|
||||||
// Clean proposed URL
|
|
||||||
$dolibarr_main_url_root = preg_replace('/\/fileconf\.php$/','',$dolibarr_main_url_root); // Remove the /fileconf.php
|
|
||||||
$dolibarr_main_url_root = preg_replace('/\/$/','',$dolibarr_main_url_root); // Remove the /
|
|
||||||
$dolibarr_main_url_root = preg_replace('/\/index\.php$/','',$dolibarr_main_url_root); // Remove the /index.php
|
|
||||||
$dolibarr_main_url_root = preg_replace('/\/install$/','',$dolibarr_main_url_root); // Remove the /install
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top" class="label"><b> <?php echo $langs->trans("URLRoot"); ?></b>
|
<td valign="top" class="label"><b> <?php echo $langs->trans("URLRoot"); ?></b>
|
||||||
</td>
|
</td>
|
||||||
<td valign="top" class="label"><?php
|
<td valign="top" class="label">
|
||||||
if ($force_install_noedit) print '<input type="hidden" value="'.$dolibarr_main_url_root.'" name="main_url">';
|
<input type="text"
|
||||||
print '<input type="text" size="60" value="'.$dolibarr_main_url_root.'"'.(empty($force_install_noedit)?'':' disabled').' name="main_url'.(empty($force_install_noedit)?'':'_bis').'">';
|
size="60"
|
||||||
?></td>
|
name="main_url"
|
||||||
|
value="<?php print $dolibarr_main_url_root; ?> "
|
||||||
|
<?php if (!empty($force_install_noedit)) {
|
||||||
|
print 'disabled';
|
||||||
|
} ?>
|
||||||
|
>
|
||||||
|
</td>
|
||||||
<td class="comment"><?php print $langs->trans("Examples").":<br>"; ?>
|
<td class="comment"><?php print $langs->trans("Examples").":<br>"; ?>
|
||||||
<ul>
|
<ul>
|
||||||
<li>http://localhost/</li>
|
<li>http://localhost/</li>
|
||||||
@ -245,9 +210,17 @@ if (! empty($force_install_message))
|
|||||||
?>
|
?>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top" class="label"><?php echo $langs->trans("ForceHttps"); ?></td>
|
<td valign="top" class="label"><?php echo $langs->trans("ForceHttps"); ?></td>
|
||||||
<td class="label" valign="top"><input type="checkbox"
|
<td class="label" valign="top">
|
||||||
name="main_force_https"
|
<input type="checkbox"
|
||||||
<?php if (! empty($force_install_mainforcehttps)) print ' checked'; ?>></td>
|
name="main_force_https"
|
||||||
|
<?php if (!empty($force_install_mainforcehttps)) {
|
||||||
|
print 'checked';
|
||||||
|
} ?>
|
||||||
|
<?php if ($force_install_noedit == 2 && $force_install_mainforcehttps !== null) {
|
||||||
|
print 'disabled';
|
||||||
|
} ?>
|
||||||
|
>
|
||||||
|
</td>
|
||||||
<td class="comment"><?php echo $langs->trans("CheckToForceHttps"); ?>
|
<td class="comment"><?php echo $langs->trans("CheckToForceHttps"); ?>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
@ -265,13 +238,18 @@ if (! empty($force_install_message))
|
|||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="label" valign="top"><b> <?php echo $langs->trans("DatabaseName"); ?>
|
<td class="label" valign="top"><b> <?php echo $langs->trans("DatabaseName"); ?>
|
||||||
</b></td>
|
</b></td>
|
||||||
|
<td class="label" valign="top">
|
||||||
<td class="label" valign="top"><input type="text" id="db_name"
|
<input type="text" id="db_name"
|
||||||
name="db_name"
|
name="db_name"
|
||||||
value="<?php echo (! empty($dolibarr_main_db_name))?$dolibarr_main_db_name:($force_install_database?$force_install_database:'dolibarr'); ?>"></td>
|
value="<?php echo (!empty($dolibarr_main_db_name)) ? $dolibarr_main_db_name : ($force_install_database ? $force_install_database : 'dolibarr'); ?>"
|
||||||
<td class="comment"><?php echo $langs->trans("DatabaseName"); ?></td>
|
<?php if ($force_install_noedit == 2 && $force_install_database !== null) {
|
||||||
|
print 'disabled';
|
||||||
|
} ?>
|
||||||
|
>
|
||||||
|
</td>
|
||||||
|
<td class="comment"><?php echo $langs->trans("DatabaseName"); ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
@ -286,7 +264,8 @@ if (! empty($force_install_message))
|
|||||||
<td valign="top" class="label"><b> <?php echo $langs->trans("DriverType"); ?>
|
<td valign="top" class="label"><b> <?php echo $langs->trans("DriverType"); ?>
|
||||||
</b></td>
|
</b></td>
|
||||||
|
|
||||||
<td class="label"><?php
|
<td class="label">
|
||||||
|
<?php
|
||||||
|
|
||||||
$defaultype=! empty($dolibarr_main_db_type)?$dolibarr_main_db_type:($force_install_type?$force_install_type:'mysqli');
|
$defaultype=! empty($dolibarr_main_db_type)?$dolibarr_main_db_type:($force_install_type?$force_install_type:'mysqli');
|
||||||
|
|
||||||
@ -342,13 +321,17 @@ if (! empty($force_install_message))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
?>
|
||||||
|
<select id="db_type"
|
||||||
|
name="db_type"
|
||||||
|
<?php if ($force_install_noedit && $force_install_type !== null) {
|
||||||
|
print 'disabled';
|
||||||
|
} ?>
|
||||||
|
>
|
||||||
|
<?php print $option; ?>
|
||||||
|
</select>
|
||||||
|
|
||||||
if ($force_install_noedit && $force_install_type) print '<input id="db_type" type="hidden" value="'.$force_install_type.'" name="db_type">';
|
</td>
|
||||||
print '<select id="db_type" name="db_type'.(empty($force_install_noedit) || empty($force_install_type)?'':'_bis').'"'.($force_install_noedit && $force_install_type?' disabled':'').'>';
|
|
||||||
print $option;
|
|
||||||
print '</select>';
|
|
||||||
|
|
||||||
?></td>
|
|
||||||
<td class="comment"><?php echo $langs->trans("DatabaseType"); ?></td>
|
<td class="comment"><?php echo $langs->trans("DatabaseType"); ?></td>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
@ -356,11 +339,14 @@ if (! empty($force_install_message))
|
|||||||
<tr class="hidesqlite">
|
<tr class="hidesqlite">
|
||||||
<td valign="top" class="label"><b> <?php echo $langs->trans("Server"); ?>
|
<td valign="top" class="label"><b> <?php echo $langs->trans("Server"); ?>
|
||||||
</b></td>
|
</b></td>
|
||||||
<td valign="top" class="label"><input type="text"
|
<td valign="top" class="label">
|
||||||
name="db_host<?php print ($force_install_noedit==2 && $force_install_dbserver)?'_bis':''; ?>"
|
<input type="text"
|
||||||
<?php if ($force_install_noedit==2 && $force_install_dbserver) print ' disabled'; ?>
|
name="db_host"
|
||||||
value="<?php print (! empty($dolibarr_main_db_host))?$dolibarr_main_db_host:(empty($force_install_dbserver)?'localhost':$force_install_dbserver); ?>">
|
value="<?php print (!empty($force_install_dbserver) ? $force_install_dbserver : (!empty($dolibarr_main_db_host) ? $dolibarr_main_db_host : 'localhost')); ?>"
|
||||||
<?php if ($force_install_noedit==2 && $force_install_dbserver) print '<input type="hidden" name="db_host" value="'.((! empty($dolibarr_main_db_host))?$dolibarr_main_db_host:$force_install_dbserver).'">'; ?>
|
<?php if ($force_install_noedit == 2 && $force_install_dbserver !== null) {
|
||||||
|
print ' disabled';
|
||||||
|
} ?>
|
||||||
|
>
|
||||||
</td>
|
</td>
|
||||||
<td class="comment"><?php echo $langs->trans("ServerAddressDescription"); ?>
|
<td class="comment"><?php echo $langs->trans("ServerAddressDescription"); ?>
|
||||||
</td>
|
</td>
|
||||||
@ -369,11 +355,15 @@ if (! empty($force_install_message))
|
|||||||
|
|
||||||
<tr class="hidesqlite">
|
<tr class="hidesqlite">
|
||||||
<td valign="top" class="label"><?php echo $langs->trans("Port"); ?></td>
|
<td valign="top" class="label"><?php echo $langs->trans("Port"); ?></td>
|
||||||
<td valign="top" class="label"><input type="text" id="db_port"
|
<td valign="top" class="label">
|
||||||
name="db_port<?php print ($force_install_noedit==2 && $force_install_port)?'_bis':''; ?>"
|
<input type="text"
|
||||||
<?php if ($force_install_noedit==2 && $force_install_port) print ' disabled'; ?>
|
name="db_port"
|
||||||
value="<?php print (! empty($dolibarr_main_db_port))?$dolibarr_main_db_port:$force_install_port; ?>">
|
id="db_port"
|
||||||
<?php if ($force_install_noedit==2 && $force_install_port) print '<input type="hidden" name="db_port" value="'.((! empty($dolibarr_main_db_port))?$dolibarr_main_db_port:$force_install_port).'">'; ?>
|
value="<?php print (!empty($force_install_port)) ? $force_install_port : $dolibarr_main_db_port; ?>"
|
||||||
|
<?php if ($force_install_noedit == 2 && $force_install_port !== null) {
|
||||||
|
print ' disabled';
|
||||||
|
} ?>
|
||||||
|
>
|
||||||
</td>
|
</td>
|
||||||
<td class="comment"><?php echo $langs->trans("ServerPortDescription"); ?>
|
<td class="comment"><?php echo $langs->trans("ServerPortDescription"); ?>
|
||||||
</td>
|
</td>
|
||||||
@ -383,20 +373,33 @@ if (! empty($force_install_message))
|
|||||||
<tr class="hidesqlite">
|
<tr class="hidesqlite">
|
||||||
<td class="label" valign="top"><?php echo $langs->trans("DatabasePrefix"); ?>
|
<td class="label" valign="top"><?php echo $langs->trans("DatabasePrefix"); ?>
|
||||||
</td>
|
</td>
|
||||||
|
<td class="label" valign="top">
|
||||||
<td class="label" valign="top"><input type="text" id="db_prefix"
|
<input type="text" id="db_prefix"
|
||||||
name="db_prefix"
|
name="db_prefix"
|
||||||
value="<?php echo (! empty($dolibarr_main_db_prefix))?$dolibarr_main_db_prefix:($force_install_prefix?$force_install_prefix:'llx_'); ?>"></td>
|
value="<?php echo(!empty($force_install_prefix) ? $force_install_prefix : (!empty($dolibarr_main_db_prefix) ? $dolibarr_main_db_prefix : 'llx_')); ?>"
|
||||||
|
<?php if ($force_install_noedit == 2 && $force_install_prefix !== null) {
|
||||||
|
print ' disabled';
|
||||||
|
} ?>
|
||||||
|
>
|
||||||
|
</td>
|
||||||
<td class="comment"><?php echo $langs->trans("DatabasePrefix"); ?></td>
|
<td class="comment"><?php echo $langs->trans("DatabasePrefix"); ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr class="hidesqlite">
|
<tr class="hidesqlite">
|
||||||
<td class="label" valign="top"><?php echo $langs->trans("CreateDatabase"); ?>
|
<td class="label" valign="top"><?php echo $langs->trans("CreateDatabase"); ?>
|
||||||
</td>
|
</td>
|
||||||
|
<td class="label" valign="top">
|
||||||
<td class="label" valign="top"><input type="checkbox"
|
<input type="checkbox"
|
||||||
id="db_create_database" name="db_create_database"
|
id="db_create_database"
|
||||||
<?php if ($force_install_createdatabase) print ' checked'; ?>></td>
|
name="db_create_database"
|
||||||
|
<?php if ($force_install_createdatabase) {
|
||||||
|
print ' checked';
|
||||||
|
} ?>
|
||||||
|
<?php if ($force_install_noedit == 2 && $force_install_createdatabase !== null) {
|
||||||
|
print ' disabled';
|
||||||
|
} ?>
|
||||||
|
>
|
||||||
|
</td>
|
||||||
<td class="comment"><?php echo $langs->trans("CheckToCreateDatabase"); ?>
|
<td class="comment"><?php echo $langs->trans("CheckToCreateDatabase"); ?>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -404,33 +407,54 @@ if (! empty($force_install_message))
|
|||||||
<tr class="hidesqlite">
|
<tr class="hidesqlite">
|
||||||
<td class="label" valign="top"><b><?php echo $langs->trans("Login"); ?></b>
|
<td class="label" valign="top"><b><?php echo $langs->trans("Login"); ?></b>
|
||||||
</td>
|
</td>
|
||||||
<td class="label" valign="top"><input type="text" id="db_user"
|
<td class="label" valign="top">
|
||||||
name="db_user"
|
<input type="text" id="db_user"
|
||||||
value="<?php print (! empty($dolibarr_main_db_user))?$dolibarr_main_db_user:$force_install_databaselogin; ?>"></td>
|
name="db_user"
|
||||||
|
value="<?php print (!empty($force_install_databaselogin)) ? $force_install_databaselogin : $dolibarr_main_db_user; ?>"
|
||||||
|
<?php if ($force_install_noedit == 2 && $force_install_databaselogin !== null) {
|
||||||
|
print ' disabled';
|
||||||
|
} ?>
|
||||||
|
>
|
||||||
|
</td>
|
||||||
<td class="comment"><?php echo $langs->trans("AdminLogin"); ?></td>
|
<td class="comment"><?php echo $langs->trans("AdminLogin"); ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr class="hidesqlite">
|
<tr class="hidesqlite">
|
||||||
<td class="label" valign="top"><b><?php echo $langs->trans("Password"); ?></b>
|
<td class="label" valign="top"><b><?php echo $langs->trans("Password"); ?></b>
|
||||||
</td>
|
</td>
|
||||||
<td class="label" valign="top"><input type="password" id="db_pass" autocomplete="off"
|
<td class="label" valign="top">
|
||||||
name="db_pass"
|
<input type="password" id="db_pass" autocomplete="off"
|
||||||
value="<?php
|
name="db_pass"
|
||||||
//$autofill=((! empty($dolibarr_main_db_pass))?$dolibarr_main_db_pass:$force_install_databasepass);
|
value="<?php
|
||||||
$autofill=((! empty($_SESSION['dol_save_pass']))?$_SESSION['dol_save_pass']:$force_install_databasepass);
|
// We don't want to set password. It will be extracted from the forced install file at step1.
|
||||||
if (! empty($dolibarr_main_prod)) $autofill='';
|
$autofill = ((!empty($_SESSION['dol_save_pass'])) ? $_SESSION['dol_save_pass'] : '');
|
||||||
print dol_escape_htmltag($autofill);
|
if (!empty($dolibarr_main_prod)) {
|
||||||
?>"></td>
|
$autofill = '';
|
||||||
|
}
|
||||||
|
print dol_escape_htmltag($autofill);
|
||||||
|
?>"
|
||||||
|
<?php if ($force_install_noedit == 2 && $force_install_databasepass !== null) {
|
||||||
|
print 'disabled';
|
||||||
|
} ?>
|
||||||
|
>
|
||||||
|
</td>
|
||||||
<td class="comment"><?php echo $langs->trans("AdminPassword"); ?></td>
|
<td class="comment"><?php echo $langs->trans("AdminPassword"); ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr class="hidesqlite">
|
<tr class="hidesqlite">
|
||||||
<td class="label" valign="top"><?php echo $langs->trans("CreateUser"); ?>
|
<td class="label" valign="top"><?php echo $langs->trans("CreateUser"); ?>
|
||||||
</td>
|
</td>
|
||||||
|
<td class="label" valign="top">
|
||||||
<td class="label" valign="top"><input type="checkbox"
|
<input type="checkbox"
|
||||||
id="db_create_user" name="db_create_user"
|
id="db_create_user" name="db_create_user"
|
||||||
<?php if (! empty($force_install_createuser)) print ' checked'; ?>></td>
|
<?php if (!empty($force_install_createuser)) {
|
||||||
|
print 'checked';
|
||||||
|
} ?>
|
||||||
|
<?php if ($force_install_noedit == 2 && $force_install_createuser !== null) {
|
||||||
|
print 'disabled';
|
||||||
|
} ?>
|
||||||
|
>
|
||||||
|
</td>
|
||||||
<td class="comment"><?php echo $langs->trans("CheckToCreateUser"); ?>
|
<td class="comment"><?php echo $langs->trans("CheckToCreateUser"); ?>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -438,8 +462,8 @@ if (! empty($force_install_message))
|
|||||||
|
|
||||||
<!-- Super access -->
|
<!-- Super access -->
|
||||||
<?php
|
<?php
|
||||||
$force_install_databaserootlogin=preg_replace('/__SUPERUSERLOGIN__/','root',$force_install_databaserootlogin);
|
$force_install_databaserootlogin = parse_database_login($force_install_databaserootlogin);
|
||||||
$force_install_databaserootpass=preg_replace('/__SUPERUSERPASSWORD__/','',$force_install_databaserootpass);
|
$force_install_databaserootpass = parse_database_pass($force_install_databaserootpass);
|
||||||
?>
|
?>
|
||||||
<tr class="hidesqlite hideroot">
|
<tr class="hidesqlite hideroot">
|
||||||
<td colspan="3" class="label" align="center"><br>
|
<td colspan="3" class="label" align="center"><br>
|
||||||
@ -449,9 +473,17 @@ if (! empty($force_install_message))
|
|||||||
|
|
||||||
<tr class="hidesqlite hideroot">
|
<tr class="hidesqlite hideroot">
|
||||||
<td class="label" valign="top"><b><?php echo $langs->trans("Login"); ?></b></td>
|
<td class="label" valign="top"><b><?php echo $langs->trans("Login"); ?></b></td>
|
||||||
<td class="label" valign="top"><input type="text" id="db_user_root"
|
<td class="label" valign="top">
|
||||||
name="db_user_root" class="needroot"
|
<input type="text"
|
||||||
value="<?php print (! empty($db_user_root))?$db_user_root:$force_install_databaserootlogin; ?>"></td>
|
id="db_user_root"
|
||||||
|
name="db_user_root"
|
||||||
|
class="needroot"
|
||||||
|
value="<?php print (!empty($force_install_databaserootlogin)) ? $force_install_databaserootlogin : $db_user_root; ?>"
|
||||||
|
<?php if ($force_install_noedit == 2 && $force_install_databaserootlogin !== null) {
|
||||||
|
print 'disabled';
|
||||||
|
} ?>
|
||||||
|
>
|
||||||
|
</td>
|
||||||
<td class="comment"><?php echo $langs->trans("DatabaseRootLoginDescription"); ?>
|
<td class="comment"><?php echo $langs->trans("DatabaseRootLoginDescription"); ?>
|
||||||
<!--
|
<!--
|
||||||
<?php echo '<br>'.$langs->trans("Examples").':<br>' ?>
|
<?php echo '<br>'.$langs->trans("Examples").':<br>' ?>
|
||||||
@ -466,14 +498,30 @@ if (! empty($force_install_message))
|
|||||||
<tr class="hidesqlite hideroot">
|
<tr class="hidesqlite hideroot">
|
||||||
<td class="label" valign="top"><b><?php echo $langs->trans("Password"); ?></b>
|
<td class="label" valign="top"><b><?php echo $langs->trans("Password"); ?></b>
|
||||||
</td>
|
</td>
|
||||||
<td class="label" valign="top"><input type="password" autocomplete="off"
|
<td class="label" valign="top">
|
||||||
id="db_pass_root" name="db_pass_root" class="needroot"
|
<input type="password"
|
||||||
value="<?php
|
autocomplete="off"
|
||||||
$autofill=((! empty($db_pass_root))?$db_pass_root:$force_install_databaserootpass);
|
id="db_pass_root"
|
||||||
if (! empty($dolibarr_main_prod)) $autofill=''; // Do not autofill password if instance is a production instance
|
name="db_pass_root"
|
||||||
if (! empty($_SERVER["SERVER_NAME"]) && ! in_array($_SERVER["SERVER_NAME"], array('127.0.0.1', 'localhost'))) $autofill=''; // Do not autofill password for remote access
|
class="needroot"
|
||||||
print dol_escape_htmltag($autofill);
|
value="<?php
|
||||||
?>"></td>
|
// We don't want to set password. It will be extracted from the forced install file at step1.
|
||||||
|
$autofill = ((!empty($force_install_database_rootpass)) ? '' : $db_pass_root);
|
||||||
|
if (!empty($dolibarr_main_prod)) {
|
||||||
|
$autofill = '';
|
||||||
|
} // Do not autofill password if instance is a production instance
|
||||||
|
if (!empty($_SERVER["SERVER_NAME"]) && !in_array($_SERVER["SERVER_NAME"],
|
||||||
|
array('127.0.0.1', 'localhost'))
|
||||||
|
) {
|
||||||
|
$autofill = '';
|
||||||
|
} // Do not autofill password for remote access
|
||||||
|
print dol_escape_htmltag($autofill);
|
||||||
|
?>"
|
||||||
|
<?php if ($force_install_noedit == 2 && $force_install_databaserootpass !== null) {
|
||||||
|
print ' disabled';
|
||||||
|
} ?>
|
||||||
|
>
|
||||||
|
</td>
|
||||||
<td class="comment"><?php echo $langs->trans("KeepEmptyIfNoPassword"); ?>
|
<td class="comment"><?php echo $langs->trans("KeepEmptyIfNoPassword"); ?>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -529,7 +577,7 @@ jQuery(document).ready(function() {
|
|||||||
jQuery("#db_create_user").click(function() {
|
jQuery("#db_create_user").click(function() {
|
||||||
init_needroot();
|
init_needroot();
|
||||||
});
|
});
|
||||||
<?php if ($force_install_noedit && empty($force_install_databasepass)) { ?>
|
<?php if ($force_install_noedit == 2 && empty($force_install_databasepass)) { ?>
|
||||||
jQuery("#db_pass").focus();
|
jQuery("#db_pass").focus();
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
});
|
});
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
||||||
* Copyright (C) 2004 Sebastien DiCintio <sdicintio@ressource-toi.org>
|
* Copyright (C) 2004 Sebastien DiCintio <sdicintio@ressource-toi.org>
|
||||||
* Copyright (C) 2007-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2007-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2012 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2012 Marcos García <marcosgdf@gmail.com>
|
||||||
|
* Copyright (C) 2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -489,3 +490,92 @@ function dolibarr_install_syslog($message, $level=LOG_DEBUG)
|
|||||||
dol_syslog($message,$level);
|
dol_syslog($message,$level);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Automatically detect Dolibarr's main document root
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
function detect_dolibarr_main_document_root()
|
||||||
|
{
|
||||||
|
// If PHP is in CGI mode, SCRIPT_FILENAME is PHP's path.
|
||||||
|
// Since that's not what we want, we suggest $_SERVER["DOCUMENT_ROOT"]
|
||||||
|
if (preg_match('/php$/i', $_SERVER["SCRIPT_FILENAME"]) || preg_match('/[\\/]php$/i',
|
||||||
|
$_SERVER["SCRIPT_FILENAME"]) || preg_match('/php\.exe$/i', $_SERVER["SCRIPT_FILENAME"])
|
||||||
|
) {
|
||||||
|
$dolibarr_main_document_root = $_SERVER["DOCUMENT_ROOT"];
|
||||||
|
|
||||||
|
if (!preg_match('/[\\/]dolibarr[\\/]htdocs$/i', $dolibarr_main_document_root)) {
|
||||||
|
$dolibarr_main_document_root .= "/dolibarr/htdocs";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// We assume /install to be under /htdocs, so we get the parent directory of the current directory
|
||||||
|
$dolibarr_main_document_root = dirname(dirname($_SERVER["SCRIPT_FILENAME"]));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $dolibarr_main_document_root;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Automatically detect Dolibarr's main data root
|
||||||
|
*
|
||||||
|
* @param string $dolibarr_main_document_root Current main document root
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
function detect_dolibarr_main_data_root($dolibarr_main_document_root)
|
||||||
|
{
|
||||||
|
$dolibarr_main_data_root = preg_replace("/\/htdocs$/", "", $dolibarr_main_document_root);
|
||||||
|
$dolibarr_main_data_root .= "/documents";
|
||||||
|
return $dolibarr_main_data_root;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Automatically detect Dolibarr's main URL root
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
function detect_dolibarr_main_url_root()
|
||||||
|
{
|
||||||
|
// If defined (Ie: Apache with Linux)
|
||||||
|
if (isset($_SERVER["SCRIPT_URI"])) {
|
||||||
|
$dolibarr_main_url_root = $_SERVER["SCRIPT_URI"];
|
||||||
|
} // If defined (Ie: Apache with Caudium)
|
||||||
|
elseif (isset($_SERVER["SERVER_URL"]) && isset($_SERVER["DOCUMENT_URI"])) {
|
||||||
|
$dolibarr_main_url_root = $_SERVER["SERVER_URL"] . $_SERVER["DOCUMENT_URI"];
|
||||||
|
} // If SCRIPT_URI, SERVER_URL, DOCUMENT_URI not defined (Ie: Apache 2.0.44 for Windows)
|
||||||
|
else {
|
||||||
|
$proto = 'http';
|
||||||
|
if (!empty($_SERVER["HTTP_HOST"])) {
|
||||||
|
$serverport = $_SERVER["HTTP_HOST"];
|
||||||
|
} else {
|
||||||
|
$serverport = $_SERVER["SERVER_NAME"];
|
||||||
|
}
|
||||||
|
$dolibarr_main_url_root = $proto . "://" . $serverport . $_SERVER["SCRIPT_NAME"];
|
||||||
|
}
|
||||||
|
// Clean proposed URL
|
||||||
|
// We assume /install to be under /htdocs, so we get the parent path of the current URL
|
||||||
|
$dolibarr_main_url_root = dirname(dirname($dolibarr_main_url_root));
|
||||||
|
|
||||||
|
return $dolibarr_main_url_root;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Replaces automatic database login by actual value
|
||||||
|
*
|
||||||
|
* @param string $force_install_databaserootlogin Login
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
function parse_database_login($force_install_databaserootlogin)
|
||||||
|
{
|
||||||
|
return preg_replace('/__SUPERUSERLOGIN__/', 'root', $force_install_databaserootlogin);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Replaces automatic database password by actual value
|
||||||
|
*
|
||||||
|
* @param string $force_install_databaserootpass Password
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
function parse_database_pass($force_install_databaserootpass)
|
||||||
|
{
|
||||||
|
return preg_replace('/__SUPERUSERPASSWORD__/', '', $force_install_databaserootpass);
|
||||||
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
* Copyright (C) 2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -26,6 +27,8 @@ include_once 'inc.php';
|
|||||||
include_once '../core/class/html.form.class.php';
|
include_once '../core/class/html.form.class.php';
|
||||||
include_once '../core/class/html.formadmin.class.php';
|
include_once '../core/class/html.formadmin.class.php';
|
||||||
|
|
||||||
|
global $langs;
|
||||||
|
|
||||||
$err = 0;
|
$err = 0;
|
||||||
|
|
||||||
// If the config file exists and is filled, we're not on first install so we skip the language selection page
|
// If the config file exists and is filled, we're not on first install so we skip the language selection page
|
||||||
|
|||||||
73
htdocs/install/install.forced.sample.php
Normal file
73
htdocs/install/install.forced.sample.php
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @var bool Hide PHP informations */
|
||||||
|
$force_install_nophpinfo = true;
|
||||||
|
|
||||||
|
/** @var int 1 = Lock and hide environment variables, 2 = Lock all set variables */
|
||||||
|
$force_install_noedit = 2;
|
||||||
|
|
||||||
|
/** @var string Information message */
|
||||||
|
$force_install_message = 'Welcome to your Dolibarr install';
|
||||||
|
|
||||||
|
/** @var string Data root absolute path (documents folder) */
|
||||||
|
$force_install_main_data_root = null;
|
||||||
|
|
||||||
|
/** @var bool Force HTTPS */
|
||||||
|
$force_install_mainforcehttps = true;
|
||||||
|
|
||||||
|
/** @var string Database name */
|
||||||
|
$force_install_database = 'dolibarr';
|
||||||
|
|
||||||
|
/** @var string Database driver (mysql|mysqli|pgsql|mssql|sqlite|sqlite3) */
|
||||||
|
$force_install_type = 'mysqli';
|
||||||
|
|
||||||
|
/** @var string Database server host */
|
||||||
|
$force_install_dbserver = 'localhost';
|
||||||
|
|
||||||
|
/** @var int Database server port */
|
||||||
|
$force_install_port = 3306;
|
||||||
|
|
||||||
|
/** @var string Database tables prefix */
|
||||||
|
$force_install_prefix = 'llx_';
|
||||||
|
|
||||||
|
/** @var bool Force database creation */
|
||||||
|
$force_install_createdatabase = true;
|
||||||
|
|
||||||
|
/** @var string Database username */
|
||||||
|
$force_install_databaselogin = 'root';
|
||||||
|
|
||||||
|
/** @var string Database password */
|
||||||
|
$force_install_databasepass = '';
|
||||||
|
|
||||||
|
/** @var bool Force database user creation */
|
||||||
|
$force_install_createuser = false;
|
||||||
|
|
||||||
|
/** @var string Database root username */
|
||||||
|
$force_install_databaserootlogin = 'root';
|
||||||
|
|
||||||
|
/** @var string Database root password */
|
||||||
|
$force_install_databaserootpass = '';
|
||||||
|
|
||||||
|
/** @var string Dolibarr super-administrator username */
|
||||||
|
$force_install_dolibarrlogin = 'admin';
|
||||||
|
|
||||||
|
/** @var bool Force install locking */
|
||||||
|
$force_install_lockinstall = true;
|
||||||
|
|
||||||
|
/** @var string Enable module(s) (Comma separated class names list) */
|
||||||
|
$force_install_module = 'modSociete,modFournisseur,modFacture';
|
||||||
@ -1,10 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2004-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2004-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
||||||
* Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
|
* Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
|
||||||
* Copyright (C) 2005-2011 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2011 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
* Copyright (C) 2015-2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -30,6 +30,8 @@ define('DONOTLOADCONF',1); // To avoid loading conf by file inc.php
|
|||||||
|
|
||||||
include 'inc.php';
|
include 'inc.php';
|
||||||
|
|
||||||
|
global $langs;
|
||||||
|
|
||||||
$action=GETPOST('action','alpha');
|
$action=GETPOST('action','alpha');
|
||||||
$setuplang=(GETPOST('selectlang','',3)?GETPOST('selectlang','',3):'auto');
|
$setuplang=(GETPOST('selectlang','',3)?GETPOST('selectlang','',3):'auto');
|
||||||
$langs->setDefaultLang($setuplang);
|
$langs->setDefaultLang($setuplang);
|
||||||
@ -38,12 +40,15 @@ $langs->load("admin");
|
|||||||
$langs->load("install");
|
$langs->load("install");
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
|
|
||||||
// Recuparation des information de connexion
|
// Dolibarr pages directory
|
||||||
|
$main_dir = GETPOST('main_dir');
|
||||||
|
// Directory for generated documents (invoices, orders, ecm, etc...)
|
||||||
|
$main_data_dir = GETPOST('main_data_dir') ? GETPOST('main_data_dir') : $main_dir . '/documents';
|
||||||
|
// Dolibarr root URL
|
||||||
|
$main_url = GETPOST('main_url');
|
||||||
|
// Database login informations
|
||||||
$userroot=GETPOST('db_user_root');
|
$userroot=GETPOST('db_user_root');
|
||||||
$passroot=GETPOST('db_pass_root');
|
$passroot=GETPOST('db_pass_root');
|
||||||
// Repertoire des pages dolibarr
|
|
||||||
$main_dir=GETPOST('main_dir');
|
|
||||||
$main_url=GETPOST('main_url');
|
|
||||||
// Database server
|
// Database server
|
||||||
$db_type=GETPOST('db_type','alpha');
|
$db_type=GETPOST('db_type','alpha');
|
||||||
$db_host=GETPOST('db_host','alpha');
|
$db_host=GETPOST('db_host','alpha');
|
||||||
@ -52,8 +57,16 @@ $db_user=GETPOST('db_user','alpha');
|
|||||||
$db_pass=GETPOST('db_pass');
|
$db_pass=GETPOST('db_pass');
|
||||||
$db_port=GETPOST('db_port','int');
|
$db_port=GETPOST('db_port','int');
|
||||||
$db_prefix=GETPOST('db_prefix','alpha');
|
$db_prefix=GETPOST('db_prefix','alpha');
|
||||||
|
$db_create_database = GETPOST('db_create_database');
|
||||||
|
$db_create_user = GETPOST('db_create_user');
|
||||||
|
// Force https
|
||||||
|
$main_force_https = ((GETPOST("main_force_https") && (GETPOST("main_force_https") == "on" || GETPOST("main_force_https") == 1)) ? '1' : '0');
|
||||||
|
// Use alternative directory
|
||||||
|
$main_use_alt_dir = ((GETPOST("main_use_alt_dir") && (GETPOST("main_use_alt_dir") == "on" || GETPOST("main_use_alt_dir") == 1)) ? '' : '//');
|
||||||
|
// Alternative root directory name
|
||||||
|
$main_alt_dir_name = ((GETPOST("main_alt_dir_name") && GETPOST("main_alt_dir_name") != '') ? GETPOST("main_alt_dir_name") : 'custom');
|
||||||
|
|
||||||
session_start(); // To be able to keep info into session (used for not loosing pass during navigation. pass must not transit throug parmaeters)
|
session_start(); // To be able to keep info into session (used for not loosing pass during navigation. pass must not transit throug parameters)
|
||||||
|
|
||||||
// Save a flag to tell to restore input value if we do back
|
// Save a flag to tell to restore input value if we do back
|
||||||
$_SESSION['dol_save_pass']=$db_pass;
|
$_SESSION['dol_save_pass']=$db_pass;
|
||||||
@ -63,7 +76,58 @@ $_SESSION['dol_save_pass']=$db_pass;
|
|||||||
$useforcedwizard=false;
|
$useforcedwizard=false;
|
||||||
$forcedfile="./install.forced.php";
|
$forcedfile="./install.forced.php";
|
||||||
if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
|
if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
|
||||||
if (@file_exists($forcedfile)) { $useforcedwizard=true; include_once $forcedfile; }
|
if (@file_exists($forcedfile)) {
|
||||||
|
$useforcedwizard = true;
|
||||||
|
include_once $forcedfile;
|
||||||
|
// If forced install is enabled, let's replace post values. These are empty because form fields are disabled.
|
||||||
|
if ($force_install_noedit) {
|
||||||
|
$main_dir = detect_dolibarr_main_document_root();
|
||||||
|
if (!empty($force_install_main_data_root)) {
|
||||||
|
$main_data_dir = $force_install_main_data_root;
|
||||||
|
} else {
|
||||||
|
$main_data_dir = detect_dolibarr_main_data_root($main_dir);
|
||||||
|
}
|
||||||
|
$main_url = detect_dolibarr_main_url_root();
|
||||||
|
if (!empty($force_install_databaserootlogin)) {
|
||||||
|
$userroot = parse_database_login($force_install_databaserootlogin);
|
||||||
|
}
|
||||||
|
if (!empty($force_install_databaserootpass)) {
|
||||||
|
$passroot = parse_database_pass($force_install_databaserootpass);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($force_install_noedit == 2) {
|
||||||
|
if (!empty($force_install_type)) {
|
||||||
|
$db_type = $force_install_type;
|
||||||
|
}
|
||||||
|
if (!empty($force_install_dbserver)) {
|
||||||
|
$db_host = $force_install_dbserver;
|
||||||
|
}
|
||||||
|
if (!empty($force_install_database)) {
|
||||||
|
$db_name = $force_install_database;
|
||||||
|
}
|
||||||
|
if (!empty($force_install_databaselogin)) {
|
||||||
|
$db_user = $force_install_databaselogin;
|
||||||
|
}
|
||||||
|
if (!empty($force_install_databasepass)) {
|
||||||
|
$db_pass = $force_install_databasepass;
|
||||||
|
}
|
||||||
|
if (!empty($force_install_port)) {
|
||||||
|
$db_port = $force_install_port;
|
||||||
|
}
|
||||||
|
if (!empty($force_install_prefix)) {
|
||||||
|
$db_prefix = $force_install_prefix;
|
||||||
|
}
|
||||||
|
if (!empty($force_install_createdatabase)) {
|
||||||
|
$db_create_database = $force_install_createdatabase;
|
||||||
|
}
|
||||||
|
if (!empty($force_install_createuser)) {
|
||||||
|
$db_create_user = $force_install_createuser;
|
||||||
|
}
|
||||||
|
if (!empty($force_install_mainforcehttps)) {
|
||||||
|
$main_force_https = $force_install_mainforcehttps;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
dolibarr_install_syslog("--- step1: entering step1.php page");
|
dolibarr_install_syslog("--- step1: entering step1.php page");
|
||||||
|
|
||||||
@ -134,28 +198,20 @@ if (! empty($main_url) && substr($main_url, dol_strlen($main_url) -1) == "/")
|
|||||||
$main_url = substr($main_url, 0, dol_strlen($main_url)-1);
|
$main_url = substr($main_url, 0, dol_strlen($main_url)-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Directory for generated documents (invoices, orders, ecm, etc...)
|
// Test database connection
|
||||||
$main_data_dir=isset($_POST["main_data_dir"])?$_POST["main_data_dir"]:'';
|
if (! $error) {
|
||||||
if (! $main_data_dir) { $main_data_dir="$main_dir/documents"; }
|
|
||||||
|
|
||||||
|
|
||||||
// Test database connexion
|
|
||||||
if (! $error)
|
|
||||||
{
|
|
||||||
$result=@include_once $main_dir."/core/db/".$db_type.'.class.php';
|
$result=@include_once $main_dir."/core/db/".$db_type.'.class.php';
|
||||||
if ($result)
|
if ($result)
|
||||||
{
|
{
|
||||||
// If we ask database or user creation we need to connect as root, so we need root login
|
// If we ask database or user creation we need to connect as root, so we need root login
|
||||||
if (! empty($_POST["db_create_database"]) && ! $userroot)
|
if (!empty($db_create_database) && !$userroot) {
|
||||||
{
|
|
||||||
print '<div class="error">'.$langs->trans("YouAskDatabaseCreationSoDolibarrNeedToConnect",$db_name).'</div>';
|
print '<div class="error">'.$langs->trans("YouAskDatabaseCreationSoDolibarrNeedToConnect",$db_name).'</div>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'<br><br>';
|
print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'<br><br>';
|
||||||
print $langs->trans("ErrorGoBackAndCorrectParameters");
|
print $langs->trans("ErrorGoBackAndCorrectParameters");
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
if (! empty($_POST["db_create_user"]) && ! $userroot)
|
if (!empty($db_create_user) && !$userroot) {
|
||||||
{
|
|
||||||
print '<div class="error">'.$langs->trans("YouAskLoginCreationSoDolibarrNeedToConnect",$db_user).'</div>';
|
print '<div class="error">'.$langs->trans("YouAskLoginCreationSoDolibarrNeedToConnect",$db_user).'</div>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'<br><br>';
|
print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'<br><br>';
|
||||||
@ -164,11 +220,9 @@ if (! $error)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If we need root access
|
// If we need root access
|
||||||
if (! $error && (! empty($_POST["db_create_database"]) || ! empty($_POST["db_create_user"])))
|
if (!$error && (!empty($db_create_database) || !empty($db_create_user))) {
|
||||||
{
|
|
||||||
$databasefortest=$db_name;
|
$databasefortest=$db_name;
|
||||||
if (! empty($_POST["db_create_database"]))
|
if (!empty($db_create_database)) {
|
||||||
{
|
|
||||||
if ($db_type == 'mysql' || $db_type == 'mysqli')
|
if ($db_type == 'mysql' || $db_type == 'mysqli')
|
||||||
{
|
{
|
||||||
$databasefortest='mysql';
|
$databasefortest='mysql';
|
||||||
@ -189,16 +243,13 @@ if (! $error)
|
|||||||
dol_syslog("databasefortest=" . $databasefortest . " connected=" . $db->connected . " database_selected=" . $db->database_selected, LOG_DEBUG);
|
dol_syslog("databasefortest=" . $databasefortest . " connected=" . $db->connected . " database_selected=" . $db->database_selected, LOG_DEBUG);
|
||||||
//print "databasefortest=".$databasefortest." connected=".$db->connected." database_selected=".$db->database_selected;
|
//print "databasefortest=".$databasefortest." connected=".$db->connected." database_selected=".$db->database_selected;
|
||||||
|
|
||||||
if (empty($_POST["db_create_database"]) && $db->connected && ! $db->database_selected)
|
if (empty($db_create_database) && $db->connected && !$db->database_selected) {
|
||||||
{
|
|
||||||
print '<div class="error">'.$langs->trans("ErrorConnectedButDatabaseNotFound",$db_name).'</div>';
|
print '<div class="error">'.$langs->trans("ErrorConnectedButDatabaseNotFound",$db_name).'</div>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
if (! $db->connected) print $langs->trans("IfDatabaseNotExistsGoBackAndUncheckCreate").'<br><br>';
|
if (! $db->connected) print $langs->trans("IfDatabaseNotExistsGoBackAndUncheckCreate").'<br><br>';
|
||||||
print $langs->trans("ErrorGoBackAndCorrectParameters");
|
print $langs->trans("ErrorGoBackAndCorrectParameters");
|
||||||
$error++;
|
$error++;
|
||||||
}
|
} elseif ($db->error && (empty($db_create_database) && $db->connected)) {
|
||||||
elseif ($db->error && ! (! empty($_POST["db_create_database"]) && $db->connected))
|
|
||||||
{
|
|
||||||
// Note: you may experience error here with message "No such file or directory" when mysql was installed for the first time but not yet launched.
|
// Note: you may experience error here with message "No such file or directory" when mysql was installed for the first time but not yet launched.
|
||||||
if ($db->error == "No such file or directory") print '<div class="error">'.$langs->trans("ErrorToConnectToMysqlCheckInstance").'</div>';
|
if ($db->error == "No such file or directory") print '<div class="error">'.$langs->trans("ErrorToConnectToMysqlCheckInstance").'</div>';
|
||||||
else print '<div class="error">'.$db->error.'</div>';
|
else print '<div class="error">'.$db->error.'</div>';
|
||||||
@ -210,8 +261,7 @@ if (! $error)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// If we need simple access
|
// If we need simple access
|
||||||
if (! $error && (empty($_POST["db_create_database"]) && empty($_POST["db_create_user"])))
|
if (!$error && (empty($db_create_database) && empty($db_create_user))) {
|
||||||
{
|
|
||||||
$db=getDoliDBInstance($db_type, $db_host, $db_user, $db_pass, $db_name, $db_port);
|
$db=getDoliDBInstance($db_type, $db_host, $db_user, $db_pass, $db_name, $db_port);
|
||||||
|
|
||||||
if ($db->error)
|
if ($db->error)
|
||||||
@ -246,8 +296,7 @@ else
|
|||||||
|
|
||||||
if (! $error && $db->connected)
|
if (! $error && $db->connected)
|
||||||
{
|
{
|
||||||
if (! empty($_POST["db_create_database"]))
|
if (! empty($db_create_database)) {
|
||||||
{
|
|
||||||
$result=$db->select_db($db_name);
|
$result=$db->select_db($db_name);
|
||||||
if ($result)
|
if ($result)
|
||||||
{
|
{
|
||||||
@ -262,8 +311,7 @@ if (! $error && $db->connected)
|
|||||||
// Define $defaultCharacterSet and $defaultDBSortingCollation
|
// Define $defaultCharacterSet and $defaultDBSortingCollation
|
||||||
if (! $error && $db->connected)
|
if (! $error && $db->connected)
|
||||||
{
|
{
|
||||||
if (! empty($_POST["db_create_database"])) // If we create database, we force default value
|
if (!empty($db_create_database)) { // If we create database, we force default value
|
||||||
{
|
|
||||||
$defaultCharacterSet=$db->forcecharset;
|
$defaultCharacterSet=$db->forcecharset;
|
||||||
$defaultDBSortingCollation=$db->forcecollate;
|
$defaultDBSortingCollation=$db->forcecollate;
|
||||||
}
|
}
|
||||||
@ -430,15 +478,6 @@ if (! $error && $db->connected && $action == "set")
|
|||||||
// Table prefix
|
// Table prefix
|
||||||
$main_db_prefix = (! empty($db_prefix) ? $db_prefix : 'llx_');
|
$main_db_prefix = (! empty($db_prefix) ? $db_prefix : 'llx_');
|
||||||
|
|
||||||
// Force https
|
|
||||||
$main_force_https = ((GETPOST("main_force_https") && (GETPOST("main_force_https") == "on" || GETPOST("main_force_https") == '1')) ? '1' : '0');
|
|
||||||
|
|
||||||
// Use alternative directory
|
|
||||||
$main_use_alt_dir = ((GETPOST("main_use_alt_dir") && (GETPOST("main_use_alt_dir") == "off" || GETPOST("main_use_alt_dir") == '0')) ? '//' : '');
|
|
||||||
|
|
||||||
// Alternative root directory name
|
|
||||||
$main_alt_dir_name = ((GETPOST("main_alt_dir_name") && GETPOST("main_alt_dir_name") != '') ? GETPOST("main_alt_dir_name") : 'custom');
|
|
||||||
|
|
||||||
// Write conf file on disk
|
// Write conf file on disk
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
@ -469,14 +508,8 @@ if (! $error && $db->connected && $action == "set")
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td><img src="../theme/eldy/img/tick.png" alt="Ok"></td></tr>';
|
print '<td><img src="../theme/eldy/img/tick.png" alt="Ok"></td></tr>';
|
||||||
|
|
||||||
|
|
||||||
$userroot=isset($_POST["db_user_root"])?$_POST["db_user_root"]:"";
|
|
||||||
$passroot=isset($_POST["db_pass_root"])?$_POST["db_pass_root"]:"";
|
|
||||||
|
|
||||||
|
|
||||||
// Si creation utilisateur admin demandee, on le cree
|
// Si creation utilisateur admin demandee, on le cree
|
||||||
if (isset($_POST["db_create_user"]) && $_POST["db_create_user"] == "on")
|
if (isset($db_create_user) && $db_create_user == "on") {
|
||||||
{
|
|
||||||
dolibarr_install_syslog("step1: create database user: " . $dolibarr_main_db_user);
|
dolibarr_install_syslog("step1: create database user: " . $dolibarr_main_db_user);
|
||||||
|
|
||||||
//print $conf->db->host." , ".$conf->db->name." , ".$conf->db->user." , ".$conf->db->port;
|
//print $conf->db->host." , ".$conf->db->name." , ".$conf->db->user." , ".$conf->db->port;
|
||||||
@ -569,8 +602,7 @@ if (! $error && $db->connected && $action == "set")
|
|||||||
|
|
||||||
|
|
||||||
// If database creation is asked, we create it
|
// If database creation is asked, we create it
|
||||||
if (! $error && (isset($_POST["db_create_database"]) && $_POST["db_create_database"] == "on"))
|
if (!$error && (isset($db_create_database) && $db_create_database == "on")) {
|
||||||
{
|
|
||||||
dolibarr_install_syslog("step1: create database: " . $dolibarr_main_db_name . " " . $dolibarr_main_db_character_set . " " . $dolibarr_main_db_collation . " " . $dolibarr_main_db_user);
|
dolibarr_install_syslog("step1: create database: " . $dolibarr_main_db_name . " " . $dolibarr_main_db_character_set . " " . $dolibarr_main_db_collation . " " . $dolibarr_main_db_user);
|
||||||
$newdb=getDoliDBInstance($conf->db->type,$conf->db->host,$userroot,$passroot,'',$conf->db->port);
|
$newdb=getDoliDBInstance($conf->db->type,$conf->db->host,$userroot,$passroot,'',$conf->db->port);
|
||||||
//print 'eee'.$conf->db->type." ".$conf->db->host." ".$userroot." ".$passroot." ".$conf->db->port." ".$newdb->connected." ".$newdb->forcecharset;exit;
|
//print 'eee'.$conf->db->type." ".$conf->db->host." ".$userroot." ".$passroot." ".$conf->db->port." ".$newdb->connected." ".$newdb->forcecharset;exit;
|
||||||
@ -873,7 +905,7 @@ function write_conf_file($conffile)
|
|||||||
|
|
||||||
fputs($fp, '$dolibarr_main_restrict_os_commands=\'mysqldump, mysql, pg_dump, pgrestore\';');
|
fputs($fp, '$dolibarr_main_restrict_os_commands=\'mysqldump, mysql, pg_dump, pgrestore\';');
|
||||||
fputs($fp,"\n");
|
fputs($fp,"\n");
|
||||||
|
|
||||||
fputs($fp, '$dolibarr_nocsrfcheck=\'0\';');
|
fputs($fp, '$dolibarr_nocsrfcheck=\'0\';');
|
||||||
fputs($fp,"\n");
|
fputs($fp,"\n");
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2015 Cedric GROSS <c.gross@kreiz-it.fr>
|
* Copyright (C) 2015 Cedric GROSS <c.gross@kreiz-it.fr>
|
||||||
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
* Copyright (C) 2015-2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -28,6 +28,8 @@ include 'inc.php';
|
|||||||
require_once $dolibarr_main_document_root.'/core/class/conf.class.php';
|
require_once $dolibarr_main_document_root.'/core/class/conf.class.php';
|
||||||
require_once $dolibarr_main_document_root.'/core/lib/admin.lib.php';
|
require_once $dolibarr_main_document_root.'/core/lib/admin.lib.php';
|
||||||
|
|
||||||
|
global $langs;
|
||||||
|
|
||||||
$step = 2;
|
$step = 2;
|
||||||
$ok = 0;
|
$ok = 0;
|
||||||
|
|
||||||
@ -61,7 +63,10 @@ if ($dolibarr_main_db_type == "sqlite3") $choix=5;
|
|||||||
$useforcedwizard=false;
|
$useforcedwizard=false;
|
||||||
$forcedfile="./install.forced.php";
|
$forcedfile="./install.forced.php";
|
||||||
if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
|
if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
|
||||||
if (@file_exists($forcedfile)) { $useforcedwizard=true; include_once $forcedfile; }
|
if (@file_exists($forcedfile)) {
|
||||||
|
$useforcedwizard = true;
|
||||||
|
include_once $forcedfile;
|
||||||
|
}
|
||||||
|
|
||||||
dolibarr_install_syslog("--- step2: entering step2.php page");
|
dolibarr_install_syslog("--- step2: entering step2.php page");
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
||||||
* Copyright (C) 2004 Sebastien DiCintio <sdicintio@ressource-toi.org>
|
* Copyright (C) 2004 Sebastien DiCintio <sdicintio@ressource-toi.org>
|
||||||
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
* Copyright (C) 2015-2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -30,6 +30,7 @@ include_once 'inc.php';
|
|||||||
require_once $dolibarr_main_document_root.'/core/class/conf.class.php';
|
require_once $dolibarr_main_document_root.'/core/class/conf.class.php';
|
||||||
require_once $dolibarr_main_document_root.'/core/lib/admin.lib.php';
|
require_once $dolibarr_main_document_root.'/core/lib/admin.lib.php';
|
||||||
|
|
||||||
|
global $langs;
|
||||||
|
|
||||||
$setuplang=(GETPOST('selectlang','',3)?GETPOST('selectlang','',3):'auto');
|
$setuplang=(GETPOST('selectlang','',3)?GETPOST('selectlang','',3):'auto');
|
||||||
$langs->setDefaultLang($setuplang);
|
$langs->setDefaultLang($setuplang);
|
||||||
@ -41,7 +42,10 @@ $langs->load("install");
|
|||||||
$useforcedwizard=false;
|
$useforcedwizard=false;
|
||||||
$forcedfile="./install.forced.php";
|
$forcedfile="./install.forced.php";
|
||||||
if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
|
if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
|
||||||
if (@file_exists($forcedfile)) { $useforcedwizard=true; include_once $forcedfile; }
|
if (@file_exists($forcedfile)) {
|
||||||
|
$useforcedwizard = true;
|
||||||
|
include_once $forcedfile;
|
||||||
|
}
|
||||||
|
|
||||||
dolibarr_install_syslog("--- step4: entering step4.php page");
|
dolibarr_install_syslog("--- step4: entering step4.php page");
|
||||||
|
|
||||||
@ -75,7 +79,7 @@ $db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db-
|
|||||||
if ($db->ok)
|
if ($db->ok)
|
||||||
{
|
{
|
||||||
print '<tr><td>'.$langs->trans("DolibarrAdminLogin").' :</td><td>';
|
print '<tr><td>'.$langs->trans("DolibarrAdminLogin").' :</td><td>';
|
||||||
print '<input name="login" type="text" value="'.(! empty($_GET["login"])?$_GET["login"]:(isset($force_install_dolibarrlogin)?$force_install_dolibarrlogin:'')).'"></td></tr>';
|
print '<input name="login" type="text" value="' . (!empty($_GET["login"]) ? $_GET["login"] : (isset($force_install_dolibarrlogin) ? $force_install_dolibarrlogin : '')) . '"' . ($force_install_noedit == 2 && $force_install_dolibarrlogin !== null ? ' disabled' : '') . '></td></tr>';
|
||||||
print '<tr><td>'.$langs->trans("Password").' :</td><td>';
|
print '<tr><td>'.$langs->trans("Password").' :</td><td>';
|
||||||
print '<input type="password" name="pass"></td></tr>';
|
print '<input type="password" name="pass"></td></tr>';
|
||||||
print '<tr><td>'.$langs->trans("PasswordAgain").' :</td><td>';
|
print '<tr><td>'.$langs->trans("PasswordAgain").' :</td><td>';
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
||||||
* Copyright (C) 2004 Sebastien DiCintio <sdicintio@ressource-toi.org>
|
* Copyright (C) 2004 Sebastien DiCintio <sdicintio@ressource-toi.org>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
* Copyright (C) 2015-2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -31,6 +31,7 @@ if (file_exists($conffile)) include_once $conffile;
|
|||||||
require_once $dolibarr_main_document_root . '/core/lib/admin.lib.php';
|
require_once $dolibarr_main_document_root . '/core/lib/admin.lib.php';
|
||||||
require_once $dolibarr_main_document_root . '/core/lib/security.lib.php'; // for dol_hash
|
require_once $dolibarr_main_document_root . '/core/lib/security.lib.php'; // for dol_hash
|
||||||
|
|
||||||
|
global $langs;
|
||||||
|
|
||||||
$setuplang=GETPOST("selectlang",'',3)?GETPOST("selectlang",'',3):'auto';
|
$setuplang=GETPOST("selectlang",'',3)?GETPOST("selectlang",'',3):'auto';
|
||||||
$langs->setDefaultLang($setuplang);
|
$langs->setDefaultLang($setuplang);
|
||||||
@ -50,24 +51,25 @@ if (! empty($action) && preg_match('/upgrade/i', $action)) // If it's an old upg
|
|||||||
$langs->load("admin");
|
$langs->load("admin");
|
||||||
$langs->load("install");
|
$langs->load("install");
|
||||||
|
|
||||||
|
$login = GETPOST('login', 'alpha');
|
||||||
|
$pass = GETPOST('pass', 'alpha');
|
||||||
|
$pass_verif = GETPOST('pass_verif', 'alpha');
|
||||||
|
|
||||||
$success=0;
|
$success=0;
|
||||||
|
|
||||||
// Init "forced values" to nothing. "forced values" are used after using an install wizard (using a file install.forced.php).
|
|
||||||
if (! isset($force_install_type)) $force_install_type='';
|
|
||||||
if (! isset($force_install_dbserver)) $force_install_dbserver='';
|
|
||||||
if (! isset($force_install_port)) $force_install_port='';
|
|
||||||
if (! isset($force_install_database)) $force_install_database='';
|
|
||||||
if (! isset($force_install_createdatabase)) $force_install_createdatabase='';
|
|
||||||
if (! isset($force_install_databaselogin)) $force_install_databaselogin='';
|
|
||||||
if (! isset($force_install_databasepass)) $force_install_databasepass='';
|
|
||||||
if (! isset($force_install_databaserootlogin)) $force_install_databaserootlogin='';
|
|
||||||
if (! isset($force_install_databaserootpass)) $force_install_databaserootpass='';
|
|
||||||
if (! isset($force_install_lockinstall)) $force_install_lockinstall='';
|
|
||||||
// Now we load forced value from install.forced.php file.
|
|
||||||
$useforcedwizard=false;
|
$useforcedwizard=false;
|
||||||
$forcedfile="./install.forced.php";
|
$forcedfile="./install.forced.php";
|
||||||
if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
|
if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
|
||||||
if (@file_exists($forcedfile)) { $useforcedwizard=true; include_once $forcedfile; }
|
if (@file_exists($forcedfile)) {
|
||||||
|
$useforcedwizard = true;
|
||||||
|
include_once $forcedfile;
|
||||||
|
// If forced install is enabled, let's replace post values. These are empty because form fields are disabled.
|
||||||
|
if ($force_install_noedit == 2) {
|
||||||
|
if (!empty($force_install_dolibarrlogin)) {
|
||||||
|
$login = $force_install_dolibarrlogin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
dolibarr_install_syslog("--- step5: entering step5.php page");
|
dolibarr_install_syslog("--- step5: entering step5.php page");
|
||||||
|
|
||||||
@ -77,25 +79,21 @@ dolibarr_install_syslog("--- step5: entering step5.php page");
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// If install, check pass and pass_verif used to create admin account
|
// If install, check pass and pass_verif used to create admin account
|
||||||
if ($action == "set")
|
if ($action == "set") {
|
||||||
{
|
if ($pass <> $pass_verif) {
|
||||||
if ($_POST["pass"] <> $_POST["pass_verif"])
|
header("Location: step4.php?error=1&selectlang=$setuplang" . (isset($login) ? '&login=' . $login : ''));
|
||||||
{
|
exit;
|
||||||
header("Location: step4.php?error=1&selectlang=$setuplang".(isset($_POST["login"])?'&login='.$_POST["login"]:''));
|
}
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dol_strlen(trim($_POST["pass"])) == 0)
|
if (dol_strlen(trim($pass)) == 0) {
|
||||||
{
|
header("Location: step4.php?error=2&selectlang=$setuplang" . (isset($login) ? '&login=' . $login : ''));
|
||||||
header("Location: step4.php?error=2&selectlang=$setuplang".(isset($_POST["login"])?'&login='.$_POST["login"]:''));
|
exit;
|
||||||
exit;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (dol_strlen(trim($_POST["login"])) == 0)
|
if (dol_strlen(trim($login)) == 0) {
|
||||||
{
|
header("Location: step4.php?error=3&selectlang=$setuplang" . (isset($login) ? '&login=' . $login : ''));
|
||||||
header("Location: step4.php?error=3&selectlang=$setuplang".(isset($_POST["login"])?'&login='.$_POST["login"]:''));
|
exit;
|
||||||
exit;
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -187,8 +185,8 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i',$action))
|
|||||||
$newuser = new User($db);
|
$newuser = new User($db);
|
||||||
$newuser->lastname='SuperAdmin';
|
$newuser->lastname='SuperAdmin';
|
||||||
$newuser->firstname='';
|
$newuser->firstname='';
|
||||||
$newuser->login=$_POST["login"];
|
$newuser->login = $login;
|
||||||
$newuser->pass=$_POST["pass"];
|
$newuser->pass = $pass;
|
||||||
$newuser->admin=1;
|
$newuser->admin=1;
|
||||||
$newuser->entity=0;
|
$newuser->entity=0;
|
||||||
|
|
||||||
@ -196,7 +194,7 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i',$action))
|
|||||||
$result=$newuser->create($createuser,1);
|
$result=$newuser->create($createuser,1);
|
||||||
if ($result > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
print $langs->trans("AdminLoginCreatedSuccessfuly",$_POST["login"])."<br>";
|
print $langs->trans("AdminLoginCreatedSuccessfuly", $login) . "<br>";
|
||||||
$success = 1;
|
$success = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -204,7 +202,7 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i',$action))
|
|||||||
if ($newuser->error == 'ErrorLoginAlreadyExists')
|
if ($newuser->error == 'ErrorLoginAlreadyExists')
|
||||||
{
|
{
|
||||||
dolibarr_install_syslog('step5: AdminLoginAlreadyExists', LOG_WARNING);
|
dolibarr_install_syslog('step5: AdminLoginAlreadyExists', LOG_WARNING);
|
||||||
print '<br><div class="warning">'.$langs->trans("AdminLoginAlreadyExists",$_POST["login"])."</div><br>";
|
print '<br><div class="warning">' . $langs->trans("AdminLoginAlreadyExists", $login) . "</div><br>";
|
||||||
$success = 1;
|
$success = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -320,8 +318,7 @@ if ($action == "set" || empty($action) || preg_match('/upgrade/i',$action))
|
|||||||
// Create lock file
|
// Create lock file
|
||||||
|
|
||||||
// If first install
|
// If first install
|
||||||
if ($action == "set")
|
if ($action == "set" && $success) {
|
||||||
{
|
|
||||||
if (empty($conf->global->MAIN_VERSION_LAST_UPGRADE) || ($conf->global->MAIN_VERSION_LAST_UPGRADE == DOL_VERSION))
|
if (empty($conf->global->MAIN_VERSION_LAST_UPGRADE) || ($conf->global->MAIN_VERSION_LAST_UPGRADE == DOL_VERSION))
|
||||||
{
|
{
|
||||||
// Install is finished
|
// Install is finished
|
||||||
@ -352,7 +349,7 @@ if ($action == "set")
|
|||||||
|
|
||||||
print $langs->trans("YouNeedToPersonalizeSetup")."<br><br>";
|
print $langs->trans("YouNeedToPersonalizeSetup")."<br><br>";
|
||||||
|
|
||||||
print '<div class="center"><a href="../admin/index.php?mainmenu=home&leftmenu=setup'.(isset($_POST["login"])?'&username='.urlencode($_POST["login"]):'').'">';
|
print '<div class="center"><a href="../admin/index.php?mainmenu=home&leftmenu=setup' . (isset($login) ? '&username=' . urlencode($login) : '') . '">';
|
||||||
print $langs->trans("GoToSetupArea");
|
print $langs->trans("GoToSetupArea");
|
||||||
print '</a></div>';
|
print '</a></div>';
|
||||||
}
|
}
|
||||||
@ -400,7 +397,7 @@ elseif (empty($action) || preg_match('/upgrade/i',$action))
|
|||||||
|
|
||||||
print "<br>";
|
print "<br>";
|
||||||
|
|
||||||
print '<div class="center"><a href="../index.php?mainmenu=home'.(isset($_POST["login"])?'&username='.urlencode($_POST["login"]):'').'">';
|
print '<div class="center"><a href="../index.php?mainmenu=home' . (isset($login) ? '&username=' . urlencode($login) : '') . '">';
|
||||||
print $langs->trans("GoToDolibarr");
|
print $langs->trans("GoToDolibarr");
|
||||||
print '</a></div>';
|
print '</a></div>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2016 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2016 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2010 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2010 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
* Copyright (C) 2015-2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -41,6 +41,8 @@ if (! file_exists($conffile))
|
|||||||
require_once $conffile; if (! isset($dolibarr_main_db_type)) $dolibarr_main_db_type='mysql'; // For backward compatibility
|
require_once $conffile; if (! isset($dolibarr_main_db_type)) $dolibarr_main_db_type='mysql'; // For backward compatibility
|
||||||
require_once $dolibarr_main_document_root.'/core/lib/admin.lib.php';
|
require_once $dolibarr_main_document_root.'/core/lib/admin.lib.php';
|
||||||
|
|
||||||
|
global $langs;
|
||||||
|
|
||||||
$grant_query='';
|
$grant_query='';
|
||||||
$step = 2;
|
$step = 2;
|
||||||
$ok = 0;
|
$ok = 0;
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com>
|
/* Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com>
|
||||||
* Copyright (C) 2005-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2005-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2011 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2011 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
* Copyright (C) 2015-2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -47,6 +47,8 @@ require_once $dolibarr_main_document_root . '/core/lib/price.lib.php';
|
|||||||
require_once $dolibarr_main_document_root . '/core/class/menubase.class.php';
|
require_once $dolibarr_main_document_root . '/core/class/menubase.class.php';
|
||||||
require_once $dolibarr_main_document_root . '/core/lib/files.lib.php';
|
require_once $dolibarr_main_document_root . '/core/lib/files.lib.php';
|
||||||
|
|
||||||
|
global $langs;
|
||||||
|
|
||||||
$grant_query='';
|
$grant_query='';
|
||||||
$step = 2;
|
$step = 2;
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|||||||
@ -85,7 +85,8 @@ WithNoSlashAtTheEnd=Without the slash "/" at the end
|
|||||||
DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
|
DirectoryRecommendation=It is recommanded to use a directory outside of your directory of your web pages.
|
||||||
LoginAlreadyExists=Already exists
|
LoginAlreadyExists=Already exists
|
||||||
DolibarrAdminLogin=Dolibarr admin login
|
DolibarrAdminLogin=Dolibarr admin login
|
||||||
AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
|
AdminLoginAlreadyExists=Dolibarr administrator account '<b>%s</b>' already exists. Go back, if you want to create another one.
|
||||||
|
FailedToCreateAdminLogin=Failed to create Dolibarr administrator account.
|
||||||
WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
|
WarningRemoveInstallDir=Warning, for security reasons, once the install or upgrade is complete, to avoid using install tools again, you should add a file called <b>install.lock</b> into Dolibarr document directory, in order to avoid malicious use of it.
|
||||||
FunctionNotAvailableInThisPHP=Not available on this PHP
|
FunctionNotAvailableInThisPHP=Not available on this PHP
|
||||||
ChoosedMigrateScript=Choose migration script
|
ChoosedMigrateScript=Choose migration script
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user