From ed7772a6739d4971f24f4732227cb5f62fe08252 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 14 Mar 2008 18:43:37 +0000 Subject: [PATCH] New: Minor change to allow a new windows .exe setup wizard --- build/exe/doliwamp/doliwamp2.4.iss | 1400 ++++++++++++++-------------- htdocs/install/etape0.php | 120 ++- htdocs/install/fileconf.php | 4 +- htdocs/langs/en_US/install.lang | 6 +- htdocs/langs/fr_FR/install.lang | 6 +- 5 files changed, 803 insertions(+), 733 deletions(-) diff --git a/build/exe/doliwamp/doliwamp2.4.iss b/build/exe/doliwamp/doliwamp2.4.iss index a0010f8aa11..8a0b0976b3a 100644 --- a/build/exe/doliwamp/doliwamp2.4.iss +++ b/build/exe/doliwamp/doliwamp2.4.iss @@ -1,694 +1,706 @@ -; -- Doliwamp.iss -- -; Script to build an auto installer for Dolibarr. -; Idea from WampServer 2 (http://www.wampserver.com) - - -[Setup] -; ----- Change this ----- -AppName=DoliWamp -AppVerName=DoliWamp 2.4 -OutputBaseFilename=DoliWamp 2.4 -; Define full path from wich all relative path are defined -; You must modify this to put here your dolibarr root directory -SourceDir=C:\Work\Applis\WampServer\wamp\www\dolibarr_new\dolibarr -; ----- End of change -AppId=doliwamp -AppPublisher=Laurent Destailleur - NLTechno -AppPublisherURL=http://www.dolibarr.org -AppSupportURL=http://www.dolibarr.org -AppUpdatesURL=http://www.dolibarr.org -AppComments=DoliWamp includes Dolibarr, Apache, PHP and Mysql softwares. -AppCopyright=Copyright (C) 2008 Laurent Destailleur, NLTechno -DefaultDirName=c:\dolibarr -DefaultGroupName=Dolibarr -LicenseFile=COPYING -;Compression=none -Compression=lzma/fast -SolidCompression=yes -WizardImageFile=build\exe\doliwamp\doliwamp.bmp -WizardSmallImageFile=build\exe\doliwamp\doliwampsmall.bmp -SetupIconFile=doc\images\dolibarr.ico -PrivilegesRequired=poweruser -DisableProgramGroupPage=yes -ChangesEnvironment=no -CreateUninstallRegKey=yes -;UninstallDisplayIcon={app}\bidon -OutputDir=build - -[Tasks] -;Name: "autostart"; Description: "Automatically launch DoliWamp server on startup. If you check this option, Services will be installed as automatic. Otherwise, services will be installed as manual and will start and stop with the service manager."; GroupDescription: "Auto Start:" ;Flags: unchecked; -Name: quicklaunchicon; Description: "Create a &Quick Launch icon"; GroupDescription: "Additional icons:"; Flags: unchecked -Name: "desktopicon"; Description: "Create a &Desktop icon"; GroupDescription: "Additional icons:"; Flags: unchecked - -[Dirs] -Name: "{app}\logs" -Name: "{app}\tmp" -Name: "{app}\dolibarr_documents" - -[Files] -; Stop/start -Source: "build\exe\doliwamp\stopdoliwamp.bat"; DestDir: "{app}\"; Flags: ignoreversion; AfterInstall: close() -Source: "build\exe\doliwamp\startdoliwamp.bat"; DestDir: "{app}\"; Flags: ignoreversion; -Source: "build\exe\doliwamp\removefiles.bat"; DestDir: "{app}\"; Flags: ignoreversion; -Source: "build\exe\doliwamp\rundoliwamp.bat.install"; DestDir: "{app}\"; Flags: ignoreversion; -Source: "build\exe\doliwamp\install_services.bat.install"; DestDir: "{app}\"; Flags: ignoreversion; -Source: "build\exe\doliwamp\uninstall_services.bat.install"; DestDir: "{app}\"; Flags: ignoreversion; -Source: "build\exe\doliwamp\mysqlinitpassword.bat.install"; DestDir: "{app}\"; Flags: ignoreversion; -; PhpMyAdmin -Source: "..\..\..\apps\phpmyadmin2.10.1\*.*"; DestDir: "{app}\apps\phpmyadmin2.10.1"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: "config.inc.php,wampserver.conf" -; Apache -Source: "..\..\..\bin\apache\apache2.2.6\*.*"; DestDir: "{app}\bin\apache\apache2.2.6"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: "httpd.conf,wampserver.conf" -; Php -Source: "..\..\..\bin\php\php5.2.5\*.*"; DestDir: "{app}\bin\php\php5.2.5"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: "php.ini,wampserver.conf" -; Mysql -Source: "..\..\..\bin\mysql\mysql5.0.45\*.*"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: "my.ini,data\*,wampserver.conf" -; Mysql database -Source: "build\exe\doliwamp\mysql\*.*"; DestDir: "{app}\bin\mysql\mysql5.0.45\data\mysql"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db" -; Config files -Source: "build\exe\doliwamp\phpmyadmin.conf.install"; DestDir: "{app}\alias"; Flags: ignoreversion; -Source: "build\exe\doliwamp\dolibarr.conf.install"; DestDir: "{app}\alias"; Flags: ignoreversion; -Source: "build\exe\doliwamp\config.inc.php.install"; DestDir: "{app}\apps\phpmyadmin2.10.1"; Flags: ignoreversion; -Source: "build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.2.6\conf"; Flags: ignoreversion; -Source: "build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion; -Source: "build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php5.2.5"; Flags: ignoreversion; -Source: "build\exe\doliwamp\index.php.install"; DestDir: "{app}\www"; Flags: ignoreversion; -; Dolibarr -Source: "external-libs\*.*"; DestDir: "{app}\www\dolibarr\external-libs"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db" -Source: "htdocs\*.*"; DestDir: "{app}\www\dolibarr\htdocs"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db,telephonie\*,*\conf.php" -Source: "doc\*.*"; DestDir: "{app}\www\dolibarr\doc"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db,wiki\*,plaquette\*,dev\*" -Source: "dev\*.*"; DestDir: "{app}\www\dolibarr\dev"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db" -Source: "mysql\*.*"; DestDir: "{app}\www\dolibarr\mysql"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db" -Source: "scripts\*.*"; DestDir: "{app}\www\dolibarr\scripts"; Flags: ignoreversion recursesubdirs onlyifdoesntexist; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db" -Source: "*.*"; DestDir: "{app}\www\dolibarr"; Flags: ignoreversion onlyifdoesntexist; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db" -; Licence -Source: "COPYRIGHT"; DestDir: "{app}"; - - - -[Icons] -Name: "{group}\Dolibarr"; Filename: "{app}\rundoliwamp.bat"; WorkingDir: "{app}"; IconFilename: {app}\www\dolibarr\doc\images\dolibarr.ico -Name: "{group}\Start DoliWamp server"; Filename: "{app}\startdoliwamp.bat"; WorkingDir: "{app}"; IconFilename: {app}\www\dolibarr\doc\images\doliwampon.ico -Name: "{group}\Stop DoliWamp server"; Filename: "{app}\stopdoliwamp.bat"; WorkingDir: "{app}"; IconFilename: {app}\www\dolibarr\doc\images\doliwampoff.ico -Name: "{group}\Uninstall DoliWamp"; Filename: "{app}\unins000.exe"; WorkingDir: "{app}"; IconFilename: {app}\uninstall_services.bat -Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Dolibarr"; WorkingDir: "{app}"; Filename: "{app}\rundoliwamp.bat"; Tasks: quicklaunchicon; IconFilename: {app}\www\dolibarr\doc\images\dolibarr.ico -Name: "{userdesktop}\Dolibarr"; Filename: "{app}\rundoliwamp.bat"; Tasks: desktopicon; IconFilename: {app}\www\dolibarr\doc\images\dolibarr.ico -;Start of servers fromstartup menu disabled as services are auto -;Name: "{userstartup}\DoliWamp server"; Filename: "{app}\startdoliwamp.bat"; WorkingDir: "{app}"; Flags: runminimized; IconFilename: {app}\www\dolibarr\doc\images\dolibarr.ico - - -[Code] - -//variables globales -var phpVersion: String; -var apacheVersion: String; -var path: String; -var pathWithSlashes: String; -var Page: TInputQueryWizardPage; -var smtp: String; - -var smtpServer: String; -var apachePort: String; -var mysqlPort: String; -var newPassword: String; - -var srcFile: String; -var destFile: String; -var srcContents: String; -var browser: String; -var winPath: String; -var mysqlVersion: String; -var wampserverVersion: String; -var phpmyadminVersion: String; -var sqlitemanagerVersion: String; -var tmp: String; -var phpDllCopy: String; -var batFile: String; - - -//----------------------------------------------- - -//procedure lancée au début de l'installation, elle alerte sur les upgrades de WampServer - -function InitializeSetup(): Boolean; -begin - Result := MsgBox('You will install Doliwamp (Apache+Mysql+PHP+Dolibarr) on your computer.' #13#13 'This setup install Dolibarr and third party softwares (Apache, Mysql and PHP) configured for ' #13 'a Dolibarr usage and could not be used for other reasons.' #13#13 'If you want to share your Apache, Mysql and PHP with other projects, you should make a manual' #13 'installation of Dolibarr on your own Apache, Mysql and PHP installation.' #13#13 'Do you want to continue install?', mbConfirmation, MB_YESNO) = idYes; -end; - - - -//----------------------------------------------- - -//procedure qui ferme les services (si ils existent) - -procedure close(); -var myResult: Integer; -begin -path := ExpandConstant('{app}'); -winPath := ExpandConstant('{win}'); - -pathWithSlashes := path; -StringChange (pathWithSlashes, '\','/'); - -batFile := path+'\stopdoliwamp.bat'; -Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); -end; - - - - -//----------------------------------------------------------- -// - -function NextButtonClick(CurPageID: Integer): Boolean; -var myResult: Integer; -begin - - //MsgBox(''+CurPageID,mbConfirmation,MB_YESNO); - - if CurPageID = Page.ID then - begin - - - -//---------------------------------------------- -// renommage du fichier c:/windows/php.ini -//---------------------------------------------- - -if FileExists ('c:/windows/php.ini') then -begin - if MsgBox('A previous c:/windows/php.ini file has been detected in your Windows directory. Do you want DoliWamp to rename it to php_old.ini to avoid conflicts ?',mbConfirmation,MB_YESNO) = IDYES then - begin - RenameFile('c:/windows/php.ini','c:/windows/php_old.ini'); - end -end -if FileExists ('c:/winnt/php.ini') then -begin - if MsgBox('A previous c:/winnt/php.ini file has been detected in your Windows directory. Do you want DoliWamp to rename it to php_old.ini to avoid conflicts ?',mbConfirmation,MB_YESNO) = IDYES then - begin - RenameFile('c:/winnt/php.ini','c:/winnt/php_old.ini'); - end -end - - - - -//---------------------------------------------- -// rundoliwamp.bat -//---------------------------------------------- - -destFile := pathWithSlashes+'/rundoliwamp.bat'; -srcFile := pathWithSlashes+'/rundoliwamp.bat.install'; - -if not FileExists (destFile) and FileExists(srcFile) then -begin - - //navigateur - browser := 'explorer.exe'; - if FileExists ('C:/Program Files/Mozilla Firefox/firefox.exe') then - begin - if MsgBox('Firefox has been detected on your computer. Would you like to use it as the default browser with Dolibarr ?',mbConfirmation,MB_YESNO) = IDYES then - begin - browser := 'C:/Program Files/Mozilla Firefox/firefox.exe'; - end - end - if browser = 'explorer.exe' then - begin - GetOpenFileName('Please choose your default browser. If you are not sure, just click Open :', browser, winPath,'exe files (*.exe)|*.exe|All files (*.*)|*.*' ,'exe'); - end - - LoadStringFromFile (srcFile, srcContents); - StringChange (srcContents, 'WAMPBROWSER', browser); - StringChange (srcContents, 'WAMPAPACHEPORT', apachePort); - SaveStringToFile(destFile,srcContents, False); -end -DeleteFile(SrcFile); - - - - -//---------------------------------------------- -// Fichier alias phpmyadmin -//---------------------------------------------- - -destFile := pathWithSlashes+'/alias/phpmyadmin.conf'; -srcFile := pathWithSlashes+'/alias/phpmyadmin.conf.install'; - -if not FileExists (destFile) then -begin - - LoadStringFromFile (srcFile, srcContents); - - //installDir et version de phpmyadmin - StringChange (srcContents, 'WAMPROOT', pathWithSlashes); - StringChange (srcContents, 'WAMPPHPMYADMINVERSION', phpmyadminVersion); - - SaveStringToFile(destFile,srcContents, False); -end -//else -//begin - - //mise à jour de la version de phpmyadmin -// tmp := GetIniString('apps','phpmyadminVersion',phpmyadminVersion,pathWithSlashes+'/wampmanager.conf'); -// if not CompareText(tmp,phpmyadminVersion) = 0 then -// begin -// SetIniString('apps','phpmyadminVersion',phpmyadminVersion,pathWithSlashes+'/wampmanager.conf'); -// LoadStringFromFile (destFile, srcContents); -// StringChange (srcContents, tmp, phpmyadminVersion); -// SaveStringToFile(destFile,srcContents, False); -// end -//end -DeleteFile(SrcFile); - - - -//---------------------------------------------- -// Fichier alias dolibarr -//---------------------------------------------- - -destFile := pathWithSlashes+'/alias/dolibarr.conf'; -srcFile := pathWithSlashes+'/alias/dolibarr.conf.install'; - -if not FileExists (destFile) then -begin - - LoadStringFromFile (srcFile, srcContents); - - StringChange (srcContents, 'WAMPROOT', pathWithSlashes); - StringChange (srcContents, 'WAMPMYSQLNEWPASSWORD', newPassword); - - SaveStringToFile(destFile,srcContents, False); -end -DeleteFile(SrcFile); - - - - -//---------------------------------------------- -// Fichier de configuration de phpmyadmin -//---------------------------------------------- - -destFile := pathWithSlashes+'/apps/phpmyadmin'+phpmyadminVersion+'/config.inc.php'; -srcFile := pathWithSlashes+'/apps/phpmyadmin'+phpmyadminVersion+'/config.inc.php.install'; - -if not FileExists (destFile) then -begin - - // si un fichier existe pour une version precedente de phpmyadmin, on le recupere - if FileExists (pathWithSlashes+'/apps/phpmyadmin'+tmp+'/config.inc.php') then - begin - LoadStringFromFile (pathWithSlashes+'/apps/phpmyadmin'+tmp+'/config.inc.php', srcContents); - StringChange (srcContents, 'WAMPMYSQLNEWPASSWORD', newPassword); - SaveStringToFile(destFile,srcContents, False); - end - else - begin - // sinon on prends le fichier par defaut - LoadStringFromFile (srcFile, srcContents); - StringChange (srcContents, 'WAMPMYSQLNEWPASSWORD', newPassword); - SaveStringToFile(destFile,srcContents, False); - end -end -//DeleteFile(SrcFile); - - - -//---------------------------------------------- -// Fichier httpd.conf -//---------------------------------------------- - -destFile := pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/conf/httpd.conf'; -srcFile := pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/conf/httpd.conf.install'; - -if not FileExists (destFile) then -begin - LoadStringFromFile (srcFile, srcContents); - - //installDir et version de php - StringChange (srcContents, 'WAMPROOT', pathWithSlashes); - StringChange (srcContents, 'WAMPPHPVERSION', phpVersion); - - SaveStringToFile(destFile,srcContents, False); -end -//DeleteFile(SrcFile); - - - - -//---------------------------------------------- -// Fichier my.ini -//---------------------------------------------- - -destFile := pathWithSlashes+'/bin/mysql/mysql'+mysqlVersion+'/my.ini'; -srcFile := pathWithSlashes+'/bin/mysql/mysql'+mysqlVersion+'/my.ini.install'; - -if not FileExists (destFile) then -begin - LoadStringFromFile (srcFile, srcContents); - - //installDir et version de php - StringChange (srcContents, 'WAMPROOT', pathWithSlashes); - - SaveStringToFile(destFile,srcContents, False); -end -//DeleteFile(SrcFile); - - - - - -//---------------------------------------------- -// Fichier index.php -//---------------------------------------------- - -destFile := pathWithSlashes+'/www/index.php'; -srcFile := pathWithSlashes+'/www/index.php.install'; - -if not FileExists (destFile) then -begin - LoadStringFromFile (srcFile, srcContents); - StringChange (srcContents, 'WAMPPHPVERSION', phpVersion); - StringChange (srcContents, 'WAMPMYSQLVERSION', mysqlVersion); - StringChange (srcContents, 'WAMPAPACHEVERSION', apacheVersion); - SaveStringToFile(destFile, srcContents, False); -end -else -begin - RenameFile(destFile, destFile+'.old'); - LoadStringFromFile (srcFile, srcContents); - StringChange (srcContents, 'WAMPPHPVERSION', phpVersion); - StringChange (srcContents, 'WAMPMYSQLVERSION', mysqlVersion); - StringChange (srcContents, 'WAMPAPACHEVERSION', apacheVersion); - SaveStringToFile(destFile, srcContents, False); -end -DeleteFile(SrcFile); - - - - - -//---------------------------------------------- -// Fichier dolibarr -//---------------------------------------------- - -destFile := pathWithSlashes+'/www/dolibarr/conf/conf.php'; -srcFile := pathWithSlashes+'/www/dolibarr/conf/conf.php.example'; - -if not FileExists (destFile) then -begin - LoadStringFromFile (srcFile, srcContents); - - //installDir et version de php - StringChange (srcContents, '$dolibarr_main_document_root=""', '$dolibarr_main_document_root="{app}/www/dolibarr/htdocs"'); - StringChange (srcContents, '$dolibarr_main_data_root=""', '$dolibarr_main_data_root="{app}/dolibarr_documents"'); - StringChange (srcContents, '$dolibarr_main_db_port=""', '$dolibarr_main_db_port="'+mysqlPort+'"'); - StringChange (srcContents, '$dolibarr_main_db_user=""', '$dolibarr_main_db_user="admin"'); - StringChange (srcContents, '$dolibarr_main_db_pass=""', '$dolibarr_main_db_user="'+newPassword+'"'); - - SaveStringToFile(destFile,srcContents, False); -end - - - - - -//---------------------------------------------- -// Fichier install_services.bat -//---------------------------------------------- - -destFile := pathWithSlashes+'/install_services.bat'; -srcFile := pathWithSlashes+'/install_services.bat.install'; - -if not FileExists (destFile) then -begin - - LoadStringFromFile (srcFile, srcContents); - - //version de apache et mysql - StringChange (srcContents, 'WAMPMYSQLVERSION', mysqlVersion); - StringChange (srcContents, 'WAMPAPACHEVERSION', apacheVersion); - - SaveStringToFile(destFile,srcContents, False); -end -DeleteFile(SrcFile); - - - - - -//---------------------------------------------- -// Fichier install_services_auto.bat -//---------------------------------------------- - -destFile := pathWithSlashes+'/install_services_auto.bat'; -srcFile := pathWithSlashes+'/install_services_auto.bat.install'; - -if not FileExists (destFile) and FileExists (srcFile) then -begin - - LoadStringFromFile (srcFile, srcContents); - - //version de apache et mysql - StringChange (srcContents, 'WAMPMYSQLVERSION', mysqlVersion); - StringChange (srcContents, 'WAMPAPACHEVERSION', apacheVersion); - - SaveStringToFile(destFile,srcContents, False); -end -DeleteFile(SrcFile); - - - - -//---------------------------------------------- -// Fichier uninstall_services.bat -//---------------------------------------------- - -destFile := pathWithSlashes+'/uninstall_services.bat'; -srcFile := pathWithSlashes+'/uninstall_services.bat.install'; - -if not FileExists (destFile) then -begin - - LoadStringFromFile (srcFile, srcContents); - - //version de apache et mysql - StringChange (srcContents, 'WAMPMYSQLVERSION', mysqlVersion); - StringChange (srcContents, 'WAMPAPACHEVERSION', apacheVersion); - - SaveStringToFile(destFile,srcContents, False); -end -DeleteFile(SrcFile); - - - -//---------------------------------------------- -// Fichier mysqlinitpassword.bat -//---------------------------------------------- - -destFile := pathWithSlashes+'/mysqlinitpassword.bat'; -srcFile := pathWithSlashes+'/mysqlinitpassword.bat.install'; - -if not FileExists (destFile) and FileExists (srcFile) then -begin - - LoadStringFromFile (srcFile, srcContents); - - //version de apache et mysql - StringChange (srcContents, 'WAMPMYSQLVERSION', mysqlVersion); - StringChange (srcContents, 'WAMPMYSQLNEWPASSWORD', newPassword); - - SaveStringToFile(destFile,srcContents, False); -end -DeleteFile(SrcFile); - - - - - //---------------------------------------------- - // fichier php.ini dans php - //---------------------------------------------- - destFile := pathWithSlashes+'/bin/php/php'+phpVersion+'/php.ini'; - srcFile := pathWithSlashes+'/bin/php/php'+phpVersion+'/php.ini.install'; - - if not FileExists (destFile) then - begin - smtp := Page.Values[0]; - LoadStringFromFile (srcFile, srcContents); - StringChange (srcContents, 'WAMPROOT', pathWithSlashes); - StringChange (srcContents, 'WAMPSMTP', smtp); - SaveStringToFile(destFile,srcContents, False); - end - - - - - //---------------------------------------------- - // fichier phpForApache.ini dans php - //---------------------------------------------- - - - - destFile := pathWithSlashes+'/bin/php/php'+phpVersion+'/phpForApache.ini'; - if not FileExists (destFile) then - begin - SaveStringToFile(destFile,srcContents, False); - end - - - - //---------------------------------------------- - // fichier php.ini dans apache - //---------------------------------------------- - - - - destFile := pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/php.ini'; - if not FileExists (destFile) then - begin - SaveStringToFile(destFile,srcContents, False); - end - //DeleteFile(SrcFile); - - - // Install services - //Filename: "{app}\uninstall_services.bat"; Flags: runhidden waituntilterminated - batFile := path+'\uninstall_services.bat'; - Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); - //Filename: "{app}\install_services.bat"; Flags: runhidden waituntilterminated - batFile := path+'\install_services.bat'; - Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); - - // Stard services - //Filename: "{app}\startdoliwamp.bat"; Flags: runhidden waituntilterminated - batFile := path+'\startdoliwamp.bat'; - Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); - - // Change mysql password - //Filename: "{app}\mysqlinitpassword.bat"; Flags: runhidden waituntilterminated - batFile := path+'\mysqlinitpassword.bat'; - Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); - - // Remove bat file - //Filename: "{app}\removefiles.bat"; Flags: runhidden waituntilterminated - // batFile := path+'\removefiles.bat'; - // Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); - - end - - Result := True; - -end; - - - - - -//----------------------------------------------- - -//procedure lancée à la fin de l'installation, elle supprime les fichiers d'installation - -procedure DeinitializeSetup(); - -begin -// DeleteFile(path+'\install_services.bat'); -// DeleteFile(path+'\install_services_auto.bat'); -end; - - -procedure InitializeWizard(); -begin - //version des applis, à modifier pour chaque version de WampServer 2 - apacheVersion := '2.2.6'; - phpVersion := '5.2.5' ; - mysqlVersion := '5.0.45'; - wampserverVersion := '2.0'; - phpmyadminVersion := '2.10.1'; - sqlitemanagerVersion := '1.2.0'; - - smtpServer := 'localhost'; - apachePort := '81'; - mysqlPort := '3307'; - newPassword := 'dolibarr'; - - - - - -//---------------------------------------------- -// 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); - -// Define pages - - Page := CreateInputQueryPage(wpInstalling, - 'Technical parameters', '', - 'Please specify some technical parameters. If you don t understand or ' #13 'are not sure, just leave the default values.'); - - Page.Add('SMTP server (your own or ISP SMTP server) :', False); - Page.Add('Apache port:', False); - Page.Add('Mysql port:', False); - Page.Add('Mysql and dolibarr root password:', False); - - // Valeurs par defaut - Page.Values[0] := smtpServer; - Page.Values[1] := apachePort; - Page.Values[2] := mysqlPort; - Page.Values[3] := newPassword; - -end; - - - - -[Run] -; Launch Dolibarr in browser. This is run after Wizard because of postinstall flag -Filename: "{app}\rundoliwamp.bat"; Description: "Launch Dolibarr now"; Flags: shellexec postinstall skipifsilent runhidden - - -[UninstallDelete] -Type: files; Name: "{app}\*.*" -Type: filesandordirs; Name: "{app}\apps" -Type: filesandordirs; Name: "{app}\bin\apache" -Type: filesandordirs; Name: "{app}\bin\php" -Type: filesandordirs; Name: "{app}\help" -Type: filesandordirs; Name: "{app}\lang" -Type: filesandordirs; Name: "{app}\logs" -Type: filesandordirs; Name: "{app}\scripts" -Type: filesandordirs; Name: "{app}\tmp" - - -[UninstallRun] -Filename: "{app}\uninstall_services.bat"; Flags: runhidden - +; -- Doliwamp.iss -- +; Script to build an auto installer for Dolibarr. +; Idea from WampServer 2 (http://www.wampserver.com) + + +[Setup] +; ----- Change this ----- +AppName=DoliWamp +AppVerName=DoliWamp 2.4 +OutputBaseFilename=DoliWamp 2.4 +; Define full path from wich all relative path are defined +; You must modify this to put here your dolibarr root directory +SourceDir=C:\Work\Applis\WampServer\wamp\www\dolibarr_new\dolibarr +; ----- End of change +AppId=doliwamp +AppPublisher=Laurent Destailleur - NLTechno +AppPublisherURL=http://www.dolibarr.org +AppSupportURL=http://www.dolibarr.org +AppUpdatesURL=http://www.dolibarr.org +AppComments=DoliWamp includes Dolibarr, Apache, PHP and Mysql softwares. +AppCopyright=Copyright (C) 2008 Laurent Destailleur, NLTechno +DefaultDirName=c:\dolibarr +DefaultGroupName=Dolibarr +LicenseFile=COPYING +;Compression=none +Compression=lzma/fast +SolidCompression=yes +WizardImageFile=build\exe\doliwamp\doliwamp.bmp +WizardSmallImageFile=build\exe\doliwamp\doliwampsmall.bmp +SetupIconFile=doc\images\dolibarr.ico +PrivilegesRequired=poweruser +DisableProgramGroupPage=yes +ChangesEnvironment=no +CreateUninstallRegKey=yes +;UninstallDisplayIcon={app}\bidon +OutputDir=build + +[Tasks] +;Name: "autostart"; Description: "Automatically launch DoliWamp server on startup. If you check this option, Services will be installed as automatic. Otherwise, services will be installed as manual and will start and stop with the service manager."; GroupDescription: "Auto Start:" ;Flags: unchecked; +Name: quicklaunchicon; Description: "Create a &Quick Launch icon"; GroupDescription: "Additional icons:"; Flags: unchecked +Name: "desktopicon"; Description: "Create a &Desktop icon"; GroupDescription: "Additional icons:"; Flags: unchecked + +[Dirs] +Name: "{app}\logs" +Name: "{app}\tmp" +Name: "{app}\dolibarr_documents" + +[Files] +; Stop/start +Source: "build\exe\doliwamp\stopdoliwamp.bat"; DestDir: "{app}\"; Flags: ignoreversion; AfterInstall: close() +Source: "build\exe\doliwamp\startdoliwamp.bat"; DestDir: "{app}\"; Flags: ignoreversion; +Source: "build\exe\doliwamp\removefiles.bat"; DestDir: "{app}\"; Flags: ignoreversion; +Source: "build\exe\doliwamp\rundoliwamp.bat.install"; DestDir: "{app}\"; Flags: ignoreversion; +Source: "build\exe\doliwamp\install_services.bat.install"; DestDir: "{app}\"; Flags: ignoreversion; +Source: "build\exe\doliwamp\uninstall_services.bat.install"; DestDir: "{app}\"; Flags: ignoreversion; +Source: "build\exe\doliwamp\mysqlinitpassword.bat.install"; DestDir: "{app}\"; Flags: ignoreversion; +; PhpMyAdmin +Source: "..\..\..\apps\phpmyadmin2.10.1\*.*"; DestDir: "{app}\apps\phpmyadmin2.10.1"; Flags: ignoreversion recursesubdirs; Excludes: "config.inc.php,wampserver.conf" +; Apache +Source: "..\..\..\bin\apache\apache2.2.6\*.*"; DestDir: "{app}\bin\apache\apache2.2.6"; Flags: ignoreversion recursesubdirs; Excludes: "httpd.conf,wampserver.conf" +; Php +Source: "..\..\..\bin\php\php5.2.5\*.*"; DestDir: "{app}\bin\php\php5.2.5"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,wampserver.conf" +; Mysql +Source: "..\..\..\bin\mysql\mysql5.0.45\*.*"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion recursesubdirs; Excludes: "my.ini,data\*,wampserver.conf" +; Mysql database +Source: "build\exe\doliwamp\mysql\*.*"; DestDir: "{app}\bin\mysql\mysql5.0.45\data\mysql"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db" +; Dolibarr +Source: "external-libs\*.*"; DestDir: "{app}\www\dolibarr\external-libs"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db" +Source: "htdocs\*.*"; DestDir: "{app}\www\dolibarr\htdocs"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db,telephonie\*,*\conf.php,*\install.forced.php" +Source: "doc\*.*"; DestDir: "{app}\www\dolibarr\doc"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db,wiki\*,plaquette\*,dev\*" +Source: "dev\*.*"; DestDir: "{app}\www\dolibarr\dev"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db" +Source: "mysql\*.*"; DestDir: "{app}\www\dolibarr\mysql"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db" +Source: "scripts\*.*"; DestDir: "{app}\www\dolibarr\scripts"; Flags: ignoreversion recursesubdirs; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db" +Source: "*.*"; DestDir: "{app}\www\dolibarr"; Flags: ignoreversion; Excludes: ".cvsignore,.project,CVS\*,Thumbs.db" +; Config files +Source: "build\exe\doliwamp\phpmyadmin.conf.install"; DestDir: "{app}\alias"; Flags: ignoreversion; +Source: "build\exe\doliwamp\config.inc.php.install"; DestDir: "{app}\apps\phpmyadmin2.10.1"; Flags: ignoreversion; +Source: "build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.2.6\conf"; Flags: ignoreversion; +Source: "build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion; +Source: "build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php5.2.5"; Flags: ignoreversion; +Source: "build\exe\doliwamp\index.php.install"; DestDir: "{app}\www"; Flags: ignoreversion; +Source: "build\exe\doliwamp\install.forced.php.install"; DestDir: "{app}\www\dolibarr\htdocs\install"; Flags: ignoreversion; +; Licence +Source: "COPYRIGHT"; DestDir: "{app}"; + + + +[Icons] +Name: "{group}\Dolibarr"; Filename: "{app}\rundoliwamp.bat"; WorkingDir: "{app}"; IconFilename: {app}\www\dolibarr\doc\images\dolibarr.ico +Name: "{group}\Start DoliWamp server"; Filename: "{app}\startdoliwamp.bat"; WorkingDir: "{app}"; IconFilename: {app}\www\dolibarr\doc\images\doliwampon.ico +Name: "{group}\Stop DoliWamp server"; Filename: "{app}\stopdoliwamp.bat"; WorkingDir: "{app}"; IconFilename: {app}\www\dolibarr\doc\images\doliwampoff.ico +Name: "{group}\Uninstall DoliWamp"; Filename: "{app}\unins000.exe"; WorkingDir: "{app}"; IconFilename: {app}\uninstall_services.bat +Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Dolibarr"; WorkingDir: "{app}"; Filename: "{app}\rundoliwamp.bat"; Tasks: quicklaunchicon; IconFilename: {app}\www\dolibarr\doc\images\dolibarr.ico +Name: "{userdesktop}\Dolibarr"; Filename: "{app}\rundoliwamp.bat"; Tasks: desktopicon; IconFilename: {app}\www\dolibarr\doc\images\dolibarr.ico +;Start of servers fromstartup menu disabled as services are auto +;Name: "{userstartup}\DoliWamp server"; Filename: "{app}\startdoliwamp.bat"; WorkingDir: "{app}"; Flags: runminimized; IconFilename: {app}\www\dolibarr\doc\images\dolibarr.ico + + +[Code] + +//variables globales +var phpVersion: String; +var apacheVersion: String; +var path: String; +var pathWithSlashes: String; +var Page: TInputQueryWizardPage; +var smtp: String; + +var smtpServer: String; +var apachePort: String; +var mysqlPort: String; +var newPassword: String; + +var srcFile: String; +var destFile: String; +var srcContents: String; +var browser: String; +var winPath: String; +var mysqlVersion: String; +var wampserverVersion: String; +var phpmyadminVersion: String; +var sqlitemanagerVersion: String; +var tmp: String; +var phpDllCopy: String; +var batFile: String; + + +//----------------------------------------------- + +//procedure lancée au début de l'installation, elle alerte sur les upgrades de WampServer + +function InitializeSetup(): Boolean; +begin + Result := MsgBox('You will install Doliwamp (Apache+Mysql+PHP+Dolibarr) on your computer.' #13#13 'This setup install Dolibarr and third party softwares (Apache, Mysql and PHP) configured for ' #13 'a Dolibarr usage and could not be used for other reasons.' #13#13 'If you want to share your Apache, Mysql and PHP with other projects, you should make a manual' #13 'installation of Dolibarr on your own Apache, Mysql and PHP installation.' #13#13 'Do you want to continue install?', mbConfirmation, MB_YESNO) = idYes; +end; + + + +//----------------------------------------------- + +//procedure qui ferme les services (si ils existent) + +procedure close(); +var myResult: Integer; +begin +path := ExpandConstant('{app}'); +winPath := ExpandConstant('{win}'); + +pathWithSlashes := path; +StringChange (pathWithSlashes, '\','/'); + +batFile := path+'\stopdoliwamp.bat'; +Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); +end; + + + + +//----------------------------------------------------------- +// + +function NextButtonClick(CurPageID: Integer): Boolean; +var myResult: Integer; +begin + + //MsgBox(''+CurPageID,mbConfirmation,MB_YESNO); + + if CurPageID = Page.ID then + begin + + + +//---------------------------------------------- +// renommage du fichier c:/windows/php.ini +//---------------------------------------------- + +if FileExists ('c:/windows/php.ini') then +begin + if MsgBox('A previous c:/windows/php.ini file has been detected in your Windows directory. Do you want DoliWamp to rename it to php_old.ini to avoid conflicts ?',mbConfirmation,MB_YESNO) = IDYES then + begin + RenameFile('c:/windows/php.ini','c:/windows/php_old.ini'); + end +end +if FileExists ('c:/winnt/php.ini') then +begin + if MsgBox('A previous c:/winnt/php.ini file has been detected in your Windows directory. Do you want DoliWamp to rename it to php_old.ini to avoid conflicts ?',mbConfirmation,MB_YESNO) = IDYES then + begin + RenameFile('c:/winnt/php.ini','c:/winnt/php_old.ini'); + end +end + + + + +//---------------------------------------------- +// rundoliwamp.bat +//---------------------------------------------- + +destFile := pathWithSlashes+'/rundoliwamp.bat'; +srcFile := pathWithSlashes+'/rundoliwamp.bat.install'; + +if not FileExists (destFile) and FileExists(srcFile) then +begin + + //navigateur + browser := 'explorer.exe'; + if FileExists ('C:/Program Files/Mozilla Firefox/firefox.exe') then + begin + if MsgBox('Firefox has been detected on your computer. Would you like to use it as the default browser with Dolibarr ?',mbConfirmation,MB_YESNO) = IDYES then + begin + browser := 'C:/Program Files/Mozilla Firefox/firefox.exe'; + end + end + if browser = 'explorer.exe' then + begin + GetOpenFileName('Please choose your default browser. If you are not sure, just click Open :', browser, winPath,'exe files (*.exe)|*.exe|All files (*.*)|*.*' ,'exe'); + end + + LoadStringFromFile (srcFile, srcContents); + StringChange (srcContents, 'WAMPBROWSER', browser); + StringChange (srcContents, 'WAMPAPACHEPORT', apachePort); + SaveStringToFile(destFile,srcContents, False); +end +DeleteFile(SrcFile); + + + + +//---------------------------------------------- +// Fichier alias phpmyadmin +//---------------------------------------------- + +destFile := pathWithSlashes+'/alias/phpmyadmin.conf'; +srcFile := pathWithSlashes+'/alias/phpmyadmin.conf.install'; + +if not FileExists (destFile) then +begin + + LoadStringFromFile (srcFile, srcContents); + + //installDir et version de phpmyadmin + StringChange (srcContents, 'WAMPROOT', pathWithSlashes); + StringChange (srcContents, 'WAMPPHPMYADMINVERSION', phpmyadminVersion); + + SaveStringToFile(destFile,srcContents, False); +end +//else +//begin + + //mise à jour de la version de phpmyadmin +// tmp := GetIniString('apps','phpmyadminVersion',phpmyadminVersion,pathWithSlashes+'/wampmanager.conf'); +// if not CompareText(tmp,phpmyadminVersion) = 0 then +// begin +// SetIniString('apps','phpmyadminVersion',phpmyadminVersion,pathWithSlashes+'/wampmanager.conf'); +// LoadStringFromFile (destFile, srcContents); +// StringChange (srcContents, tmp, phpmyadminVersion); +// SaveStringToFile(destFile,srcContents, False); +// end +//end +DeleteFile(SrcFile); + + + +//---------------------------------------------- +// Fichier alias dolibarr +//---------------------------------------------- + +destFile := pathWithSlashes+'/alias/dolibarr.conf'; +srcFile := pathWithSlashes+'/alias/dolibarr.conf.install'; + +if not FileExists (destFile) then +begin + + LoadStringFromFile (srcFile, srcContents); + + StringChange (srcContents, 'WAMPROOT', pathWithSlashes); + StringChange (srcContents, 'WAMPMYSQLNEWPASSWORD', newPassword); + + SaveStringToFile(destFile,srcContents, False); +end +DeleteFile(SrcFile); + + + + +//---------------------------------------------- +// Fichier de configuration de phpmyadmin +//---------------------------------------------- + +destFile := pathWithSlashes+'/apps/phpmyadmin'+phpmyadminVersion+'/config.inc.php'; +srcFile := pathWithSlashes+'/apps/phpmyadmin'+phpmyadminVersion+'/config.inc.php.install'; + +if not FileExists (destFile) then +begin + + // si un fichier existe pour une version precedente de phpmyadmin, on le recupere + if FileExists (pathWithSlashes+'/apps/phpmyadmin'+tmp+'/config.inc.php') then + begin + LoadStringFromFile (pathWithSlashes+'/apps/phpmyadmin'+tmp+'/config.inc.php', srcContents); + StringChange (srcContents, 'WAMPMYSQLNEWPASSWORD', newPassword); + SaveStringToFile(destFile,srcContents, False); + end + else + begin + // sinon on prends le fichier par defaut + LoadStringFromFile (srcFile, srcContents); + StringChange (srcContents, 'WAMPMYSQLNEWPASSWORD', newPassword); + SaveStringToFile(destFile,srcContents, False); + end +end +//DeleteFile(SrcFile); + + + +//---------------------------------------------- +// Fichier httpd.conf +//---------------------------------------------- + +destFile := pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/conf/httpd.conf'; +srcFile := pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/conf/httpd.conf.install'; + +if not FileExists (destFile) then +begin + LoadStringFromFile (srcFile, srcContents); + + //installDir et version de php + StringChange (srcContents, 'WAMPROOT', pathWithSlashes); + StringChange (srcContents, 'WAMPPHPVERSION', phpVersion); + + SaveStringToFile(destFile,srcContents, False); +end +//DeleteFile(SrcFile); + + + + +//---------------------------------------------- +// Fichier my.ini +//---------------------------------------------- + +destFile := pathWithSlashes+'/bin/mysql/mysql'+mysqlVersion+'/my.ini'; +srcFile := pathWithSlashes+'/bin/mysql/mysql'+mysqlVersion+'/my.ini.install'; + +if not FileExists (destFile) then +begin + LoadStringFromFile (srcFile, srcContents); + + //installDir et version de php + StringChange (srcContents, 'WAMPROOT', pathWithSlashes); + + SaveStringToFile(destFile,srcContents, False); +end +//DeleteFile(SrcFile); + + + + + +//---------------------------------------------- +// Fichier index.php +//---------------------------------------------- + +destFile := pathWithSlashes+'/www/index.php'; +srcFile := pathWithSlashes+'/www/index.php.install'; + +if not FileExists (destFile) then +begin + LoadStringFromFile (srcFile, srcContents); + StringChange (srcContents, 'WAMPPHPVERSION', phpVersion); + StringChange (srcContents, 'WAMPMYSQLVERSION', mysqlVersion); + StringChange (srcContents, 'WAMPAPACHEVERSION', apacheVersion); + SaveStringToFile(destFile, srcContents, False); +end +else +begin + RenameFile(destFile, destFile+'.old'); + LoadStringFromFile (srcFile, srcContents); + StringChange (srcContents, 'WAMPPHPVERSION', phpVersion); + StringChange (srcContents, 'WAMPMYSQLVERSION', mysqlVersion); + StringChange (srcContents, 'WAMPAPACHEVERSION', apacheVersion); + SaveStringToFile(destFile, srcContents, False); +end +DeleteFile(SrcFile); + + + + + +//---------------------------------------------- +// Fichier dolibarr +//---------------------------------------------- + +destFile := pathWithSlashes+'/www/dolibarr/htdocs/conf/conf.php'; +srcFile := pathWithSlashes+'/www/dolibarr/htdocs/conf/conf.php.example'; + +if not FileExists (destFile) then +begin + LoadStringFromFile (srcFile, srcContents); + + //installDir et version de php + StringChange (srcContents, '$dolibarr_main_document_root=""', '$dolibarr_main_document_root="{app}/www/dolibarr/htdocs"'); + StringChange (srcContents, '$dolibarr_main_data_root=""', '$dolibarr_main_data_root="{app}/dolibarr_documents"'); + StringChange (srcContents, '$dolibarr_main_db_port=""', '$dolibarr_main_db_port="'+mysqlPort+'"'); + StringChange (srcContents, '$dolibarr_main_db_user=""', '$dolibarr_main_db_user="admin"'); + StringChange (srcContents, '$dolibarr_main_db_pass=""', '$dolibarr_main_db_user="'+newPassword+'"'); + + SaveStringToFile(destFile,srcContents, False); +end + +destFile := pathWithSlashes+'/www/dolibarr/htdocs/install/install.forced.php'; +srcFile := pathWithSlashes+'/www/dolibarr/htdocs/install/install.forced.php.install'; + +if not FileExists (destFile) then +begin + LoadStringFromFile (srcFile, srcContents); + + StringChange (srcContents, 'WAMPMYSQLPORT', mysqlPort); + StringChange (srcContents, 'WAMPMYSQLNEWPASSWORD', newPassword); + + SaveStringToFile(destFile,srcContents, False); +end + + + + +//---------------------------------------------- +// Fichier install_services.bat +//---------------------------------------------- + +destFile := pathWithSlashes+'/install_services.bat'; +srcFile := pathWithSlashes+'/install_services.bat.install'; + +if not FileExists (destFile) then +begin + + LoadStringFromFile (srcFile, srcContents); + + //version de apache et mysql + StringChange (srcContents, 'WAMPMYSQLVERSION', mysqlVersion); + StringChange (srcContents, 'WAMPAPACHEVERSION', apacheVersion); + + SaveStringToFile(destFile,srcContents, False); +end +DeleteFile(SrcFile); + + + + + +//---------------------------------------------- +// Fichier install_services_auto.bat +//---------------------------------------------- + +destFile := pathWithSlashes+'/install_services_auto.bat'; +srcFile := pathWithSlashes+'/install_services_auto.bat.install'; + +if not FileExists (destFile) and FileExists (srcFile) then +begin + + LoadStringFromFile (srcFile, srcContents); + + //version de apache et mysql + StringChange (srcContents, 'WAMPMYSQLVERSION', mysqlVersion); + StringChange (srcContents, 'WAMPAPACHEVERSION', apacheVersion); + + SaveStringToFile(destFile,srcContents, False); +end +DeleteFile(SrcFile); + + + + +//---------------------------------------------- +// Fichier uninstall_services.bat +//---------------------------------------------- + +destFile := pathWithSlashes+'/uninstall_services.bat'; +srcFile := pathWithSlashes+'/uninstall_services.bat.install'; + +if not FileExists (destFile) then +begin + + LoadStringFromFile (srcFile, srcContents); + + //version de apache et mysql + StringChange (srcContents, 'WAMPMYSQLVERSION', mysqlVersion); + StringChange (srcContents, 'WAMPAPACHEVERSION', apacheVersion); + + SaveStringToFile(destFile,srcContents, False); +end +DeleteFile(SrcFile); + + + +//---------------------------------------------- +// Fichier mysqlinitpassword.bat +//---------------------------------------------- + +destFile := pathWithSlashes+'/mysqlinitpassword.bat'; +srcFile := pathWithSlashes+'/mysqlinitpassword.bat.install'; + +if not FileExists (destFile) and FileExists (srcFile) then +begin + + LoadStringFromFile (srcFile, srcContents); + + //version de apache et mysql + StringChange (srcContents, 'WAMPMYSQLVERSION', mysqlVersion); + StringChange (srcContents, 'WAMPMYSQLNEWPASSWORD', newPassword); + + SaveStringToFile(destFile,srcContents, False); +end +DeleteFile(SrcFile); + + + + + //---------------------------------------------- + // fichier php.ini dans php + //---------------------------------------------- + destFile := pathWithSlashes+'/bin/php/php'+phpVersion+'/php.ini'; + srcFile := pathWithSlashes+'/bin/php/php'+phpVersion+'/php.ini.install'; + + if not FileExists (destFile) then + begin + smtp := Page.Values[0]; + LoadStringFromFile (srcFile, srcContents); + StringChange (srcContents, 'WAMPROOT', pathWithSlashes); + StringChange (srcContents, 'WAMPSMTP', smtp); + SaveStringToFile(destFile,srcContents, False); + end + + + + + //---------------------------------------------- + // fichier phpForApache.ini dans php + //---------------------------------------------- + + + + destFile := pathWithSlashes+'/bin/php/php'+phpVersion+'/phpForApache.ini'; + if not FileExists (destFile) then + begin + SaveStringToFile(destFile,srcContents, False); + end + + + + //---------------------------------------------- + // fichier php.ini dans apache + //---------------------------------------------- + + + + destFile := pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/php.ini'; + if not FileExists (destFile) then + begin + SaveStringToFile(destFile,srcContents, False); + end + //DeleteFile(SrcFile); + + + // Install services + //Filename: "{app}\uninstall_services.bat"; Flags: runhidden waituntilterminated + batFile := path+'\uninstall_services.bat'; + Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); + //Filename: "{app}\install_services.bat"; Flags: runhidden waituntilterminated + batFile := path+'\install_services.bat'; + Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); + + // Stard services + //Filename: "{app}\startdoliwamp.bat"; Flags: runhidden waituntilterminated + batFile := path+'\startdoliwamp.bat'; + Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); + + // Change mysql password + //Filename: "{app}\mysqlinitpassword.bat"; Flags: runhidden waituntilterminated + batFile := path+'\mysqlinitpassword.bat'; + Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); + + // Remove bat file + //Filename: "{app}\removefiles.bat"; Flags: runhidden waituntilterminated + // batFile := path+'\removefiles.bat'; + // Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); + + end + + Result := True; + +end; + + + + + +//----------------------------------------------- + +//procedure lancée à la fin de l'installation, elle supprime les fichiers d'installation + +procedure DeinitializeSetup(); + +begin +// DeleteFile(path+'\install_services.bat'); +// DeleteFile(path+'\install_services_auto.bat'); +end; + + +procedure InitializeWizard(); +begin + //version des applis, à modifier pour chaque version de WampServer 2 + apacheVersion := '2.2.6'; + phpVersion := '5.2.5' ; + mysqlVersion := '5.0.45'; + wampserverVersion := '2.0'; + phpmyadminVersion := '2.10.1'; + sqlitemanagerVersion := '1.2.0'; + + smtpServer := 'localhost'; + apachePort := '81'; + mysqlPort := '3307'; + newPassword := 'dolibarr'; + + + + + +//---------------------------------------------- +// 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); + +// Define pages + + Page := CreateInputQueryPage(wpInstalling, + 'Technical parameters', '', + 'Please specify some technical parameters. If you don t understand or ' #13 'are not sure, just leave the default values.'); + + Page.Add('SMTP server (your own or ISP SMTP server) :', False); + Page.Add('Apache port:', False); + Page.Add('Mysql port:', False); + Page.Add('Mysql and dolibarr root password:', False); + + // Valeurs par defaut + Page.Values[0] := smtpServer; + Page.Values[1] := apachePort; + Page.Values[2] := mysqlPort; + Page.Values[3] := newPassword; + +end; + + + + +[Run] +; Launch Dolibarr in browser. This is run after Wizard because of postinstall flag +Filename: "{app}\rundoliwamp.bat"; Description: "Launch Dolibarr now"; Flags: shellexec postinstall skipifsilent runhidden + + +[UninstallDelete] +Type: files; Name: "{app}\*.*" +Type: filesandordirs; Name: "{app}\apps" +Type: filesandordirs; Name: "{app}\bin\apache" +Type: filesandordirs; Name: "{app}\bin\php" +Type: filesandordirs; Name: "{app}\help" +Type: filesandordirs; Name: "{app}\lang" +Type: filesandordirs; Name: "{app}\logs" +Type: filesandordirs; Name: "{app}\scripts" +Type: filesandordirs; Name: "{app}\tmp" + + +[UninstallRun] +Filename: "{app}\uninstall_services.bat"; Flags: runhidden + diff --git a/htdocs/install/etape0.php b/htdocs/install/etape0.php index d839634d85d..95fedc99ae2 100644 --- a/htdocs/install/etape0.php +++ b/htdocs/install/etape0.php @@ -93,52 +93,120 @@ if (! $error) $result=include_once($main_dir."/lib/databases/".$_POST["db_type"].".lib.php"); if ($result) { - if (isset($_POST["db_create_user"]) && $_POST["db_create_user"] == "on") + // If we ask database or user creation we need to connect as root + if (! empty($_POST["db_create_database"]) && ! $userroot) + { + print '
'.$langs->trans("YouAskDatabaseCreationSoDolibarrNeedToConnect",$_POST["db_name"]).'
'; + print '
'; + if (! $db->connected) print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'

'; + print $langs->trans("ErrorGoBackAndCorrectParameters"); + $error++; + } + if (! empty($_POST["db_create_user"]) && ! $userroot) + { + print '
'.$langs->trans("YouAskLoginCreationSoDolibarrNeedToConnect",$_POST["db_user"]).'
'; + print '
'; + if (! $db->connected) print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'

'; + print $langs->trans("ErrorGoBackAndCorrectParameters"); + $error++; + } + + // If we need root access + if (! $error && (! empty($_POST["db_create_database"]) || ! empty($_POST["db_create_user"]))) { - $databasefortest=''; - if ($_POST["db_type"] == 'mysql' ||$_POST["db_type"] == 'mysqli') + $databasefortest=$_POST["db_name"]; + if (! empty($_POST["db_create_database"])) { - $databasefortest='mysql'; - } - elseif ($_POST["db_type"] == 'pgsql') - { - $databasefortest='postgres'; - } - else - { - $databasefortest='mssql'; + if ($_POST["db_type"] == 'mysql' ||$_POST["db_type"] == 'mysqli') + { + $databasefortest='mysql'; + } + elseif ($_POST["db_type"] == 'pgsql') + { + $databasefortest='postgres'; + } + else + { + $databasefortest='mssql'; + } } $db = new DoliDb($_POST["db_type"],$_POST["db_host"],$userroot,$passroot,$databasefortest,$_POST["db_port"]); + + dolibarr_syslog("databasefortest=".$databasefortest." connected=".$db->connected." database_selected=".$db->database_selected, LOG_DEBUG); + //print "databasefortest=".$databasefortest." connected=".$db->connected." database_selected=".$db->database_selected; + + if (empty($_POST["db_create_database"]) && $db->connected && ! $db->database_selected) + { + print '
'.$langs->trans("ErrorConnectedButDatabaseNotFound",$_POST["db_name"]).'
'; + print '
'; + if (! $db->connected) print $langs->trans("IfDatabaseNotExistsGoBackAndUncheckCreate").'

'; + print $langs->trans("ErrorGoBackAndCorrectParameters"); + $error++; + } + elseif ($db->error && ! (! empty($_POST["db_create_database"]) && $db->connected)) + { + print '
'.$db->error.'
'; + if (! $db->connected) print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'

'; + print $langs->trans("ErrorGoBackAndCorrectParameters"); + $error++; + } } - else + // If we need simple access + if (! $error && (empty($_POST["db_create_database"]) && empty($_POST["db_create_user"]))) { $db = new DoliDb($_POST["db_type"],$_POST["db_host"],$_POST["db_user"],$_POST["db_pass"],$_POST["db_name"],$_POST["db_port"]); - } - if ($db->error) - { + if ($db->error) + { print '
'.$db->error.'
'; + if (! $db->connected) print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'

'; + print $langs->trans("ErrorGoBackAndCorrectParameters"); $error++; + } } } else { print "
\nFailed to include_once(\"".$main_dir."/lib/databases/".$_POST["db_type"].".lib.php\")
\n"; print '
'.$langs->trans("ErrorWrongValueForParameter",$langs->transnoentities("WebPagesDirectory")).'
'; + print $langs->trans("ErrorGoBackAndCorrectParameters"); $error++; } } +else +{ + if (isset($db)) print $db->lasterror(); + if (! $db->connected) print '
'.$langs->trans("BecauseConnectionFailedParametersMayBeWrong").'

'; + print $langs->trans("ErrorGoBackAndCorrectParameters"); + $error++; +} + /* * Si creation database demandée, il est possible de faire un choix */ $disabled=""; -if (! $error && (isset($_POST["db_create_database"]) && $_POST["db_create_database"] == "on")) +if (! $error && ! empty($_POST["db_create_database"])) { $disabled=""; }else{ $disabled="disabled"; } +if (! $error && $db->connected) +{ + if (! empty($_POST["db_create_database"])) + { + $result=$db->select_db($_POST["db_name"]); + if ($result) + { + print '
'.$langs->trans("ErrorDatabaseAlreadyExists",$_POST["db_name"]).'
'; + print $langs->trans("IfDatabaseExistsGoBackAndCheckCreate").'

'; + print $langs->trans("ErrorGoBackAndCorrectParameters"); + $error++; + } + } +} + if (! $error && $db->connected) { ?> @@ -253,24 +321,6 @@ if (! $error && $db->connected) trans("YouAskDatabaseCreationSoDolibarrNeedToConnect",$_POST["db_user"],$_POST["db_host"],($userroot?$userroot:'?')); - print '
'; - print $langs->trans("BecauseConnectionFailedParametersMayBeWrong").'

'; - print $langs->trans("ErrorGoBackAndCorrectParameters"); - $error++; - } - else - { - if (isset($db)) print $db->lasterror(); - print '
'.$langs->trans("BecauseConnectionFailedParametersMayBeWrong").'

'; - print $langs->trans("ErrorGoBackAndCorrectParameters"); - $error++; - } -} pFooter($error,$setuplang); diff --git a/htdocs/install/fileconf.php b/htdocs/install/fileconf.php index 2021e7b51a3..0bab716d8b6 100644 --- a/htdocs/install/fileconf.php +++ b/htdocs/install/fileconf.php @@ -263,9 +263,9 @@ while (($file = readdir($handle))!==false) - + trans("Port"); ?> - + diff --git a/htdocs/langs/en_US/install.lang b/htdocs/langs/en_US/install.lang index c800f99f18d..ffb61aa4b6e 100644 --- a/htdocs/langs/en_US/install.lang +++ b/htdocs/langs/en_US/install.lang @@ -22,6 +22,9 @@ ErrorWrongValueForParameter=You may have typed a wrong value for parameter '%s'. ErrorFailedToCreateDatabase=Failed to create database '%s'. ErrorFailedToConnectToDatabase=Failed to connect to database '%s'. ErrorPHPVersionTooLow=PHP version too old. Version %s is required. +ErrorConnectedButDatabaseNotFound=Connection to server successfull but database '%s' not found. +ErrorDatabaseAlreadyExists=Database '%s' already exists. +IfDatabaseNotExistsGoBackAndUncheckCreate=If database does not exists, go back and check option "Create database". IfDatabaseExistsGoBackAndCheckCreate=If database already exists, go back and uncheck "Create database" option. PHPVersion=PHP Version YouCanContinue=You can continue... @@ -112,7 +115,8 @@ CollationConnection=Character sorting order CollationConnectionComment=Choose page code that defines character's sorting order used by database. This parameter is also called 'collation' by some databases.
This parameter can't be defined if database already exists. CharacterSetDatabase=Character set for database CharacterSetDatabaseComment=Choose character set wanted for database creation.
This parameter can't be defined if database already exists. -YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database login %s, but for this, Dolibarr need to connect to server %s with super user %s permissions. +YouAskDatabaseCreationSoDolibarrNeedToConnect=You ask to create database %s, but for this, Dolibarr need to connect to server %s with super user %s permissions. +YouAskLoginCreationSoDolibarrNeedToConnect=You ask to create database login %s, but for this, Dolibarr need to connect to server %s with super user %s permissions. BecauseConnectionFailedParametersMayBeWrong=As connection failed, host or super user parameters must be wrong. OrphelinsPaymentsDetectedByMethod=Orphelins payment detected by method %s RemoveItManuallyAndPressF5ToContinue=Remove it manually and press F5 to continue. diff --git a/htdocs/langs/fr_FR/install.lang b/htdocs/langs/fr_FR/install.lang index f76abd7d0a8..03f0f8f5f8c 100644 --- a/htdocs/langs/fr_FR/install.lang +++ b/htdocs/langs/fr_FR/install.lang @@ -24,6 +24,9 @@ ErrorWrongValueForParameter=Vous avez peut- ErrorFailedToCreateDatabase=Echec de création de la base '%s'. ErrorFailedToConnectToDatabase=Echec de connexion à la base '%s'. ErrorPHPVersionTooLow=Version de PHP trop ancienne. La version %s est requise. +ErrorConnectedButDatabaseNotFound=Connection au serveur réussi mais base '%s' introuvable. +ErrorDatabaseAlreadyExists=La base de donnée '%s' existe déjà. +IfDatabaseNotExistsGoBackAndUncheckCreate=Si la base n'existe pas, revenez en arrière et cochez l'option "Créer la base de donnée". IfDatabaseExistsGoBackAndCheckCreate=Si la base existe déjà, revenez en arrière et désactiver l'option "Créer la base de donnée". PHPVersion=Version PHP YouCanContinue=Vous pouvez continuer... @@ -114,7 +117,8 @@ CollationConnection=Ordre de tri utilis CollationConnectionComment=Veuillez choisir la page de code définissant l'ordre de tri des caractères utilisé par la base de donnée. Ce paramètre est aussi appelé 'collation' par certaines bases de données.
Ce paramètre n'est pas sélectionnable si votre base est déjà créée. CharacterSetDatabase=Codage utilisé pour la base de données CharacterSetDatabaseComment=Veuillez choisir le codage que vous désirez choisir pour la création de la base de données.
Ce paramètre n'est pas sélectionnable si votre base est déjà créée. -YouAskDatabaseCreationSoDolibarrNeedToConnect=Vous avez demandé la création du login de base de donnée %s, mais pour cela, Dolibarr doit se connecter sur le serveur %s via le super utilisateur %s. +YouAskDatabaseCreationSoDolibarrNeedToConnect=Vous avez demandé la création de la base de donnée %s, mais pour cela, Dolibarr doit se connecter sur le serveur %s via le super utilisateur %s. +YouAskLoginCreationSoDolibarrNeedToConnect=Vous avez demandé la création du login de base de donnée %s, mais pour cela, Dolibarr doit se connecter sur le serveur %s via le super utilisateur %s. BecauseConnectionFailedParametersMayBeWrong=La connexion ayant échoué, les paramètres du serveur ou du super utilisateur sont peut-etre incorrects. OrphelinsPaymentsDetectedByMethod=Paiement orphelins detectés par la méthode %s RemoveItManuallyAndPressF5ToContinue=Supprimer le manuellement et appuyez sur F5 pour continuer.