Enhance DoliWamp installer.

This commit is contained in:
Laurent Destailleur 2009-08-28 13:40:14 +00:00
parent 54116df390
commit 83fce86f80

View File

@ -208,7 +208,8 @@ begin
end end
// Create a page wpInstalling // Prepare an object calle "Page" of type wpInstalling.
// Object will be show later in NextButtonClick function.
Page := CreateInputQueryPage(wpInstalling, Page := CreateInputQueryPage(wpInstalling,
'Technical parameters', '', 'Technical parameters', '',
'If first install, please specify some technical parameters. If you don''t understand, are not sure, or are doing an upgrade, just leave the default values.'); 'If first install, please specify some technical parameters. If you don''t understand, are not sure, or are doing an upgrade, just leave the default values.');
@ -222,8 +223,15 @@ begin
Page.Add('Mysql port (first install only, common choice is 3306) :', False); Page.Add('Mysql port (first install only, common choice is 3306) :', False);
Page.Add('Mysql server and database password you want for root (first install only):', False); Page.Add('Mysql server and database password you want for root (first install only):', False);
end end
else
begin
Page.Add('SMTP server (your own or ISP SMTP server, first install only) :', False);
Page.Add('Apache port (first install only, common choice is 80) :', False);
Page.Add('Mysql port (first install only, common choice is 3306) :', False);
Page.Add('Mysql server and database password you want for root (first install only):', False);
end
// Valeurs par defaut // Default values
Page.Values[0] := smtpServer; Page.Values[0] := smtpServer;
Page.Values[1] := apachePort; Page.Values[1] := apachePort;
Page.Values[2] := mysqlPort; Page.Values[2] := mysqlPort;
@ -257,19 +265,73 @@ end;
function NextButtonClick(CurPageID: Integer): Boolean; function NextButtonClick(CurPageID: Integer): Boolean;
var myResult: Integer; var myResult: Integer;
var res: Boolean;
var paramok: Boolean;
begin begin
res := True;
//MsgBox(''+CurPageID,mbConfirmation,MB_YESNO); //MsgBox(''+CurPageID,mbConfirmation,MB_YESNO);
if CurPageID = Page.ID then if CurPageID = Page.ID then
begin begin
// This must be in if curpage.id = page.id, otherwise it is executed after each Next button
//----------------------------------------------
// copie des dll de php vers apache
//----------------------------------------------
phpDllCopy := 'fdftk.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'fribidi.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'gds32.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'libeay32.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'libmhash.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'libmysql.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'msql.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'libmysqli.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'ntwdblib.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'php5activescript.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'php5isapi.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'php5nsapi.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'ssleay32.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'yaz.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'libmcrypt.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'php5ts.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
// Remove lock file
DeleteFile(pathWithSlashes+'/www/dolibarr/install.lock');
if MsgBox('DoliWamp installer will now start or restart Apache and Mysql, this may last from several seconds to one minute after this confirmation...',mbConfirmation,MB_YESNO) = IDYES then
begin
// Check if parameters already defined in conf.php file // Check if parameters already defined in conf.php file
srcFile := pathWithSlashes+'/www/dolibarr/htdocs/conf/conf.php'; srcFile := pathWithSlashes+'/www/dolibarr/htdocs/conf/conf.php';
if not FileExists (srcFile) then if not FileExists (srcFile) then
begin begin
firstinstall := true; firstinstall := true;
// Values from wizard
mysmtp := Page.Values[0]; mysmtp := Page.Values[0];
myporta := Page.Values[1]; myporta := Page.Values[1];
myportas:= '443'; myportas:= '443';
@ -278,6 +340,9 @@ begin
end end
else else
begin begin
firstinstall := false;
// Values from registry
mysmtp := smtpServer; mysmtp := smtpServer;
myporta := apachePort; myporta := apachePort;
myportas:= '443'; myportas:= '443';
@ -285,14 +350,14 @@ begin
mypass := newPassword; mypass := newPassword;
end end
// Save parameters to registry paramok := True;
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\NLTechno\DoliWamp', 'smtpServer', mysmtp); // TODO Test if choice of param is ok if firstinstall
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\NLTechno\DoliWamp', 'apachePort', myporta);
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\NLTechno\DoliWamp', 'apachePSSL', myportas);
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\NLTechno\DoliWamp', 'mysqlPort', myport);
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\NLTechno\DoliWamp', 'newPassword', mypass);
if paramok
then
begin
//---------------------------------------------- //----------------------------------------------
// Rename file c:/windows/php.ini (we don't want it) // Rename file c:/windows/php.ini (we don't want it)
//---------------------------------------------- //----------------------------------------------
@ -686,55 +751,7 @@ begin
end end
// Uninstall and Install services
// This must be in if curpage.id = page.id, otherwise it is executed after each Next button
//----------------------------------------------
// copie des dll de php vers apache
//----------------------------------------------
phpDllCopy := 'fdftk.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'fribidi.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'gds32.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'libeay32.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'libmhash.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'libmysql.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'msql.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'libmysqli.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'ntwdblib.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'php5activescript.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'php5isapi.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'php5nsapi.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'ssleay32.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'yaz.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'libmcrypt.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
phpDllCopy := 'php5ts.dll';
filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False);
// Remove lock file
DeleteFile(pathWithSlashes+'/www/dolibarr/install.lock');
MsgBox('DoliWamp installer will now start or restart Apache and Mysql, this may last from several seconds to one minute after this confirmation.',mbInformation,MB_OK)
// Install services
batFile := path+'\uninstall_services.bat'; batFile := path+'\uninstall_services.bat';
Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult);
batFile := path+'\install_services.bat'; batFile := path+'\install_services.bat';
@ -753,10 +770,41 @@ begin
batFile := path+'\removefiles.bat'; batFile := path+'\removefiles.bat';
Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult);
// Save parameters to registry
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\NLTechno\DoliWamp', 'smtpServer', mysmtp);
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\NLTechno\DoliWamp', 'apachePort', myporta);
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\NLTechno\DoliWamp', 'apachePSSL', myportas);
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\NLTechno\DoliWamp', 'mysqlPort', myport);
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\NLTechno\DoliWamp', 'newPassword', mypass);
res := True;
end
else
begin
MsgBox('Selected values seems to be already used. Please choose other values.',mbInformation,MB_OK);
res := False;
end
end
else
begin
// MsgBox('Apache and Mysql installation has been canceled. Please select parameters to start their installation.',mbInformation,MB_OK)
res := False;
end
end end
Result := True; Result := res;
end; end;