superedit-INSTALL_SES_PROCESY_A.php 213 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429
  1. <?php
  2. //@2013-10-14 TODO nalezy uzyc jednorazowo hasla ADMIN_USERNAME_INITIAL_PASSWD po czym zmienic ja na haslo ADMIN_USERNAME_PASSWD i go uzywac dalej ?
  3. //@2013-09 SQIX:
  4. //skrypt do instalacji SE na zdalnym serwerze APPLE na podstawie tabeli SES_PROCESY5_A
  5. //wymaga po stronie zdalnej:
  6. //1) Apple Mac mini
  7. // - zainstalowane oprogramowanie Server z włączonym OpenDirectory i zalozonym uzytkownikiem z uprawnieniami administratora ( ADMIN_USERNAME_DIRECTORY )
  8. // - ustawione konto administratora zgodne z parametrami w tabeli ( ADMIN_USERNAME / ADMIN_USERNAME_PASSWD ) - do zalogowania się ssh
  9. // NIE TRZEBA SKRYPT SCIAGA- zainstsalowane oprogramowanie XCODE z zainstalowanymi CONSOLE UTILS
  10. // NIE TRZEBA SKRYPT SCIAGA - zainstalowane oprgoramowanie MACPORTS
  11. // TRZEBA W SERVERADMIN RECZNIE ODPALIC OPEN_DIRECTORY!!! - trzeba dobrze ustawic hostname, bo jest uid=diradmin,cn=users,dc=193,dc=34,dc=3,dc=100
  12. echo "<h2>(W przypadku instalacji zdalnej) Pamiętaj o konieczności udostępnienia dostępu do bazy SQL na port 3306 [administrator] dla instalowanego serwera dla serwera se.dev.webone.pl (stara sowa), bo inaczej nie zainstaluje się baza danych</h2>";
  13. // powyższe instaluje się tak :
  14. //+ zakladamy konto w ITUNES na KLIENTA lub korzystamy z konta prezesa energo@me.com!!! TODO do wyjasnienia z zestawem pakietow
  15. //+ Sciagamy xCODE z ITUNES (SKRYPT SAM SCIAGA LOKALNIE GO MAMY)
  16. //+ Aktualizujemy xCODE o ConsoleUtils! (SKRYPT SAM GO SCIAGA)
  17. //Ściągnij MACPORTS (sciaga sie instalacja macowa i dziala prosto)
  18. //#sciagnij z https://distfiles.macports.org/MacPorts/MacPorts-2.1.3-10.8-MountainLion.pkg
  19. //Ustal konto systemowe firmowe podstawowe - nazwa server zawsze , haslo indywodualne - zapisz w kontatkach pod nazwa serwera (TODO)
  20. //Ustal dostęp dla tego konta aby można było się logować SSH oraz VNC , ustal haslo VNC - też zapisz
  21. //PLAN:
  22. //MAC OS 1.0 INSTALACJA SE - Najpierw isntalujemy pakiet SERVER z ITUNES (na poczatku opisane)
  23. //MAC OS 1.01 Konsolowe drobne poprawki
  24. //MAC OS 1.1 INSTALACJA SE -
  25. //MAC OS 1.3 FIREWALL konfiguracja serwera z SE i BAZA DANYCH
  26. //MAC OS 2. instalacja mysql
  27. //MAC OS 2.1 instalacja phpMyAdmin
  28. //MAC OS 3. instalacja webmaila roundcube
  29. //#########!!!! POCZATEK INSTALACJI !!!!
  30. class INSTALL_SES_PROCESY_A {
  31. //make option for sgencoder (several domains) --domain '.$h->SERVER_ADDRESS_SHORT.' -r *.php
  32. static function get_same_domains_for_install($SERVER_ADDRESS_SHORT, $SERVER_ADDRESS = null) {
  33. $domainList = self::fetch_same_domains_for_install($SERVER_ADDRESS_SHORT, $SERVER_ADDRESS);
  34. $argDomain = array();
  35. foreach ($domainList as $domain) {
  36. $argDomain[] = ' --domain ' . $domain;
  37. }
  38. return implode(' ', $argDomain);
  39. }
  40. static function fetch_same_domains_for_install($SERVER_ADDRESS_SHORT, $SERVER_ADDRESS = null) {
  41. $domainList = array();
  42. if(strlen($SERVER_ADDRESS_SHORT)==0) die('Error with server address short');
  43. $res=DB::query("select SERVER_ADDRESS_IP from SES_PROCESY5_A where SERVER_ADDRESS_SHORT='".$SERVER_ADDRESS_SHORT."'");
  44. while($h=DB::fetch($res)) {
  45. $res2=DB::query("select SERVER_ADDRESS_SHORT from SES_PROCESY5_A where SERVER_ADDRESS_IP='".$h->SERVER_ADDRESS_IP."'");
  46. while($h2=DB::fetch($res2)) {
  47. $domainList[] = $h2->SERVER_ADDRESS_SHORT;
  48. }
  49. }
  50. if ($SERVER_ADDRESS && (!preg_match('/^(.*)\.procesy5\.pl$/', $SERVER_ADDRESS))) {
  51. $subDomainP5 = '' . $SERVER_ADDRESS . '.procesy5.pl';
  52. if (!in_array($subDomainP5, $domainList)) $domainList[] = $subDomainP5;
  53. }
  54. $domainList[] = '127.0.0.1';
  55. $domainList[] = 'localhost';
  56. return $domainList;
  57. }
  58. }
  59. function SSH_COMMAND_REMOTE_CREATE($username,$host,$password,$command) {
  60. //return '/opt/local/bin/sshpass -p '.$password.' ssh -o StrictHostKeyChecking=no '.$username.'@'.$host.' <<EOF
  61. return '/opt/local/bin/sshpass -p '.str_replace('!','\!',$password).' ssh -o StrictHostKeyChecking=no -o ConnectTimeout=99999 '.$username.'@'.$host.' -t <<EOF
  62. sudo -n su -
  63. declare PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/local/bin:/opt/local/lib/mariadb/bin/:/Applications/Server.app/Contents/ServerRoot/usr/sbin/
  64. '.$command.'
  65. EOF';
  66. /*return '/opt/local/bin/sshpass -p '.$password.' ssh -o StrictHostKeyChecking=no '.$username.'@'.$host.'
  67. '.$command.'
  68. "';
  69. */
  70. }
  71. function execOnParallels($command) {
  72. $exec_command = 'ssh -o StrictHostKeyChecking=no -o ConnectTimeout=99999 arkadiuszbinder@parallels.biall-net.pl -t <<EOF
  73. declare PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/local/bin:/opt/local/lib/mariadb/bin/:/Applications/Server.app/Contents/ServerRoot/usr/sbin/
  74. '.$command.'
  75. EOF';
  76. $result = shell_exec($exec_command);
  77. return $result;
  78. }
  79. function INSTALL_GETCOMMANDS($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION) {
  80. // $cmd[]['rsh']='echo "'.$ADMIN_USERNAME_PASSWD.'" | sudo -S su -';
  81. // $cmd[]['rsh']='echo "'.$ADMIN_USERNAME_PASSWD.'" | sudo -S su -';
  82. //$cmd[]['rsh']='shopt -s dotglob'; //przenoszenie plikow z kropka
  83. //! KONFIG POWERM MANAGEMENT i dostepu VNC
  84. $cmd[]['rsh']=' [ -e /Library/Server/Web ] || { '.tell_user_gui_error("Not installed OSX Server").'; exit 1; } '; //sprawdzenie czy ma OSX server - jak nie ma to die
  85. $cmd[]['rsh']=' serveradmin settings dirserv:LDAPSettings:LDAPSearchBase | grep "'.$SERVER_ADDRESS_LDAP_DC.'" || { '.tell_user_gui_error('Not installed correctly Open Directory Service in OSX Server - should be set DC:'.$SERVER_ADDRESS_LDAP_DC).' ; exit 1 ;}'; //sprawdzenie czy ma OSX server - jak nie ma to die
  86. $cmd[]['rsh']=' pmset sleep 0'; //wylaczenie usypiania
  87. $cmd[]['rsh']=' pmset autorestart 1'; //automatyczny restart po awarii zasilania
  88. $cmd[]['rsh']='/System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -access -on -clientopts -setvnclegacy -vnclegacy yes -clientopts -setvncpw -vncpw '.substr($ADMIN_USERNAME_PASSWD,0,6).' -restart -agent -privs -all'; //wlaczenie vnc z haslem 6 liter hasla glownego
  89. $cmd[]['rsh']='/System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -access -on -configure -users '.$ADMIN_USERNAME.' -allowAccessFor -specifiedUsers -configure -restart -agent -privs -all'; //dostep do remote desktop dla glownego admina
  90. $cmd[]['rsh']='grep "alias SE" /etc/bashrc || echo "alias SE=\'cd /Library/Server/Web/Data/Sites/Default/SE\'" >> /etc/bashrc || echo OK';
  91. $cmd[]['rsh']='defaults write /Library/Preferences/com.apple.screensaver loginWindowIdleTime 0 || echo OK';
  92. // @2014-08 firewall konfiguracja dla OSX anchora org.procesy5 \'$'\n - newline if you want to use in sed in MAC
  93. //dodanie anchorow do filtrowania
  94. /* $cmd[]['rsh']='sed -i ".bak" -e \'s/^load anchor "com.apple" from "\/etc\/pf.anchors\/com.apple"/load anchor "org.procesy5" from "/etc/pf.anchors/org.procesy5"
  95. load anchor "com.apple" from "\/etc\/pf.anchors\/com.apple"/g\' /etc/pf.conf';
  96. $cmd[]['rsh']='sed -i ".bak" -e \'s/^anchor "com.apple/*"/anchor "org.procesy5"
  97. anchor "org.procesy5/*"
  98. anchor "com.apple/*"/g\' /etc/pf.conf';
  99. */
  100. //todo zrobienie odpowiedniego pliku /etc/pf.anchors/org.procesy5
  101. //! deinsalacja ewentualnie zainstalowanego systemu dla reinstalacji
  102. // $cmd[]['rsh']='echo DEINSTALACJA_EWENTUALNIE_ZAINSTALOWANEG_SYSTEMU';
  103. // $cmd[]['rsh']='ls /Library/Server/Web/Data/Sites/Default/ |grep -i OfflineIMAP && rm -R /Library/Server/Web/Data/Sites/Default/OfflineIMAP* || echo PASSED';
  104. // $cmd[]['rsh']='ls /Library/Server/Web/Data/Sites/Default/ |grep -i nconf && rm -R /Library/Server/Web/Data/Sites/Default/nconf* || echo PASSED';
  105. // $cmd[]['rsh']='ls /Library/Server/Web/Data/Sites/Default/ |grep -i icinga && rm -R /Library/Server/Web/Data/Sites/Default/icinga* || echo PASSED';
  106. // $cmd[]['rsh']='which mysqladmin && mysqladmin -f -uroot -p'.$ADMIN_USERNAME_PASSWD.' drop nconf || echo PASSED ';
  107. //! EOF deinsalacja ewentualnie zainstalowanego systemu dla reinstalacji
  108. //$cmd[]['rsh']=INSTALL_GET_INIT_APPLE_XML($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY);
  109. /*
  110. //! instalowanie icigny @2014-03-15 sqix: nie supportujemy an ten moment icigny - trzeba ja dopasowac lepiej
  111. $cmd[]['rsh']=' mkdir -p /usr/src/';
  112. $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/icinga.tar.gz','/usr/src/');
  113. $cmd[]['rsh']=' cd /usr/src && tar -zxpvf icinga.tar.gz ';
  114. $cmd[]['rsh']=' port install rb-gd';
  115. $cmd[]['rsh']=' port install libdbi';
  116. $cmd[]['rsh']=' port install gd2';
  117. $cmd[]['rsh']='cd /usr/src/icinga-* && ./configure --with-command-group=_www --with-dbi-lib=/opt/local/lib --with-dbi-inc=/opt/local/include --with-web-user=_www --with-icinga-group=_www --with-web-group=_www --with-icinga-user=_www --with-gd-lib=/opt/local/lib --with-gd-inc=/opt/local/include';
  118. $cmd[]['rsh']='cd /usr/src/icinga-* && make all';
  119. $cmd[]['rsh']='cd /usr/src/icinga-* && make install';
  120. $cmd[]['rsh']='cd /usr/src/icinga-* && make install-config';
  121. $cmd[]['rsh']='cd /usr/local/icinga && chown -R _www *';
  122. */
  123. // $cmd[]['rsh']='cd /usr/local/icinga/etc && sed -i.bak s/^authorized_for_system_information=.*/authorized_for_system_information=\*/ cgi.cfg';
  124. // $cmd[]['rsh']='cd /usr/local/icinga/etc && sed -i.bak s/^authorized_for_configuration_information=.*/authorized_for_configuration_information=\*/ cgi.cfg';
  125. // $cmd[]['rsh']='cd /usr/local/icinga/etc && sed -i.bak s/^authorized_for_full_command_resolution=.*/authorized_for_full_command_resolution=\*/ cgi.cfg';
  126. // $cmd[]['rsh']='cd /usr/local/icinga/etc && sed -i.bak s/^authorized_for_system_commands=.*/authorized_for_system_commands=\*/ cgi.cfg';
  127. // $cmd[]['rsh']='cd /usr/local/icinga/etc && sed -i.bak s/^authorized_contactgroup_for_all_services=.*/authorized_contactgroup_for_all_services=\*/ cgi.cfg';
  128. // $cmd[]['rsh']='cd /usr/local/icinga/etc && sed -i.bak s/^authorized_contactgroup_for_all_hosts=.*/authorized_contactgroup_for_all_hosts=\*/ cgi.cfg';
  129. // $cmd[]['rsh']='cd /usr/local/icinga/etc && sed -i.bak s/^authorized_contactgroup_for_all_service_commands=.*/authorized_contactgroup_for_all_service_commands=\*/ cgi.cfg';
  130. // $cmd[]['rsh']='cd /usr/local/icinga/etc && sed -i.bak s/^authorized_contactgroup_for_all_host_commands=.*/authorized_contactgroup_for_all_host_commands=\*/ cgi.cfg';
  131. // $cmd[]['rsh']='cd /usr/local/icinga/etc && sed -i.bak s/^authorized_for_all_service_commands=.*/authorized_for_all_service_commands=\*/ cgi.cfg';
  132. // $cmd[]['rsh']='cd /usr/local/icinga/etc && sed -i.bak s/^authorized_for_all_services=.*/authorized_for_all_services=\*/ cgi.cfg';
  133. // $cmd[]['rsh']='cd /usr/local/icinga/etc && sed -i.bak s/^authorized_for_all_hosts=.*/authorized_for_all_hosts=\*/ cgi.cfg';
  134. // $cmd[]['rsh']='cd /usr/local/icinga/etc && sed -i.bak s/^admin_email=.*/admin_email='.$ADMIN_USERNAME_L1.'@'.$SERVER_ADDRESS_SHORT.'/ icinga.cfg ';
  135. // $cmd[]['rsh']='cd /usr/local/icinga/etc && sed -i.bak s/^admin_pager=.*/admin_pager='.$ADMIN_USERNAME_L1.'@'.$SERVER_ADDRESS_SHORT.'/ icinga.cfg ';
  136. // $cmd[]['rsh']='cd /usr/local/icinga/etc && sed -i.bak s/^cfg_file=/#cfg_file=/g icinga.cfg';
  137. //! icinga pluginy-nagios @2014-03-15 sqix : icinga wywalona z instalatora do czasu przygotowania produktu
  138. // $cmd[]['rsh']=' port install mysql_select';
  139. /*
  140. $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/nagios-plugins-1.5.tar.gz','/usr/src/');
  141. $cmd[]['rsh']=' cd /usr/src && tar -zxpvf nagios-plugins-1.5.tar.gz';
  142. $cmd[]['rsh']=' cd /usr/src/nagios-plugins-1.5 && ./configure \
  143. --prefix=/usr/local/icinga --with-cgiurl=/icinga/cgi-bin \
  144. --with-nagios-user=_www --with-nagios-group=_www \
  145. --with-mysql=/opt/local/lib/mysql55/bin/mysql_config';
  146. $cmd[]['rsh']=' cd /usr/src/nagios-plugins-1.5 && make';
  147. $cmd[]['rsh']=' cd /usr/src/nagios-plugins-1.5 && make install ';
  148. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/icinga && \
  149. cd /Library/Server/Web/Data/Sites/Default/icinga && \
  150. ln -s /usr/local/icinga/share/* ./ && \
  151. mkdir cgi-bin && cd cgi-bin && \
  152. ln -s /usr/local/icinga/sbin/* ./ && \
  153. chown -R _www /Library/Server/Web/Data/Sites/Default/icinga
  154. ';
  155. $cmd[]['rsh']='echo \'<?xml version=1.0 encoding=UTF-8?>
  156. <!DOCTYPE plist PUBLIC -//Apple//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
  157. <plist version=1.0>
  158. <dict>
  159. <key>Label</key>
  160. <string>org.icinga</string>
  161. <key>ProgramArguments</key>
  162. <array>
  163. <string>/usr/local/icinga/bin/icinga</string>
  164. <string>/usr/local/icinga/etc/icinga.cfg</string>
  165. </array>
  166. <key>KeepAlive</key>
  167. <true/>
  168. </dict>
  169. </plist>\' > /Library/LaunchDaemons/org.icinga.plist';
  170. $cmd[]['rsh']='mkdir /Library/Server/Web/Data/Sites/Default/icinga/rw';
  171. */
  172. // $cmd[]['rsh']='sed -i.bak "s/command_file=.*/command_file=\/Library\/Server\/Web\/Data\/Sites\/Default\/icinga\/rw\/icinga.cmd/g" /usr/local/icinga/etc/icinga.cfg'; //zmieniam inita do launchctl aby sam z siebie sie odpalal
  173. // $cmd[]['rsh']='cd /usr/local/icinga/libexec && chmod +s ./check_dhcp';
  174. // $cmd[]['rsh']='cd /usr/local/icinga/libexec && chown root ./check_dhcp';
  175. // $cmd[]['rsh']='cd /usr/local/icinga/libexec && chmod u+x ./check_dhcp ';
  176. //
  177. // $cmd[]['rsh']='mkdir -p /Library/Server/Web/Data/Sites/Default/icinga/rw';
  178. // $cmd[]['rsh']='touch /Library/Server/Web/Data/Sites/Default/icinga/rw/icinga.cmd';
  179. // $cmd[]['rsh']='chmod 0777 /Library/Server/Web/Data/Sites/Default/icinga/rw';
  180. //
  181. // $cmd[]['rsh']='chown -R _www /usr/local/icinga/';
  182. // $cmd[]['rsh']='launchctl load /Library/LaunchDaemons/org.icinga.plist' ;
  183. // $cmd[]['rsh']='launchctl start org.icinga' ;
  184. /*
  185. //! instalowanie nconfa
  186. $cmd[]['rsh']=' port install p5.16-dbd-mysql';
  187. $cmd[]['rsh']=' port install p5-dbd-mysql';
  188. $cmd[]['rsh']=' mysqladmin -uroot -p'.$ADMIN_USERNAME_PASSWD.' create nconf ';
  189. $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/nconf.tar.gz','/Library/Server/Web/Data/Sites/Default');
  190. $cmd[]['rsh']=' cd /Library/Server/Web/Data/Sites/Default && tar -zxpvf nconf.tar.gz';
  191. $cmd[]['rsh']=' echo "<?php
  192. / *
  193. #
  194. # User/Password file for simple authentication
  195. # To disable a user, rows can be commented out with "#"
  196. #
  197. # :: is the delimiter of the fields
  198. # Do NOT use :: (2 colons) in a data field (as name or password etc.) !
  199. #
  200. #username::password::authorization(user|admin)::[user\'s full name (optional)]::
  201. admin::nconf::admin::Administrator::
  202. #user::1234::user::Normal User::
  203. #dummy::9999::user::User Dummy::
  204. #foo::bar::user::foo bar::
  205. #
  206. # using encrypted passwords
  207. #user2::{CRYPT}s7FkIgzTWZia2::user::User with a CRYPT password::
  208. #
  209. * /
  210. ?>
  211. " > /Library/Server/Web/Data/Sites/Default/nconf/config/.file_accounts.php';
  212. $cmd[]['rsh']=' echo "<?php
  213. define(\'AUTH_ENABLED\', \'1\');
  214. define(\'AUTH_TYPE\', \"ldap\");
  215. define(\'AUTH_METHOD\', \'login\');
  216. define(\'BASICAUTH_REALM\', \"NConf Basic Auth\");
  217. define(\'AUTH_FEEDBACK_AS_WELCOME_NAME\', \'1\');
  218. define(\'GROUP_USER\', \"user\");
  219. define(\'GROUP_ADMIN\', \"admin\");
  220. define(\'GROUP_NOBODY\', \"0\");
  221. define(\'LDAP_SERVER\', \"ldap://127.0.0.1\");
  222. # The port to connect to. Not used when using URLs. Defaults to 389. (by PHP)
  223. define(\'LDAP_PORT\', \"389\");
  224. define(\'BASE_DN\', \"uid=<username>,cn=users,'.$SERVER_ADDRESS_LDAP_DC.'\");
  225. define(\'USER_REPLACEMENT\', \"<username>\");
  226. define(\'GROUP_DN\', \"cn=groups,'.$SERVER_ADDRESS_LDAP_DC.'\");
  227. define(\'ADMIN_GROUP\', \"cn=workgroup\");
  228. define(\'USER_GROUP\', \"cn=workgroup\");
  229. define(\'AUTH_SQLQUERY_USER\',null);
  230. define(\'AUTH_SQLQUERY_ADMIN\',null);
  231. ?>" > /Library/Server/Web/Data/Sites/Default/nconf/config/authentication.php';
  232. $cmd[]['rsh']=' echo "
  233. [extract config]
  234. type = local
  235. source_file = \"/Library/Server/Web/Data/Sites/Default/nconf/output/NagiosConfig.tgz\"
  236. target_file = \"/usr/local/icinga/etc/conf.d/\"
  237. action = extract
  238. " > /Library/Server/Web/Data/Sites/Default/nconf/config/deployment.ini';
  239. $cmd[]['rsh']=' echo "<?php
  240. #
  241. # Main MySQL connection parameters
  242. #
  243. define(\'DBHOST\', \'127.0.0.1\');
  244. define(\'DBNAME\', \'nconf\');
  245. define(\'DBUSER\', \'root\');
  246. define(\'DBPASS\', \''.$ADMIN_USERNAME_PASSWD.'\');
  247. ?>" > /Library/Server/Web/Data/Sites/Default/nconf/config/mysql.php';
  248. $cmd[]['rsh']=' echo "<?php
  249. define(\'NCONFDIR\', \'/Library/Server/Web/Data/Sites/Default/nconf\');
  250. define(\'OS_LOGO_PATH\', \"img/logos\");
  251. define(\'NAGIOS_BIN\', \'/usr/local/icinga/bin/icinga\');
  252. define(\'CHECK_UPDATE\', 0);
  253. define(\'TEMPLATE_DIR\', \'nconf_fresh\');
  254. define(\"DEBUG_MODE\", 0); # [0|1]
  255. define(\"DEBUG_GENERATE\", 3); # [1=ERROR|2=WARN|3=INFO|4=DEBUG|5=TRACE]
  256. define(\"DB_NO_WRITES\", 0); # [0|1] Experimental, use with CAUTION!
  257. define(\'REDIRECTING_DELAY\', \"1\");
  258. define(\'ALLOW_DEPLOYMENT\', 1);
  259. \\$STATIC_CONFIG = array(\"static_cfg\");
  260. define(\'CHECK_STATIC_SYNTAX\', 1);
  261. \\$SUPERADMIN_GROUPS = array (\"+admins\");
  262. \\$ONCALL_GROUPS = array ();
  263. define(\'CHECK_STATIC_SYNTAX\', 1);
  264. \\$SUPERADMIN_GROUPS = array (\"+admins\");
  265. \\$ONCALL_GROUPS = array ();
  266. define(\'OVERVIEW_QUANTITY_STANDARD\', \"25\");
  267. define(\'SELECT_VALUE_SEPARATOR\', \"::\");
  268. define(\'PASSWD_ENC\', \"clear\");
  269. define(\'PASSWD_DISPLAY\', 0);
  270. define(\'PASSWD_DISPLAY\', 0);
  271. define(\'PASSWD_HIDDEN_STRING\', \"********\");
  272. ?>" > /Library/Server/Web/Data/Sites/Default/nconf/config/nconf.php';
  273. $cmd[]['rsh']=' cat /Library/Server/Web/Data/Sites/Default/nconf/INSTALL/create_database.sql |mysql -uroot -h127.0.0.1 -Dnconf -p'.$ADMIN_USERNAME_PASSWD;
  274. $cmd[]['rsh']=' rm -R /Library/Server/Web/Data/Sites/Default/nconf/INSTALL*';
  275. $cmd[]['rsh']=' rm -R /Library/Server/Web/Data/Sites/Default/nconf/UPDATE*';
  276. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/nconf/temp/test/ && touch /Library/Server/Web/Data/Sites/Default/nconf/temp/test/Default_collector.cfg' ;
  277. $cmd[]['rsh']=' chmod -R 0777 /Library/Server/Web/Data/Sites/Default/nconf/temp';
  278. $cmd[]['rsh']=' chown -R _www /Library/Server/Web/Data/Sites/Default/nconf';
  279. $cmd[]['rsh']=' echo "
  280. -- dodajemy Kolumne do powiazania numeru zasobu do monitorowania z bazy zasobow, bedzie trzeba miec jeszcze odznaczneie numeru Device
  281. alter ignore table nconf.ConfigItems add A_RECORD_CREATE_AUTHOR char(25) ;
  282. alter ignore table nconf.ConfigAttrs add A_RECORD_CREATE_AUTHOR char(25) ;
  283. alter ignore table nconf.ConfigClasses add A_RECORD_CREATE_AUTHOR char(25) ;
  284. alter ignore table nconf.ConfigValues add A_RECORD_CREATE_AUTHOR char(25) ;
  285. alter ignore table nconf.ItemLinks add A_RECORD_CREATE_AUTHOR char(25) ;
  286. alter ignore table nconf.ConfigItems add CRM_LISTA_ZASOBOW_ID int(11) ;
  287. alter ignore table nconf.ConfigItems add DEVICES_ID int(11) ; " | mysql -D nconf -uroot -p'.$ADMIN_USERNAME_PASSWD ;
  288. $cmd[]['rsh']=' echo "
  289. -- zapytanie do importu z SE zasobow oraz urzadzen do monitoringu do nconfa do icinga
  290. -- w razie co mozna usunac dodane rekordy w taki sposob
  291. delete FROM nconf.\\`ConfigValues\\` WHERE \\`A_RECORD_CREATE_AUTHOR\\` like \'SE_IMPORT\';
  292. delete FROM nconf.\\`ItemLinks\\` WHERE \\`A_RECORD_CREATE_AUTHOR\\` like \'SE_IMPORT\';
  293. delete FROM nconf.\\`ConfigItems\\` WHERE \\`A_RECORD_CREATE_AUTHOR\\` like \'SE_IMPORT\';
  294. delete FROM nconf.\\`ConfigAttrs\\` WHERE \\`A_RECORD_CREATE_AUTHOR\\` like \'SE_IMPORT\';
  295. delete FROM nconf.\\`ConfigClasses\\` WHERE \\`A_RECORD_CREATE_AUTHOR\\` like \'SE_IMPORT\';
  296. -- bierzemy z zasobow dane tylko takie, ktore nie maja powiazanych DEVICES (bierzemy tylko devices)
  297. insert into nconf.ConfigItems ( id_item , fk_id_class , DEVICES_ID,A_RECORD_CREATE_AUTHOR)
  298. select \'\', 1, DEVICES.ID , \'SE_IMPORT\' from '.$REMOTE_FOLDER_ROOT.'.DEVICES
  299. left join nconf.ConfigItems as ConfigItems_2 on ConfigItems_2.DEVICES_ID=DEVICES.ID
  300. where ConfigItems_2.DEVICES_ID is null ;
  301. -- dodajemy zasoby do monitoringu w inteligentny sposob razem z waznymi parametrami - jak to widac w zapytaniu
  302. insert ignore into nconf.ConfigValues ( attr_value, fk_id_attr, fk_id_item, A_RECORD_CREATE_AUTHOR )
  303. select
  304. if( ConfigAttrs.Attr_name like \'%host_name%\'
  305. , left(replace(replace(replace(replace(replace(replace(concat(DEV.ID,\'-\',DEV.T_DEVICE_SERIAL,\'-\',DEV.S_HW,\'[\',\\`CLZ\\`.ID,\'] URZADZENIE \', DEV.T_DEVICE_TYPE,\'-\',CLZ.\\`DESC\\`,\' \'),\',\',\'\'),\'/\',\'\'),\'(\',\'\'),\')\',\'\'),\'%\',\'\'),\'?\',\'\'),50)
  306. ,
  307. if( ConfigAttrs.Attr_name like \'alias\', \\`DEV\\`.\\`S_IP\\`,
  308. if( ConfigAttrs.Attr_name like \'address\', \\`DEV\\`.\\`S_IP\\`,
  309. if( ConfigAttrs.Attr_name like \'host_is_collector\',\'no\',\'\')
  310. )
  311. )
  312. )
  313. , ConfigAttrs.id_attr
  314. , ConfigItems.id_item ,\'SE_IMPORT\'
  315. from se_feromedia24_com.DEVICES as DEV
  316. left join '.$REMOTE_FOLDER_ROOT.'.CRM_LISTA_ZASOBOW as CLZ on CLZ.ID=DEV.CRM_LISTA_ZASOBOW_ID
  317. left join nconf.ConfigAttrs on ConfigAttrs.Attr_name
  318. in (\'host_name\',\'alias\',\'address\',\'notes\',\'notes_url\',\'host_is_collector\',\'action_url\',\'max_check_attempts\',\'check_interval\',\'retry_interval\',\'first_notification_delay\',\'notification_interval\',\'notification_options\',\'active_checks_enabled\',\'passive_checks_enabled\',\'notifications_enabled\',\'check_freshness\',\'freshness_threshold\') and ConfigAttrs.fk_id_class=\'1\'
  319. left join nconf.ConfigItems as ConfigItems on ConfigItems.DEVICES_ID=DEV.ID
  320. -- left join '.$REMOTE_FOLDER_ROOT.'.DEVICES as DEVICES on DEVICES.CRM_LISTA_ZASOBOW_ID=CLZ.ID
  321. where DEV.S_IP like \'%_\';
  322. -- dodajemy potrzebne wpisy odnosnie klasy monitorowania
  323. insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr, A_RECORD_CREATE_AUTHOR )
  324. select ConfigItems.id_item , \'1\' , ConfigAttrs.id_attr , \'SE_IMPORT\' from nconf.ConfigItems
  325. left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'monitored_by\' and ConfigAttrs.fk_id_class=\'1\'
  326. where ConfigItems.DEVICES_ID>0 ;
  327. -- kolejny istotny parametr
  328. insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr , A_RECORD_CREATE_AUTHOR)
  329. select ConfigItems.id_item , ConfigValues.fk_id_item , ConfigAttrs.id_attr , \'SE_IMPORT\' from nconf.ConfigItems
  330. left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'parents\' and ConfigAttrs.fk_id_class=\'1\'
  331. left join nconf.ConfigAttrs as ConfigAttrs2 on ConfigAttrs2.attr_name=\'host_name\' and ConfigAttrs.fk_id_class=\'1\'
  332. left join nconf.ConfigValues on ConfigValues.attr_value=\'localhost\' and fk_id_attr=ConfigAttrs2.id_attr
  333. where ConfigItems.DEVICES_ID>0 and ConfigValues.fk_id_item is not null;
  334. -- # OS domyslnie LINUX 18 , trzeba wziac z ConfigClasses config_class=\'os\' -> id_class, i poszukac ConfigItems.id_item;
  335. insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr, A_RECORD_CREATE_AUTHOR )
  336. select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr , \'SE_IMPORT\' from nconf.ConfigItems
  337. left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'os\' and ConfigAttrs.fk_id_class=\'1\'
  338. left join nconf.ConfigClasses on ConfigClasses.config_class=ConfigAttrs.attr_name
  339. left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class
  340. where ConfigItems.DEVICES_ID>0
  341. group by ConfigItems.id_item
  342. ;
  343. -- #host-preset==75 , trzeba wziac z ConfigClasses config_class=\'os\' -> id_class, i poszukac ConfigItems.id_item;
  344. insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr, A_RECORD_CREATE_AUTHOR )
  345. select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr ,\'SE_IMPORT\' from nconf.ConfigItems
  346. left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'host-preset\' and ConfigAttrs.fk_id_class=\'1\'
  347. left join nconf.ConfigClasses on ConfigClasses.config_class=ConfigAttrs.attr_name
  348. left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class
  349. where ConfigItems.DEVICES_ID>0
  350. group by ConfigItems.id_item;
  351. -- #check_period==19 , trzeba wziac kakis time_period z Classes;
  352. insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr , A_RECORD_CREATE_AUTHOR)
  353. select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr ,\'SE_IMPORT\' from nconf.ConfigItems
  354. left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'check_period\' and ConfigAttrs.fk_id_class=\'1\'
  355. left join nconf.ConfigClasses on ConfigClasses.config_class=\'timeperiod\'
  356. left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class
  357. where ConfigItems.DEVICES_ID>0
  358. group by ConfigItems.id_item;
  359. -- #contact_groups==22 ,
  360. insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr, A_RECORD_CREATE_AUTHOR )
  361. select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr,\'SE_IMPORT\' from nconf.ConfigItems
  362. left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'contact_groups\' and ConfigAttrs.fk_id_class=\'1\'
  363. left join nconf.ConfigClasses on ConfigClasses.config_class=\'contactgroup\'
  364. left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class
  365. where ConfigItems.DEVICES_ID>0
  366. group by ConfigItems.id_item;
  367. -- # use host template(s) to inherit properties from - szukamy ConfigValues.attr_value=\'linux-server\' z atrybutem 108(name)
  368. insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr, A_RECORD_CREATE_AUTHOR)
  369. select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr,\'SE_IMPORT\'
  370. from nconf.ConfigItems
  371. left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'use\' and ConfigAttrs.fk_id_class=\'1\'
  372. left join nconf.ConfigAttrs as ConfigAttrs_name on ConfigAttrs_name.attr_name=\'name\' and ConfigAttrs_name.fk_id_class=\'14\'
  373. left join nconf.ConfigValues on ConfigValues.attr_value=\'linux-server\' and ConfigValues.fk_id_attr=ConfigAttrs_name.id_attr
  374. left join nconf.ConfigClasses on ConfigClasses.config_class=\'host-template\'
  375. left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class and ConfigValues.fk_id_item=ConfigItems2.id_item
  376. where ConfigItems.DEVICES_ID>0
  377. group by ConfigItems.id_item;
  378. -- bierzemy z zasobow dane tylko takie, ktore nie maja powiazanych DEVICES (TODO trzeba dorzucic obsluge tego)
  379. insert into nconf.ConfigItems ( id_item , fk_id_class , CRM_LISTA_ZASOBOW_ID , A_RECORD_CREATE_AUTHOR)
  380. select \'\', 1, CRM_LISTA_ZASOBOW.ID ,\'SE_IMPORT\' from '.$REMOTE_FOLDER_ROOT.'.CRM_LISTA_ZASOBOW
  381. left join nconf.ConfigItems as ConfigItems_2 on ConfigItems_2.CRM_LISTA_ZASOBOW_ID=CRM_LISTA_ZASOBOW.ID
  382. where CRM_LISTA_ZASOBOW.\\`TYPE\\`=\'SERWER\' and ConfigItems_2.CRM_LISTA_ZASOBOW_ID is null ;
  383. -- dodajemy zasoby do monitoringu w inteligentny sposob razem z waznymi parametrami - jak to widac w zapytaniu
  384. insert ignore into nconf.ConfigValues ( attr_value, fk_id_attr, fk_id_item , A_RECORD_CREATE_AUTHOR
  385. )
  386. select
  387. if( ConfigAttrs.Attr_name like \'%host_name%\'
  388. , left(replace(replace(replace(replace(replace(replace(concat(\'[\',\\`CLZ\\`.ID,\'] SERWER \',CLZ.\\`DESC\\`,\' \',CLZ.\\`OPIS\\`),\',\',\'\'),\'/\',\'\'),\'(\',\'\'),\')\',\'\'),\'%\',\'\'),\'?\',\'\'),40)
  389. ,
  390. if( ConfigAttrs.Attr_name like \'alias\', \\`CLZ\\`.\\`DESC\\`,
  391. if( ConfigAttrs.Attr_name like \'address\', \\`CLZ\\`.\\`DESC\\`,
  392. if( ConfigAttrs.Attr_name like \'host_is_collector\',\'no\',\'\')
  393. )
  394. )
  395. )
  396. , ConfigAttrs.id_attr
  397. , ConfigItems.id_item , \'SE_IMPORT\'
  398. from '.$REMOTE_FOLDER_ROOT.'.CRM_LISTA_ZASOBOW as CLZ
  399. left join nconf.ConfigAttrs on ConfigAttrs.Attr_name
  400. in (\'host_name\',\'alias\',\'address\',\'notes\',\'notes_url\',\'host_is_collector\',\'action_url\',\'max_check_attempts\',\'check_interval\',\'retry_interval\',\'first_notification_delay\',\'notification_interval\',\'notification_options\',\'active_checks_enabled\',\'passive_checks_enabled\',\'notifications_enabled\',\'check_freshness\',\'freshness_threshold\') and ConfigAttrs.fk_id_class=\'1\'
  401. left join nconf.ConfigItems as ConfigItems on ConfigItems.CRM_LISTA_ZASOBOW_ID=CLZ.ID
  402. left join '.$REMOTE_FOLDER_ROOT.'.DEVICES as DEVICES on DEVICES.CRM_LISTA_ZASOBOW_ID=CLZ.ID
  403. where CLZ.\\`TYPE\\`=\'SERWER\' and DEVICES.CRM_LISTA_ZASOBOW_ID is NULL;
  404. -- dodajemy potrzebne wpisy odnosnie klasy monitorowania
  405. insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr , A_RECORD_CREATE_AUTHOR
  406. )
  407. select ConfigItems.id_item , \'1\' , ConfigAttrs.id_attr , \'SE_IMPORT\' from nconf.ConfigItems
  408. left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'monitored_by\' and ConfigAttrs.fk_id_class=\'1\'
  409. where ConfigItems.CRM_LISTA_ZASOBOW_ID>0 ;
  410. -- kolejny istotny parametr
  411. insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr , A_RECORD_CREATE_AUTHOR
  412. )
  413. select ConfigItems.id_item , ConfigValues.fk_id_item , ConfigAttrs.id_attr , \'SE_IMPORT\' from nconf.ConfigItems
  414. left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'parents\' and ConfigAttrs.fk_id_class=\'1\'
  415. left join nconf.ConfigAttrs as ConfigAttrs2 on ConfigAttrs2.attr_name=\'host_name\' and ConfigAttrs.fk_id_class=\'1\'
  416. left join nconf.ConfigValues on ConfigValues.attr_value=\'localhost\' and fk_id_attr=ConfigAttrs2.id_attr
  417. where ConfigItems.CRM_LISTA_ZASOBOW_ID>0 and ConfigValues.fk_id_item is not null;
  418. -- # OS domyslnie LINUX 18 , trzeba wziac z ConfigClasses config_class=\'os\' -> id_class, i poszukac ConfigItems.id_item;
  419. insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr , A_RECORD_CREATE_AUTHOR
  420. )
  421. select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr ,\'SE_IMPORT\' from nconf.ConfigItems
  422. left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'os\' and ConfigAttrs.fk_id_class=\'1\'
  423. left join nconf.ConfigClasses on ConfigClasses.config_class=ConfigAttrs.attr_name
  424. left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class
  425. where ConfigItems.CRM_LISTA_ZASOBOW_ID>0
  426. group by ConfigItems.id_item
  427. ;
  428. -- #host-preset==75 , trzeba wziac z ConfigClasses config_class=\'os\' -> id_class, i poszukac ConfigItems.id_item;
  429. insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr , A_RECORD_CREATE_AUTHOR
  430. )
  431. select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr ,\'SE_IMPORT\' from nconf.ConfigItems
  432. left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'host-preset\' and ConfigAttrs.fk_id_class=\'1\'
  433. left join nconf.ConfigClasses on ConfigClasses.config_class=ConfigAttrs.attr_name
  434. left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class
  435. where ConfigItems.CRM_LISTA_ZASOBOW_ID>0
  436. group by ConfigItems.id_item;
  437. -- #check_period==19 , trzeba wziac kakis time_period z Classes;
  438. insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr , A_RECORD_CREATE_AUTHOR
  439. )
  440. select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr ,\'SE_IMPORT\' from nconf.ConfigItems
  441. left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'check_period\' and ConfigAttrs.fk_id_class=\'1\'
  442. left join nconf.ConfigClasses on ConfigClasses.config_class=\'timeperiod\'
  443. left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class
  444. where ConfigItems.CRM_LISTA_ZASOBOW_ID>0
  445. group by ConfigItems.id_item;
  446. -- #contact_groups==22 ,
  447. insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr , A_RECORD_CREATE_AUTHOR
  448. )
  449. select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr ,\'SE_IMPORT\' from nconf.ConfigItems
  450. left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'contact_groups\' and ConfigAttrs.fk_id_class=\'1\'
  451. left join nconf.ConfigClasses on ConfigClasses.config_class=\'contactgroup\'
  452. left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class
  453. where ConfigItems.CRM_LISTA_ZASOBOW_ID>0
  454. group by ConfigItems.id_item;
  455. -- # use host template(s) to inherit properties from - szukamy ConfigValues.attr_value=\'linux-server\' z atrybutem 108(name)
  456. insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr , A_RECORD_CREATE_AUTHOR
  457. )
  458. select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr ,\'SE_IMPORT\'
  459. from nconf.ConfigItems
  460. left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'use\' and ConfigAttrs.fk_id_class=\'1\'
  461. left join nconf.ConfigAttrs as ConfigAttrs_name on ConfigAttrs_name.attr_name=\'name\' and ConfigAttrs_name.fk_id_class=\'14\'
  462. left join nconf.ConfigValues on ConfigValues.attr_value=\'linux-server\' and ConfigValues.fk_id_attr=ConfigAttrs_name.id_attr
  463. left join nconf.ConfigClasses on ConfigClasses.config_class=\'host-template\'
  464. left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class and ConfigValues.fk_id_item=ConfigItems2.id_item
  465. where ConfigItems.CRM_LISTA_ZASOBOW_ID>0
  466. group by ConfigItems.id_item;
  467. " > /Library/Server/Web/Data/Sites/Default/nconf/ADD-ONS/import_from_se_to_nconf.sql ' ;
  468. //! nconf import do incingi z SE/devices urzadzen do monitoringu
  469. */
  470. //@2014-03-14 sqix: funkcja zglasza errory do poprawy TODO
  471. //! uruchomienie backupu USB jezeli wybrana opcja $BACKUP_USB_DEVICE
  472. //$cmd[]['rsh']='for a in `mount |grep \'/Volumes\' |awk \'{ print $1 }\'`; do
  473. // [ \''.$BACKUP_USB_DEVICE.'\' = \'YES\' ] && diskutil info $a |grep USB >/dev/null && {
  474. // mountpath=`diskutil info /dev/disk1s3 |grep \'Mount Point\' |sed s/.*Mount\ Point:\ *//g`
  475. // tmutil setdestination $mountpath
  476. // tmutil enable
  477. // } || echo "Not used backup device"
  478. // done
  479. //';
  480. return $cmd;
  481. }
  482. //@2015-08 instalator dla instalacji XSLa - java + saxon
  483. function INSTALL_GETCOMMANDS_XSL_ENGINES($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION) {
  484. //todo jdk do stuff
  485. // $cmd[]['scp']=array($INSTALL_ROOT,'/stuff/jdk-8u51-macosx-x64.dmg','/tmp/jdk-8u51-macosx-x64.dmg');
  486. // $cmd[]['rsh']='hdiutil mount /tmp/jdk-8u51-macosx-x64.dmg -mountpoint /Volumes/jdk-8u51-macosx-x64';
  487. // $cmd[]['rsh']='installer -package /Volumes/jdk-8u51-macosx-x64/JDK*.pkg -target "/" -verbose';
  488. //current 2017-03
  489. $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/jre-8u121-macosx-x64.dmg','/tmp/jre-8u121-macosx-x64.dmg');
  490. $cmd[]['rsh']='hdiutil mount /tmp/jre-8u121-macosx-x64.dmg -mountpoint /Volumes/jre-8u121-macosx-x64';
  491. $cmd[]['rsh']='installer -package /Volumes/jre-8u121-macosx-x64/Java\ 8\ Update\ 121.app/Contents/Resources/JavaAppletPlugin.pkg -target "/" -verbose';
  492. $cmd[]['rsh']='hdiutil unmount /Volumes/jre-8u121-macosx-x64';
  493. //current dla dzialania dity
  494. $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/jdk-8u121-macosx-x64.dmg','/tmp/jdk-8u121-macosx-x64.dmg');
  495. $cmd[]['rsh']='hdiutil mount /tmp/jdk-8u121-macosx-x64.dmg -mountpoint /Volumes/jdk-8u121-macosx-x64';
  496. $cmd[]['rsh']='installer -package /Volumes/jdk-8u121-macosx-x64.dmg/JDK\ 8\ Update\ 121.pkg -target "/" -verbose';
  497. $cmd[]['rsh']='hdiutil unmount /Volumes/jdk-8u121-macosx-x64';
  498. $cmd[]['rsh']='port -N install saxon';
  499. //todo repo-13 do stuff
  500. $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/expath-repo-0.13.1.zip','/tmp/expath-repo-0.13.1.zip');
  501. $cmd[]['rsh']='unzip /tmp/expath-repo-0.13.1.zip';
  502. $cmd[]['rsh']='export SAXON_HOME=/opt/local/share/java/';
  503. $cmd[]['rsh']='mkdir -p /opt/local/share/expath';
  504. $cmd[]['rsh']='chmod -R o+rwx /opt/local/share/expath';
  505. //todo expath do stuff expath-http-client-saxon-0.11.0.zip
  506. /* - jest inna struktura pliku - zupelnie inaczej dziala - nie ma BIN - do weryfikacji
  507. $cmd[]['scp_root']=array($INSTALL_ROOT,'/stuff/expath-http-client-saxon-0.12.0.zip','/tmp/expath-http-client-saxon-0.12.0.zip');
  508. $cmd[]['rsh']='cd /tmp && unzip /tmp/expath-http-client-saxon-0.12.0.zip';
  509. $cmd[]['rsh']='cd /tmp/expath-http-client-saxon-0.12.0/bin/
  510. chmod 755 xrepo
  511. ./xrepo create /opt/local/share/expath/repo
  512. ';
  513. */
  514. /* @2017-03 bindera: remuje, bo nie pewny to jest zestaw
  515. $cmd[]['scp_root']=array($INSTALL_ROOT,'stuff/jre-8u112-macosx-x64.tar.gz','/Library/Server/Web/Data/Sites/Default/SE/stuff/jre-8u112-macosx-x64.tar.gz');
  516. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/SE/stuff/ && tar -xzf `ls -1 jre-8u*-macosx-x64.tar.gz | sort -rn -t u -k 2 | head -1`';
  517. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/SE/stuff/ && cd `ls -1d jre1.8.*.jre/ | sort -rn -t _ -k 1.8 -k 2 | head -1` && defaults write `pwd`/Contents/Info.plist JavaVM -dict-add \'JVMCapabilities\' \'<array><string>JNI</string><string>BundledApp</string><string>CommandLine</string></array>\' ';
  518. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/SE/stuff/ && cd `ls -1d jre1.8.*.jre/ | sort -rn -t _ -k 1.8 -k 2 | head -1` && chmod 0664 Contents/Info.plist ';
  519. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/SE/stuff/ && cd `ls -1d jre1.8.*.jre/ | sort -rn -t _ -k 1.8 -k 2 | head -1` && plutil -convert xml1 Contents/Info.plist ';
  520. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/SE/stuff/ && cd `ls -1d jre1.8.*.jre/ | sort -rn -t _ -k 1.8 -k 2 | head -1` && mv `pwd` /Library/Java/JavaVirtualMachines/ ';
  521. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/SE/stuff/ && cd `ls -1d jre1.8.*.jre/ | sort -rn -t _ -k 1.8 -k 2 | head -1` && mkdir -p Contents/Home/bundle/Libraries';
  522. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/SE/stuff/ && cd `ls -1d jre1.8.*.jre/ | sort -rn -t _ -k 1.8 -k 2 | head -1` && cd Contents/Home/bundle/Libraries && ln -s ../../lib/server/libjvm.dylib libserver.dylib';
  523. */
  524. return $cmd;
  525. }
  526. function INSTALL_GETCOMMANDS_COMP_PORT($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION) {
  527. //komendy do stworzenia komponentu dot MARIADB
  528. $cmd[]['rsh']='cat /etc/sudoers |grep "'.$ADMIN_USERNAME.' ALL = NOPASSWD: /usr/bin/su" || echo "'.$ADMIN_USERNAME.' ALL = NOPASSWD: /usr/bin/su
  529. " >> /etc/sudoers;
  530. cat /etc/sudoers |grep "'.$ADMIN_USERNAME.' ALL = NOPASSWD: /usr/bin/su"';
  531. $cmd[]['rsh']='cat /etc/sudoers |grep "_www ALL = NOPASSWD: /Applications/Server.app/Contents/ServerRoot/usr/sbin/calendarserver_manage_principals" || echo "_www ALL = NOPASSWD: /Applications/Server.app/Contents/ServerRoot/usr/sbin/calendarserver_manage_principals
  532. " >> /etc/sudoers;
  533. cat /etc/sudoers |grep "_www ALL = NOPASSWD: /Applications/Server.app/Contents/ServerRoot/usr/sbin/calendarserver_manage_principals"';
  534. $cmd[]['rsh']='cat /etc/sudoers |grep "_www ALL = NOPASSWD: /usr/bin/dscl" || echo "_www ALL = NOPASSWD: /usr/bin/dscl
  535. " >> /etc/sudoers;
  536. cat /etc/sudoers |grep "_www ALL = NOPASSWD: /usr/bin/dscl"';
  537. $cmd[]['rsh']='cat /etc/sudoers |grep "_www ALL = NOPASSWD: /usr/bin/pwpolicy" || echo "_www ALL = NOPASSWD: /usr/bin/pwpolicy
  538. " >> /etc/sudoers;
  539. cat /etc/sudoers |grep "_www ALL = NOPASSWD: /usr/bin/pwpolicy"';
  540. $cmd[]['rsh']='cat /etc/sudoers |grep "_www ALL = NOPASSWD: /usr/sbin/createhomedir" || echo "_www ALL = NOPASSWD: /usr/sbin/createhomedir
  541. " >> /etc/sudoers;
  542. cat /etc/sudoers |grep "_www ALL = NOPASSWD: /usr/sbin/createhomedir"';
  543. $cmd[]['rsh']='cat /etc/sudoers |grep "_www ALL = NOPASSWD: /sbin/pfctl" || echo "_www ALL = NOPASSWD: /sbin/pfctl
  544. " >> /etc/sudoers;
  545. cat /etc/sudoers |grep "_www ALL = NOPASSWD: /sbin/pfctl"';
  546. // $cmd[]['rsh']='echo \\$UID';
  547. // $cmd[]['rsh']='echo "Uruchamiam zdalna procedure instalacji SE " |wall ';
  548. $cmd[]['rsh']='launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist'; //wyszukowanie plikow
  549. //@2016-07 kopia bezpieczenstwa bazy danych mysql TODO bzyk
  550. $cmd[]['rsh']='which mysqldump || exit 0 && echo "select 1+1;" | mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' || exit 0 && mysqldump -E -R --single-transaction --triggers --allow-keywords -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' \''.$REMOTE_FOLDER_ROOT.'\' > "/var/root/'.$REMOTE_FOLDER_ROOT.'.`date \'+%Y-%m-%d\'`.mysqldump "';
  551. //ewentualna proba upgrejdowania instniejacego portu
  552. //TO MOVE TO INSTALL_GETCOMMANDS_COMP_PORT_MARIADB
  553. if($SERVER_VERSION=='10.9Maverick') $cmd[]['rsh']="gcc 2>&1 |grep 'no input files' || echo 'You should install console-tools manually in server - type in console gcc'";
  554. //@2014-10 really needed??? if($SERVER_VERSION=='10.8MountainLion') $cmd[]['scp']=array('/Library/Server/Web/Data/Sites/Default/SE/se-dev-pl/stuff/xcode462_cltools_10_86938259a.dmg','/tmp/xcode462_cltools_10_86938259a.dmg');
  555. //@2014-10 really needed??? if($SERVER_VERSION=='10.8MountainLion') $cmd[]['rsh']='hdiutil mount /tmp/xcode462_cltools_10_86938259a.dmg -mountpoint /Volumes/xcodetools';
  556. //@2014-10 really needed??? if($SERVER_VERSION=='10.8MountainLion') $cmd[]['rsh']='installer -package /Volumes/xcodetools/Com* -target "/" -verbose';// $cmd[]['rsh']='installer -package /Volumes/xcodetools/Com* -target "'.$SERVER_MOUNT_POINT_ROOT.'" -verbose';
  557. //todo use sw_vers -productVersion -> shows 10.11.6 for elcapitain etc...
  558. if($SERVER_VERSION=='10.8MountainLion') {
  559. $cmd[]['scp']=array('/Library/Server/Web/Data/Sites/Default/SE/se-dev-pl/stuff/MacPorts-2.2.0-10.8-MountainLion.pkg','/tmp/MacPorts-2.2.0-10.8-MountainLion.pkg');
  560. $cmd[]['rsh']='installer -package /tmp/MacPorts-2.2.0-10.8-MountainLion.pkg -target "/" -verbose';// $cmd[]['rsh']='installer -package /tmp/MacPorts-2.2.0-10.8-MountainLion.pkg -target "'.$SERVER_MOUNT_POINT_ROOT.'" -verbose';
  561. $cmd[]['rsh']=' gcc -v || { '.tell_user_gui_error("You should run installer again after successfully finished Console Utils / Uruchom ponownie instalacje po pozytywnym zainstalowaniu Console Utils").'
  562. exit 1
  563. } ';
  564. } else if($SERVER_VERSION=='10.10Yosemite') {
  565. $cmd[]['scp']=array('/Library/Server/Web/Data/Sites/Default/SE/se-dev-pl/stuff/MacPorts-2.3.3-10.10-Yosemite.pkg','/tmp/MacPorts-2.3.3-10.10-Yosemite.pkg');
  566. $cmd[]['rsh']='installer -package /tmp/MacPorts-2.3.3-10.10-Yosemite.pkg -target "/" -verbose';
  567. } else if($SERVER_VERSION=='10.11-ElCapitan') {
  568. $cmd[]['scp']=array($INSTALL_ROOT.'/stuff/MacPorts-2.3.4-10.11-ElCapitan.pkg','/tmp/MacPorts-2.3.4-10.11-ElCapitan.pkg');
  569. $cmd[]['rsh']='installer -package /tmp/MacPorts-2.3.4-10.11-ElCapitan.pkg -target "/" -verbose';
  570. } else if($SERVER_VERSION=='10.12-Sierra') {
  571. $cmd[]['scp']=array($INSTALL_ROOT.'/stuff/MacPorts-2.4.1-10.12-Sierra.pkg','/tmp/MacPorts-2.4.1-10.12-Sierra.pkg');
  572. $cmd[]['rsh']='installer -package /tmp/MacPorts-2.4.1-10.12-Sierra.pkg -target "/" -verbose';
  573. } else {
  574. $cmd[]['scp']=array('/Library/Server/Web/Data/Sites/Default/SE/se-dev-pl/stuff/MacPorts-2.3.2-10.9-Mavericks.pkg','/tmp/MacPorts-2.3.2-10.9-Mavericks.pkg');
  575. $cmd[]['rsh']='installer -package /tmp/MacPorts-2.3.2-10.9-Mavericks.pkg -target "/" -verbose
  576. ';// $cmd[]['rsh']='installer -package /tmp/MacPorts-2.2.0-10.8-MountainLion.pkg -target "'.$SERVER_MOUNT_POINT_ROOT.'" -verbose';
  577. }
  578. $cmd[]['rsh']='xcode-select --install && '.tell_user_gui_error('zainstaluj komponenty XCODE i ponow instalacje').' && exit 1 || echo PASSED'; //@2015-11-01 - TODO do wytestowania a.binder
  579. $cmd[]['rsh']='mysql_ver=`port installed active 2>/dev/null|grep mariadb-server|awk "{print $2}"|cut -d "." -f 3|cut -d "_" -f 1`; if [ -z "${mysql_ver}" ]; then echo PASSED; else [ ${mysql_ver} -lt 48 ] && '.tell_user_gui_error('Dokonaj ręcznej aktualizacji bazy mysql zgodnie z krokiem procesu 5390 i ponów instalację.').' && exit 1 || echo PASSED; fi';
  580. $cmd[]['rsh']='port selfupdate || echo OK ';
  581. $cmd[]['rsh']='port upgrade outdated || echo "Nothing to upgrade"';
  582. $cmd[]['rsh']='port selfupdate';
  583. if($SERVER_VERSION=='10.10Yosemite') {
  584. $cmd[]['rsh']='port install ImageMagick';
  585. $cmd[]['rsh']='port install php55-imagick';
  586. $cmd[]['rsh']='port install php55-imagick';
  587. $cmd[]['rsh']='ls -al /usr/lib/php/extensions/no-debug-non-zts-20121212/imagick.so || cd /usr/lib/php/extensions/no-debug-non-zts-20121212/ && ln -s /opt/local/lib/php55/extensions/no-debug-non-zts-20121212/imagick.so . ';
  588. $cmd[]['rsh']='cat /etc/php.ini |grep "extension=imagick.so" || echo "\nextension=imagick.so\n" >> /etc/php.ini';
  589. }
  590. if($SERVER_VERSION=='10.11-ElCapitan') {
  591. $cmd[]['rsh']='port install ImageMagick';
  592. $cmd[]['rsh']='port install php55-imagick';
  593. $cmd[]['rsh']='port install php55-imagick';
  594. // $cmd[]['rsh']='ls -al /opt/local/lib/php55/extensions/no-debug-non-zts-20121212/imagick.so || cd /opt/local/lib/php55/extensions/no-debug-non-zts-20121212/ && ln -s /opt/local/lib/php55/extensions/no-debug-non-zts-20121212/imagick.so . ';
  595. $cmd[]['rsh']='cat /etc/php.ini |grep "extension=/opt/local/lib/php55/extensions/no-debug-non-zts-20121212/imagick.so" || echo "\nextension=/opt/local/lib/php55/extensions/no-debug-non-zts-20121212/imagick.so\n" >> /etc/php.ini';
  596. }
  597. if($SERVER_VERSION=='10.12-Sierra') {
  598. $cmd[]['rsh']='port -N install ImageMagick';
  599. $cmd[]['rsh']='port -N install php56-imagick';
  600. $cmd[]['rsh']='port -N install php56-imagick';
  601. $cmd[]['rsh']='cat /etc/php.ini |grep "extension=/opt/local/lib/php56/extensions/no-debug-non-zts-20131226/imagick.so" || echo "\nextension=/opt/local/lib/php56/extensions/no-debug-non-zts-20131226/imagick.so\n" >> /etc/php.ini';
  602. }
  603. // Modul ixed do SourceGuardian
  604. if($SERVER_VERSION=='10.9Maverick') $cmd[]['scp']=array('/Applications/SourceGuardian.app/Contents/Loaders/Mac\ OS\ X/ixed.5.4.dar','/usr/lib/php/extensions/no-debug-non-zts-20100525/');// $cmd[]['rsh']='installer -package /tmp/MacPorts-2.2.0-10.8-MountainLion.pkg -target "'.$SERVER_MOUNT_POINT_ROOT.'" -verbose';
  605. if($SERVER_VERSION=='10.9Maverick') $cmd[]['rsh']='cat /etc/php.ini |grep "extension=ixed.5.4.dar" || echo "\nextension=ixed.5.4.dar\n" >> /etc/php.ini';
  606. if($SERVER_VERSION=='10.10Yosemite') $cmd[]['scp']=array('/Applications/SourceGuardian.app/Contents/Loaders/Mac\ OS\ X/ixed.5.5.dar','/usr/lib/php/extensions/no-debug-non-zts-20121212/');// $cmd[]['rsh']='installer -package /tmp/MacPorts-2.2.0-10.8-MountainLion.pkg -target "'.$SERVER_MOUNT_POINT_ROOT.'" -verbose';
  607. if($SERVER_VERSION=='10.10Yosemite') $cmd[]['rsh']='cat /etc/php.ini |grep "extension=ixed.5.5.dar" || echo "\nextension=ixed.5.5.dar\n" >> /etc/php.ini';
  608. if($SERVER_VERSION=='10.11-ElCapitan') $cmd[]['scp']=array('/Applications/SourceGuardian.app/Contents/Loaders/Mac\ OS\ X/ixed.5.5.dar','/opt/local/lib/php55/extensions/no-debug-non-zts-20121212/');// $cmd[]['rsh']='installer -package /tmp/MacPorts-2.2.0-10.8-MountainLion.pkg -target "'.$SERVER_MOUNT_POINT_ROOT.'" -verbose';
  609. if($SERVER_VERSION=='10.11-ElCapitan') $cmd[]['rsh']='cat /etc/php.ini |grep "extension=/opt/local/lib/php55/extensions/no-debug-non-zts-20121212/ixed.5.5.dar" || echo "\nextension=/opt/local/lib/php55/extensions/no-debug-non-zts-20121212/ixed.5.5.dar\n" >> /etc/php.ini';
  610. if($SERVER_VERSION=='10.12-Sierra') {
  611. $cmd[]['scp']=array('/Applications/SourceGuardian.app/Contents/Loaders/Mac\ OS\ X/ixed.5.6.dar','/opt/local/lib/php56/extensions/no-debug-non-zts-20131226/');
  612. $cmd[]['rsh']='cat /etc/php.ini |grep "extension=/opt/local/lib/php56/extensions/no-debug-non-zts-20131226/ixed.5.6.dar" || echo "\nextension=/opt/local/lib/php56/extensions/no-debug-non-zts-20131226/ixed.5.6.dar\n" >> /etc/php.ini';
  613. }
  614. $cmd[]['rsh']='serveradmin stop web && serveradmin start web';
  615. //@2015-10-25 bindera: problemy po upgrade portow z niedzialajacym mysql - skip-networking- wykonanie instrukcji czyszczacych ten problem
  616. $cmd[]['rsh']="cat /opt/local/etc/mariadb/my.cnf |grep '^!include /opt/local/etc/mariadb/macports-default.cnf' && (
  617. sed -i.bak '!include /opt/local/etc/mariadb/macports-default.cnf/#!include /opt/local/etc/mariadb/macports-default.cnf/' /opt/local/etc/mariadb/my.cnf
  618. killall mysqld
  619. ) || echo OK";
  620. //EOF TO MOVE TO INSTALL_GETCOMMANDS_COMP_PORT_MARIADB
  621. $cmd[]['rsh']='cat /etc/paths |grep "/opt/local/bin" || echo "/opt/local/bin" >>/etc/paths';
  622. $cmd[]['rsh']=' grep "/opt/local/bin" /etc/paths || echo "/opt/local/bin" >>/etc/paths'; //dodanie do sciezek
  623. $cmd[]['rsh']=" sed -i.bak \"s/PS1='\\\\\h:/PS1='\\\\\H:/g\" /etc/bashrc"; //zmiana wyswietlania kurosra hosta
  624. $cmd[]['rsh']='which wget || port -N install wget';
  625. $cmd[]['rsh']='which joe || port -N install joe';
  626. $cmd[]['rsh']='which gnutar || port -N install gnutar';
  627. $cmd[]['rsh']='which gsed || port -N install gsed';
  628. $cmd[]['rsh']='which csv2xml || port -N install csv2xml';
  629. $cmd[]['rsh']='which xlsx2csv || port -N install xlsx2csv';
  630. $cmd[]['rsh']='ln -s /opt/local/bin/gnutar /usr/sbin/gnutar || echo PASSED';
  631. $cmd[]['rsh']='which apache-ant || port -N install apache-ant';
  632. $cmd[]['rsh']='which md5sum || port -N install md5sha1sum';
  633. $cmd[]['rsh']='which makepasswd || port -N install makepasswd';
  634. return $cmd;
  635. }
  636. function INSTALL_GETCOMMANDS_POSTGIS($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION,$OPTIONS) {
  637. // ! instalacja mapservera oraz komponentow sluzacych do obslugi spatialnej
  638. //stuff/GDAL_Complete-1.11.dmg
  639. //stuff/cairo_Framework-1.12.2-1-2.dmg
  640. //stuff/FreeType_Framework-2.4.12-1-2.dmg
  641. //stuff/MapServer-6.0.3-1.dmg
  642. //stuff/mapserver-6.4.1.tar
  643. // $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/*','/Library/Server/Web/Data/Sites/Default/SE/');
  644. /*
  645. $cmd[]['rsh']='hdiutil mount /Library/Server/Web/Data/Sites/Default/SE/stuff/GDAL_Complete-1.11.dmg -mountpoint /Volumes/GDAL_Complete-1.11';
  646. $cmd[]['rsh']='installer -package /Volumes/GDAL_Complete-1.11/GDAL*.pkg -target "/" -verbose';// $cmd[]['rsh']='installer -package /Volumes/xcodetools/Com* -target "'.$SERVER_MOUNT_POINT_ROOT.'" -verbose';
  647. $cmd[]['rsh']='hdiutil mount /Library/Server/Web/Data/Sites/Default/SE/stuff/cairo_Framework-1.12.2-1-2.dmg -mountpoint /Volumes/cairo_Framework-1.12.2-1-2';
  648. $cmd[]['rsh']='installer -package /Volumes/cairo_Framework-1.12.2-1-2/*.pkg -target "/" -verbose';// $cmd[]['rsh']='installer -package /Volumes/xcodetools/Com* -target "'.$SERVER_MOUNT_POINT_ROOT.'" -verbose';
  649. $cmd[]['rsh']='hdiutil mount /Library/Server/Web/Data/Sites/Default/SE/stuff/FreeType_Framework-2.4.12-1-2.dmg -mountpoint /Volumes/FreeType_Framework-2.4.12-1-2';
  650. $cmd[]['rsh']='installer -package /Volumes/FreeType_Framework-2.4.12-1-2/*.pkg -target "/" -verbose';// $cmd[]['rsh']='installer -package /Volumes/xcodetools/Com* -target "'.$SERVER_MOUNT_POINT_ROOT.'" -verbose';
  651. $cmd[]['rsh']='hdiutil mount /Library/Server/Web/Data/Sites/Default/SE/stuff/MapServer-6.0.3-1.dmg -mountpoint /Volumes/MapServer-6.0.3-1';
  652. $cmd[]['rsh']='installer -package /Volumes/MapServer-6.0.3-1/*.pkg -target "/" -verbose';// $cmd[]['rsh']='installer -package /Volumes/xcodetools/Com* -target "'.$SERVER_MOUNT_POINT_ROOT.'" -verbose';
  653. */
  654. /*
  655. $cmd[]['rsh']='hdiutil mount /Library/Server/Web/Data/Sites/Default/SE/stuff/JavaForOSX2014-001.dmg -mountpoint /Volumes/JavaForOSX2014-001';
  656. $cmd[]['rsh']='installer -package /Volumes/JavaForOSX2014-001/*.pkg -target "/" -verbose';// $cmd[]['rsh']='installer -package /Volumes/xcodetools/Com* -target "'.$SERVER_MOUNT_POINT_ROOT.'" -verbose';
  657. $cmd[]['rsh']='hdiutil mount /Library/Server/Web/Data/Sites/Default/SE/stuff/jdk-8u5-macosx-x64.dmg -mountpoint /Volumes/jdk-8u5-macosx-x64'; //TODO czy licencja na to pozwala??
  658. $cmd[]['rsh']='installer -package /Volumes/jdk-8u5-macosx-x64/*.pkg -target "/" -verbose';// $cmd[]['rsh']='installer -package /Volumes/xcodetools/Com* -target "'.$SERVER_MOUNT_POINT_ROOT.'" -verbose';
  659. $cmd[]['rsh']='port install libpng';
  660. $cmd[]['rsh']='cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs ; jdk=`ls | sort | tail -n 1`;
  661. mkdir -p /System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers ;
  662. ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/$jdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/jni.h /System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/jni.h
  663. port install mapserver';
  664. //$cmd[]['rsh']='port install mapserver';
  665. */
  666. // postgis by BZYK
  667. /*
  668. $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/postgis/PostgreSQL-9.3.4-1.dmg','/tmp/PostgreSQL-9.3.4-1.dmg');
  669. $cmd[]['rsh']='hdiutil mount /tmp/PostgreSQL-9.3.4-1.dmg -mountpoint /Volumes/PostgreSQL';
  670. $cmd[]['rsh']='installer -package /Volumes/PostgreSQL/PostgreSQL.pkg -target "/" -verbose';
  671. $cmd[]['rsh']='hdiutil unmount /Volumes/PostgreSQL';
  672. $cmd[]['rsh']='cd /usr/local/pgsql/data';
  673. $cmd[]['rsh']='sudo -u _postgres /usr/local/pgsql/bin/initdb -U postgres -D /usr/local/pgsql/data --encoding=UTF8 --locale=C || echo PASSED';
  674. $cmd[]['rsh']='sed -i ".bak" "s/.*listen_address.*#/listen_addresses = \'0.0.0.0\' #/g" /usr/local/pgsql/data/pg_hba.conf';
  675. $cmd[]['rsh']='grep "host all all 0.0.0.0/0 md5" /usr/local/pgsql/data/pg_hba.conf || echo \'host all all 0.0.0.0/0 md5\' >> /usr/local/pgsql/data/pg_hba.conf';
  676. $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/postgis/GDAL_Complete-1.11.dmg','/tmp/GDAL_Complete-1.11.dmg');
  677. $cmd[]['rsh']='hdiutil mount /tmp/GDAL_Complete-1.11.dmg -mountpoint /Volumes/GDAL_Complete';
  678. $cmd[]['rsh']='installer -package "/Volumes/GDAL_Complete/GDAL Complete.pkg" -target "/" -verbose';
  679. $cmd[]['rsh']='hdiutil unmount /Volumes/GDAL_Complete';
  680. $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/postgis/PostGIS-2.1.3-2.dmg','/tmp/PostGIS-2.1.3-2.dmg');
  681. $cmd[]['rsh']='hdiutil mount /tmp/PostGIS-2.1.3-2.dmg -mountpoint /Volumes/PostGIS';
  682. $cmd[]['rsh']='installer -package "/Volumes/PostGIS/PostGIS.pkg" -target "/" -verbose';
  683. $cmd[]['rsh']='hdiutil unmount /Volumes/PostGIS';
  684. $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/postgis/JavaForOSX2014-001.dmg','/tmp/JavaForOSX2014-001.dmg');
  685. $cmd[]['rsh']='hdiutil mount /tmp/JavaForOSX2014-001.dmg -mountpoint /Volumes/JavaForOSX';
  686. $cmd[]['rsh']='installer -package "/Volumes/JavaForOSX/JavaForOSX.pkg" -target "/" -verbose';
  687. $cmd[]['rsh']='hdiutil unmount /Volumes/JavaForOSX';
  688. $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/postgis/org.postgresql.postgres.plist','/Library/LaunchDaemons/org.postgresql.postgres.plist');
  689. $cmd[]['rsh']='launchctl load /Library/LaunchDaemons/org.postgresql.postgres.plist';
  690. $cmd[]['rsh']='launchctl start org.postgresql.postgres';
  691. $cmd[]['rsh']='/usr/local/pgsql/bin/psql -U postgres -c "create user root with password \''.$ADMIN_USERNAME_PASSWD.'\'" || echo PASSED';
  692. $cmd[]['rsh']='sudo -u _postgres /usr/local/pgsql/bin/createdb -U postgres -O "root" "'.$REMOTE_FOLDER_ROOT.'" || echo PASSED';
  693. $cmd[]['rsh']='/usr/local/pgsql/bin/psql -U postgres -d "'.$REMOTE_FOLDER_ROOT.'" -c "CREATE EXTENSION postgis;" || echo PASSED';
  694. $cmd[]['rsh']='/usr/local/pgsql/bin/psql -U postgres -d "'.$REMOTE_FOLDER_ROOT.'" -c "CREATE EXTENSION postgis_topology;" || echo PASSED';
  695. $cmd[]['rsh']='/usr/local/pgsql/bin/psql -U postgres -d "'.$REMOTE_FOLDER_ROOT.'" -c "CREATE EXTENSION fuzzystrmatch;" || echo PASSED';
  696. $cmd[]['rsh']='/usr/local/pgsql/bin/psql -U postgres -d "'.$REMOTE_FOLDER_ROOT.'" -c "CREATE EXTENSION postgis_tiger_geocoder;" || echo PASSED';
  697. */
  698. // Nowy postgres/postgis by Bzyk @ 2015-06-05
  699. $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/postgis2/Postgres-9.4.2.0.zip','/tmp/Postgres-9.4.2.0.zip');
  700. $cmd[]['rsh']='unzip -o -d /Applications /tmp/Postgres-9.4.2.0.zip';
  701. $cmd[]['rsh']='ls /var/db/postgres || mkdir /var/db/postgres';
  702. $cmd[]['rsh']='chown _postgres /var/db/postgres';
  703. $cmd[]['rsh']='cd /tmp
  704. sudo -u _postgres /Applications/Postgres.app/Contents/Versions/9.4/bin/initdb -U postgres -D /var/db/postgres --encoding=UTF8 --locale=C || echo PASSED';
  705. $cmd[]['rsh']='cat /var/db/postgres/pg_hba.conf |grep "host all all 0.0.0.0/0 md5" || echo \'host all all 0.0.0.0/0 md5\' >> /var/db/postgres/pg_hba.conf';
  706. $cmd[]['rsh']='sed -i ".bak" "s/.*listen_address.*#/listen_addresses = \'0.0.0.0\' #/g" /var/db/postgres/postgresql.conf';
  707. $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/postgis2/org.postgres.plist','/Library/LaunchDaemons/org.postgres.plist');
  708. $cmd[]['rsh']='launchctl load /Library/LaunchDaemons/org.postgres.plist';
  709. $cmd[]['rsh']='/Applications/Postgres.app/Contents/Versions/9.4/bin/psql -U postgres -c "create user root with password \''.$ADMIN_USERNAME_PASSWD.'\'" || echo PASSED';
  710. $cmd[]['rsh']='sudo -u _postgres /Applications/Postgres.app/Contents/Versions/9.4/bin/createdb -U postgres -O "root" "'.$REMOTE_FOLDER_ROOT.'" || echo PASSED';
  711. $cmd[]['rsh']='/Applications/Postgres.app/Contents/Versions/9.4/bin/psql -U postgres -d "'.$REMOTE_FOLDER_ROOT.'" -c "CREATE EXTENSION postgis;" || echo PASSED';
  712. $cmd[]['rsh']='/Applications/Postgres.app/Contents/Versions/9.4/bin/psql -U postgres -d "'.$REMOTE_FOLDER_ROOT.'" -c "CREATE EXTENSION postgis_topology;" || echo PASSED';
  713. $cmd[]['rsh']='/Applications/Postgres.app/Contents/Versions/9.4/bin/psql -U postgres -d "'.$REMOTE_FOLDER_ROOT.'" -c "CREATE EXTENSION fuzzystrmatch;" || echo PASSED';
  714. $cmd[]['rsh']='/Applications/Postgres.app/Contents/Versions/9.4/bin/psql -U postgres -d "'.$REMOTE_FOLDER_ROOT.'" -c "CREATE EXTENSION postgis_tiger_geocoder;" || echo PASSED';
  715. //TODO jakis test dodania bazy danych i czy dziala?
  716. $cmd[]['rsh']='rm -Rf /Library/Server/Web/Data/Sites/Default/pg || echo PASSED';
  717. $cmd[]['rsh']='mkdir -p /Library/Server/Web/Data/Sites/Default/pg';
  718. $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/postgis/phpPgAdmin-5.1.zip','/Library/Server/Web/Data/Sites/Default/pg/phpPgAdmin-5.1.zip');
  719. $cmd[]['rsh']='unzip -o /Library/Server/Web/Data/Sites/Default/pg/phpPgAdmin-5.1.zip -d /Library/Server/Web/Data/Sites/Default/pg';
  720. $cmd[]['rsh']='mv /Library/Server/Web/Data/Sites/Default/pg/phpPgAdmin-5.1/* /Library/Server/Web/Data/Sites/Default/pg';
  721. $cmd[]['rsh']='sed -i.bak "s/\\\'extra_login_security\\\'\].*=.*true/\\\'extra_login_security\\\'\]\ =\ false/" /Library/Server/Web/Data/Sites/Default/pg/conf/config.inc.php';
  722. //PGADMIN - to nie pg phpmyadmin!
  723. //$cmd[]['rsh']='port install wxWidgets-3.0';
  724. //$cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/postgis/pgadmin3-1.18.1.tar.gz','/usr/src/pgadmin3-1.18.1.tar.gz');
  725. //$cmd[]['rsh']='cd /usr/src/ && tar -zxpvf pgadmin3-1.18.1.tar.gz';
  726. //$cmd[]['rsh']='cd /usr/src/pgadmin3-1.18.1 && --with-wx=/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.0/ --with-wx-version=3.0';
  727. //$cmd[]['rsh']='port install phppgadmin';
  728. return $cmd;
  729. }
  730. function INSTALL_GETCOMMANDS_DITA($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION,$OPTIONS) {
  731. $cmd[]['rsh']="cd /Library/Server/Web/Data/Sites/Default/SE/stuff && rm dita-ot-2.3.3.zip || echo PASSED";
  732. $cmd[]['rsh']="cd /Library/Server/Web/Data/Sites/Default/SE/stuff && wget https://github.com/dita-ot/dita-ot/releases/download/2.3.3/dita-ot-2.3.3.zip -O dita-ot-2.3.3.zip ";
  733. $cmd[]['rsh']="cd /Library/Server/Web/Data/Sites/Default/SE/stuff && rm dita-ot-2.3.3 || echo PASSED";
  734. $cmd[]['rsh']="cd /Library/Server/Web/Data/Sites/Default/SE/stuff && unzip dita-ot-2.3.3.zip || echo PASSED";
  735. $cmd[]['rsh']="cd /Library/Server/Web/Data/Sites/Default/SE/stuff/dita-ot-2.3.3 && ./startcmd.sh || echo PASSED";
  736. //do grafow z obrazkow - do dity
  737. $cmd[]['rsh']='port -N install gnuplot';
  738. return $cmd;
  739. }
  740. //@2016-07-17 TODO
  741. function INSTALL_GETCOMMANDS_UNINSTALL_WORDPRESS($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION,$OPTIONS) {
  742. $cmd[]['rsh']='which mysqladmin && mysqladmin -h127.0.0.1 -f -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' drop '.$REMOTE_FOLDER_ROOT.'_wordpress || echo PASSED ';
  743. $cmd[]['rsh']="rm -Rf /Library/Server/Web/Data/Sites/Default/wordpress || echo PASSED";
  744. return $cmd;
  745. }
  746. function INSTALL_GETCOMMANDS_WORDPRESS($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION,$OPTIONS) {
  747. //@2016-05- bindera: dodajemy instalke wordpressa
  748. $cmd[]['rsh']="cd /Library/Server/Web/Data/Sites/Default && rm wordpress.tar.gz || echo PASSED";
  749. $cmd[]['rsh']="cd /Library/Server/Web/Data/Sites/Default && wget https://wordpress.org/latest.tar.gz -O wordpress.tar.gz";
  750. $cmd[]['rsh']="cd /Library/Server/Web/Data/Sites/Default && tar -zxpvf wordpress.tar.gz";
  751. //@2016-07-28 watpliwe ustawienie permow dla www dla katalogu wordpress, bo nie daje tam .htaccess przy aktywacji?!
  752. $cmd[]['rsh']="cd /Library/Server/Web/Data/Sites/Default && chown -R _www wordpress";
  753. // moved to UNINSTALL $cmd[]['rsh']='which mysqladmin && mysqladmin -f -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' drop '.$REMOTE_FOLDER_ROOT.'_wordpress || echo PASSED ';
  754. $cmd[]['rsh']='mysqladmin -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' create '.$REMOTE_FOLDER_ROOT.'_wordpress || echo PASSE';
  755. $cmd[]['rsh']='echo "GRANT ALL PRIVILEGES ON '.$REMOTE_FOLDER_ROOT.'_wordpress.* to \'wordpress\'@\'127.0.0.1\' IDENTIFIED BY \''.md5($ADMIN_USERNAME_PASSWD).'\' WITH GRANT OPTION; flush privileges;" |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\'';
  756. $cmd[]['rsh']='echo "GRANT ALL PRIVILEGES ON '.$REMOTE_FOLDER_ROOT.'_wordpress.* to \'wordpress\'@\'localhost\' IDENTIFIED BY \''.md5($ADMIN_USERNAME_PASSWD).'\' WITH GRANT OPTION; flush privileges;" |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\'';
  757. //@2016-07 aktywowany wordpress z cli nie wstawia .htaccess dobrego
  758. //teraz wylaczone z uwagi na test wp rewrite structure nizej z CLI
  759. /*$cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/wordpress && echo "<IfModule mod_rewrite.c>
  760. RewriteEngine On
  761. RewriteBase /wordpress/
  762. RewriteRule ^index\.php$ - [L]
  763. RewriteCond %{REQUEST_FILENAME} !-f
  764. RewriteCond %{REQUEST_FILENAME} !-d
  765. RewriteRule . /wordpress/index.php [L]
  766. </IfModule>
  767. " > .htaccess';
  768. */
  769. $cmd[]['rsh']='echo "
  770. <?php
  771. /** The name of the database for WordPress */
  772. define(\'DB_NAME\', \''.$REMOTE_FOLDER_ROOT.'_wordpress\');
  773. /** MySQL database username */
  774. define(\'DB_USER\', \'wordpress\');
  775. /** MySQL database password */
  776. define(\'DB_PASSWORD\', \''.md5($ADMIN_USERNAME_PASSWD).'\');
  777. /** MySQL hostname */
  778. define(\'DB_HOST\', \'127.0.0.1\');
  779. /** Database Charset to use in creating database tables. */
  780. define(\'DB_CHARSET\', \'utf8\');
  781. /** The Database Collate type. Don\'t change this if in doubt. */
  782. define(\'DB_COLLATE\', \'\');
  783. /**#@+
  784. * Authentication Unique Keys and Salts.
  785. *
  786. * Change these to different unique phrases!
  787. * You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
  788. * You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
  789. *
  790. * @since 2.6.0
  791. */
  792. define(\'AUTH_KEY\', \''.md5($REMOTE_FOLDER_ROOT.$ADMIN_USERNAME_PASSWD).'\');
  793. define(\'SECURE_AUTH_KEY\', \''.md5($REMOTE_FOLDER_ROOT.$ADMIN_USERNAME_PASSWD."1").'\');
  794. define(\'LOGGED_IN_KEY\', \''.md5($REMOTE_FOLDER_ROOT.$ADMIN_USERNAME_PASSWD."2").'\');
  795. define(\'NONCE_KEY\', \''.md5($REMOTE_FOLDER_ROOT.$ADMIN_USERNAME_PASSWD."3").'\');
  796. define(\'AUTH_SALT\', \''.md5($REMOTE_FOLDER_ROOT.$ADMIN_USERNAME_PASSWD."4").'\');
  797. define(\'SECURE_AUTH_SALT\', \''.md5($REMOTE_FOLDER_ROOT.$ADMIN_USERNAME_PASSWD."5").'\');
  798. define(\'LOGGED_IN_SALT\', \''.md5($REMOTE_FOLDER_ROOT.$ADMIN_USERNAME_PASSWD."6").'\');
  799. define(\'NONCE_SALT\', \''.md5($REMOTE_FOLDER_ROOT.$ADMIN_USERNAME_PASSWD."7").'\');
  800. /* Rozwiązanie problemu z działaniem po https by Piter & Bzyk
  801. * Więcej informacji na stronie http://codex.wordpress.org/Administration_Over_SSL
  802. */
  803. if (strpos(\$_SERVER[\'HTTP_X_FORWARDED_PROTO\'], \'https\') !== false) \$_SERVER[\'HTTPS\']=\'on\';
  804. /**
  805. * WordPress Database Table prefix.
  806. *
  807. * You can have multiple installations in one database if you give each
  808. * a unique prefix. Only numbers, letters, and underscores please!
  809. */
  810. \$table_prefix = \'wp_\';
  811. /**
  812. * For developers: WordPress debugging mode.
  813. *
  814. * Change this to true to enable the display of notices during development.
  815. * It is strongly recommended that plugin and theme developers use WP_DEBUG
  816. * in their development environments.
  817. *
  818. * For information on other constants that can be used for debugging,
  819. * visit the Codex.
  820. *
  821. * @link https://codex.wordpress.org/Debugging_in_WordPress
  822. */
  823. define(\'WP_DEBUG\', false);
  824. /* Thats all, stop editing! Happy blogging. */
  825. /** Absolute path to the WordPress directory. */
  826. if ( !defined(\'ABSPATH\') )
  827. define(\'ABSPATH\', dirname(__FILE__) . \'/\');
  828. /** Sets up WordPress vars and included files. */
  829. require_once(ABSPATH . \'wp-settings.php\');
  830. " >/Library/Server/Web/Data/Sites/Default/wordpress/wp-config.php ';
  831. $cmd[]['rsh']='chmod -R o+rwx /Library/Server/Web/Data/Sites/Default/wordpress/wp-content';
  832. $cmd[]['rsh']='chmod -R g+rwx /Library/Server/Web/Data/Sites/Default/wordpress/wp-content';
  833. //aktywacja idzie nizej modulem CLI , ale niestety nie dziala, wiec tak aktywujemy
  834. //- nie zawsze dziala$cmd[]['rsh']='wget --no-check-certificate --post-data=\'weblog_title='.$SERVER_ADDRESS_SHORT.'&user_name='.$ADMIN_USERNAME_L1.'&admin_password='.$ADMIN_USERNAME_L1_PASS.'&admin_password2='.$ADMIN_USERNAME_L1_PASS.'&admin_email='.$ADMIN_USERNAME_L1.'@'.$SERVER_ADDRESS_SHORT.'&submit=1\' http://'.$SERVER_ADDRESS.'/wordpress/wp-admin/install.php?step=2';
  835. //@2016-05-30 add by bzyk@imessage4energo
  836. $cmd[]['rsh']='curl -k -d \'weblog_title='.$SERVER_ADDRESS_SHORT.'&user_name='.$ADMIN_USERNAME_L1.'&admin_password='.$ADMIN_USERNAME_L1_PASS.'&admin_password2='.$ADMIN_USERNAME_L1_PASS.'&admin_email='.$ADMIN_USERNAME_L1.'@'.$SERVER_ADDRESS_SHORT.'&submit=1\' "https://'.$SERVER_ADDRESS.'/wordpress/wp-admin/install.php?step=2"';
  837. $cmd[]['rsh']='echo "
  838. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.' = create
  839. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':Listen:_array_index:0 ="0.0.0.0:80"
  840. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':ServerName = www.'.$SERVER_ADDRESS_SHORT.'
  841. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':ServerAdmin =admin@www.'.$SERVER_ADDRESS_SHORT.'
  842. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':DirectoryIndex:_array_index:0= "index.html"
  843. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':DirectoryIndex:_array_index:1= "index.php"
  844. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':WebMail = yes
  845. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':CustomLog:_array_index:0:Format = "%{User-agent}i"
  846. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':CustomLog:_array_index:0:enabled = yes
  847. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':CustomLog:_array_index:0:ArchiveInterval = 0
  848. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':CustomLog:_array_index:0:Path = "/private/var/log/httpd/access_log"
  849. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':CustomLog:_array_index:0:Archive = yes
  850. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':Directory:_array_id:/Library/WebServer/Documents:Options:Indexes = yes
  851. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':Directory:_array_id:/Library/WebServer/Documents:Options:ExecCGI = no
  852. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':Directory:_array_id:/Library/WebServer/Documents:AuthName = "Test Site"
  853. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':ErrorLog:ArchiveInterval = 0
  854. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':ErrorLog:Path = "/private/var/log/httpd/error_log"
  855. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':ErrorLog:Archive = no
  856. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':Include:_array_index:0 = "/etc/httpd/httpd_squirrelmail.conf"
  857. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':enabled = yes
  858. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':ErrorDocument:_array_index:0:StatusCode = 404
  859. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':ErrorDocument:_array_index:0:Document = "/nwesite_notfound.html"
  860. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':LogLevel = "warn"
  861. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':IfModule:_array_id:mod_ssl.c:SSLEngine = no
  862. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':IfModule:_array_id:mod_ssl.c:SSLPassPhrase = ""
  863. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':IfModule:_array_id:mod_ssl.c:SSLLog = "/private/var/log/httpd/ssl_engine_log"
  864. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':DocumentRoot = "/Library/Server/Web/Data/Sites/Default/wordpress"
  865. web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.'
  866. " > addsite_wordpress.in
  867. '; //todo add site
  868. $cmd[]['rsh']='[ -f /tmp/wp-cli.phar ] && rm /tmp/wp-cli.phar || echo passed';
  869. $cmd[]['rsh']='cd /tmp && wget https://raw.github.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -O wp-cli.phar';
  870. $cmd[]['rsh']='chmod +x /tmp/wp-cli.phar';
  871. $cmd[]['rsh']='mkdir -p /opt/local/wordpress/bin';
  872. $cmd[]['rsh']='[ -f /opt/local/wordpress/bin/wp ] && rm /opt/local/wordpress/bin/wp || echo passed';
  873. $cmd[]['rsh']='mv /tmp/wp-cli.phar /opt/local/wordpress/bin/wp';
  874. //'weblog_title='.$SERVER_ADDRESS_SHORT.'&user_name='.$ADMIN_USERNAME_L1.'&admin_password='.$ADMIN_USERNAME_L1_PASS.'&admin_password2='.$ADMIN_USERNAME_L1_PASS.'&admin_email='.$ADMIN_USERNAME_L1.'@'.$SERVER_ADDRESS_SHORT.'&submit=1\' http://'.$SERVER_ADDRESS.'/wordpress/wp-admin/install.php?step=2';
  875. //aktywacja wordpressa modulem CLI - to nie dziala - aktywacja wget
  876. //$cmd[]['rsh']='/opt/local/wordpress/bin/wp core install --allow-root --path=/Library/Server/Web/Data/Sites/Default/wordpress --url='.$SERVER_ADDRESS.'/wordpress --title='.$SERVER_ADDRESS.' --admin_user='.$ADMIN_USERNAME_L1.' --admin_password='.$ADMIN_USERNAME_L1_PASS.' --admin_email='.$ADMIN_USERNAME_L1.'@'.$SERVER_ADDRESS_SHORT.' || echo PASSED' ;
  877. $cmd[]['rsh']='/opt/local/wordpress/bin/wp plugin is-installed ldap-login-password-and-role-manager --allow-root --path=/Library/Server/Web/Data/Sites/Default/wordpress || /opt/local/wordpress/bin/wp plugin install ldap-login-password-and-role-manager --allow-root --path=/Library/Server/Web/Data/Sites/Default/wordpress';
  878. $cmd[]['rsh']='/opt/local/wordpress/bin/wp rewrite structure \'/%year%/%monthnum%/%postname%\' --allow-root --path=/Library/Server/Web/Data/Sites/Default/wordpress || /opt/local/wordpress/bin/wp plugin install ldap-login-password-and-role-manager --allow-root --path=/Library/Server/Web/Data/Sites/Default/wordpress';
  879. $cmd[]['rsh']='/opt/local/wordpress/bin/wp plugin activate ldap-login-password-and-role-manager --allow-root --path=/Library/Server/Web/Data/Sites/Default/wordpress || echo PASSED';
  880. $cmd[]['rsh']='/opt/local/wordpress/bin/wp option update ldap_login_password_and_role_manager_base_dn "cn=users,'.$SERVER_ADDRESS_LDAP_DC.'" --allow-root --path=/Library/Server/Web/Data/Sites/Default/wordpress';
  881. $cmd[]['rsh']='/opt/local/wordpress/bin/wp option update ldap_login_password_and_role_manager_domain_controllers "'.$SERVER_ADDRESS.'" --allow-root --path=/Library/Server/Web/Data/Sites/Default/wordpress';
  882. $cmd[]['rsh']='/opt/local/wordpress/bin/wp option update ldap_login_password_and_role_manager_loginattr "uid" --allow-root --path=/Library/Server/Web/Data/Sites/Default/wordpress';
  883. $cmd[]['rsh']='/opt/local/wordpress/bin/wp option update ldap_login_password_and_role_manager_lnameattr "uid" --allow-root --path=/Library/Server/Web/Data/Sites/Default/wordpress';
  884. $cmd[]['rsh']='/opt/local/wordpress/bin/wp option update ldap_login_password_and_role_manager_emailattr "mail" --allow-root --path=/Library/Server/Web/Data/Sites/Default/wordpress';
  885. //! wordpress procesy5 plugin begin!
  886. //@2016-05 TODO póki nie ma danych z clone repo - tutaj wrzucamy wersje aktualna modulu do wordpressa
  887. $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/stuff/p5_BeeCtrl.zip || echo PASSED';
  888. $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/p5_BeeCtrl.zip','/Library/Server/Web/Data/Sites/Default/SE/stuff/');
  889. $cmd[]['rsh']='unzip -o /Library/Server/Web/Data/Sites/Default/SE/stuff/p5_BeeCtrl.zip -d /Library/Server/Web/Data/Sites/Default/wordpress/wp-content/plugins';
  890. //is-installed
  891. $cmd[]['rsh']='/opt/local/wordpress/bin/wp plugin activate p5_BeeCtrl --allow-root --path=/Library/Server/Web/Data/Sites/Default/wordpress || echo PASSED';
  892. $cmd[]['rsh']='/opt/local/wordpress/bin/wp plugin activate p5_BeeCtrl --allow-root --path=/Library/Server/Web/Data/Sites/Default/wordpress || echo PASSED';
  893. //dodanie do konfiga tabeli do modulu domyslnych wartosci URL do api-wfs
  894. $cmd[]['rsh']='echo "CREATE TABLE IF NOT EXISTS \`wp_p5-BeeCtrl_config\` (
  895. \`id\` int(10) unsigned NOT NULL,
  896. \`property\` varchar(255) NOT NULL,
  897. \`value\` varchar(255) NOT NULL,
  898. \`isActive\` tinyint(1) NOT NULL,
  899. \`created_at\` timestamp NULL DEFAULT NULL,
  900. \`updated_at\` timestamp NULL DEFAULT NULL
  901. ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;" |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D '.$REMOTE_FOLDER_ROOT.'_wordpress || echo PASSED';
  902. $cmd[]['rsh']='echo "INSERT IGNORE INTO \`wp_p5-BeeCtrl_config\` (\`id\`, \`property\`, \`value\`, \`isActive\`, \`created_at\`, \`updated_at\`) VALUES
  903. (1, \'url\', \'https://'.$SERVER_ADDRESS.'/SE/wfs-data.php/default_db/\', 1, NULL, NULL),
  904. (2, \'onPage\', \'5\', 1, NULL, NULL); " |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D '.$REMOTE_FOLDER_ROOT.'_wordpress || echo PASSED';
  905. $cmd[]['rsh']='echo "ALTER TABLE `wp_p5-BeeCtrl_config` ADD PRIMARY KEY (`id`);" |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D '.$REMOTE_FOLDER_ROOT.'_wordpress || echo PASSED';
  906. $cmd[]['rsh']='echo "ALTER TABLE `wp_p5-BeeCtrl_config` MODIFY `id` int(10) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=3;" |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D '.$REMOTE_FOLDER_ROOT.'_wordpress || echo PASSED';
  907. return $cmd;
  908. }
  909. function INSTALL_GETCOMMANDS_MARIADB($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION) {
  910. //! MARIADB SERVER INSTALACJA
  911. $cmd[]['rsh']='port installed 2 >/dev/null | grep "mysql.*server" && { '.tell_user_gui_error("Wykryto zainstalowany MySQL. Wymagany ręczne upgrade do MariaDB. Instalacja przerwana.").'; exit 1; }';
  912. $cmd[]['rsh']='port -N install mariadb-server';
  913. $cmd[]['rsh']='sudo -u _mysql /opt/local/lib/mariadb/bin/mysql_install_db';
  914. $cmd[]['rsh']='sed -i.bak "s/<key>Disabled<\/key>/<key>Enabled<\/key>/" /Library/LaunchDaemons/org.macports.mariadb-server.plist'; //zmieniam inita do launchctl aby sam z siebie sie odpalal
  915. $cmd[]['rsh']='echo "[client]
  916. default-character-set = latin2
  917. [mysql]
  918. #default-character-set = latin2
  919. [mariadb]
  920. log-error=/var/log/mysql.log
  921. #default-character-set = utf8
  922. collation-server = latin2_general_ci
  923. init-connect=\'SET NAMES latin2\'
  924. character-set-server = latin2
  925. max_allowed_packet = 600M
  926. " > /etc/my.cnf';
  927. $cmd[]['rsh']="cat /opt/local/etc/mariadb/my.cnf | grep '^!include /opt/local/etc/mariadb/macports-default.cnf' && sed -i.bak '!include /opt/local/etc/mariadb/macports-default.cnf/#!include /opt/local/etc/mariadb/macports-default.cnf/' /opt/local/etc/mariadb/my.cnf || echo OK";
  928. //@2014-09-13 - to jest niepewne i raczej niedziala z LOWER CASE TABLES!
  929. //$cmd[]['rsh']='cat /opt/local/etc/mariadb/my.cnf | grep "lower_case_table_names = 0" || echo "
  930. // [mysqld]
  931. // lower_case_table_names = 0" >> /opt/local/etc/mysql55/my.cnf';
  932. // $cmd[]['rsh']='mkdir -p /opt/local/var/run/mysql5/';
  933. $cmd[]['rsh']='launchctl load -w /Library/LaunchDaemons/org.macports.mariadb-server.plist';
  934. $cmd[]['rsh']='grep "mariadb" /etc/paths || echo "/opt/local/lib/mariadb/bin" >>/etc/paths';
  935. //@2013-10-03 tu jest bug : - recznie wyzwolona ta sama komenda ruszyła, a skrypt zwrócił error - sprawdzam z zamiana wykrzyknikow w hasle!
  936. $cmd[]['rsh']='sleep 10 && mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -e \'select 1+1;\' || /opt/local/lib/mariadb/bin/mysqladmin password \''.$ADMIN_USERNAME_PASSWD.'\' ';
  937. // $cmd[]['rsh']='[ -d /var/mysql ] || {
  938. // mkdir -p /var/mysql && [ -e /var/mysql/mysql.sock ] || ln -s /opt/local/var/run/mariadb/mysqld.sock /var/mysql/mysql.sock
  939. // }';
  940. $cmd[]['rsh']='/opt/local/lib/mariadb/bin/mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -e "SET PASSWORD FOR \'root\'@\'localhost\' = PASSWORD(\''.$ADMIN_USERNAME_PASSWD.'\')" '; //@2015-02-28 problem dlugosci hasla - musi byc tak ustawione
  941. //! MARIADB SERVER INSTALACJA EOF
  942. return $cmd;
  943. }
  944. function INSTALL_GETCOMMANDS_WMS($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION,$OPTIONS) {
  945. //! pakiet: INSTALL_GETCOMMANDS_WMS @2016-07 maintain bzyk
  946. // mapserver
  947. $cmd[]['rsh']='port -N install mapserver >> /tmp/procesy5_install.log 2&>1 || echo PASSED'; //many times first time port install finishes with error - so do it twice as in tests!
  948. $cmd[]['rsh']='port -N install mapserver ';
  949. // qgis
  950. $cmd[]['scp']=array($INSTALL_ROOT.'/stuff/qgis__kyngchaos.com/QGIS-2.18.0-1.dmg','/tmp/QGIS-2.18.0-1.dmg');
  951. $cmd[]['rsh']='hdiutil mount /tmp/QGIS-2.18.0-1.dmg -mountpoint /Volumes/QGIS-2.18.0-1';
  952. $cmd[]['rsh']='installer -package "/Volumes/QGIS-2.18.0-1/1 GDAL Complete.pkg" -target "/" -verbose';
  953. $cmd[]['rsh']='installer -package "/Volumes/QGIS-2.18.0-1/2 NumPy.pkg" -target "/" -verbose';
  954. $cmd[]['rsh']='installer -package "/Volumes/QGIS-2.18.0-1/3 matplotlib.pkg" -target "/" -verbose';
  955. $cmd[]['rsh']='installer -package "/Volumes/QGIS-2.18.0-1/4 Install QGIS.pkg" -target "/" -verbose';
  956. $cmd[]['rsh']='hdiutil unmount /Volumes/QGIS-2.18.0-1';
  957. // WMS files
  958. $cmd[]['rsh']='mkdir -p /Library/Server/Web/Data/Sites/Default/wms/qgis';
  959. $cmd[]['rsh']='echo "RewriteEngine on
  960. RewriteBase /wms/
  961. RewriteCond %{REQUEST_FILENAME} !-f
  962. RewriteRule (.*) /wms/mapserv.cgi?map=/Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/WMS_LAYERS/.maps/\$1.map [QSA]" > /Library/Server/Web/Data/Sites/Default/wms/.htaccess';
  963. $cmd[]['rsh']='echo "RewriteEngine on
  964. RewriteBase /wms/qgis/
  965. RewriteCond %{REQUEST_FILENAME} !-f
  966. RewriteRule (.*) /wms/qgis/qgis_mapserv.cgi?MAP=/Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/WMS_LAYERS/.maps/.single/\$1.qgs [QSA]" > /Library/Server/Web/Data/Sites/Default/wms/qgis/.htaccess';
  967. $cmd[]['rsh']='[ -f /Library/Server/Web/Data/Sites/Default/wms/mapserv.cgi ] || ln -s /Library/WebServer/CGI-Executables/mapserv /Library/Server/Web/Data/Sites/Default/wms/mapserv.cgi';
  968. $cmd[]['rsh']='[ -f /Library/Server/Web/Data/Sites/Default/wms/qgis/qgis_mapserv.cgi ] || ln -s /Applications/QGIS.app/Contents/MacOS/fcgi-bin/qgis_mapserv.fcgi /Library/Server/Web/Data/Sites/Default/wms/qgis/qgis_mapserv.cgi';
  969. $cmd[]['rsh']='mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' -e "REPLACE INTO \\`CRM_CONFIG\\` (\\`CONF_KEY\\`,\\`CONF_VAL\\`) VALUES (\'module_WMS\',\'on\')"';
  970. return $cmd;
  971. }
  972. function INSTALL_GETCOMMANDS_BIAUDIT($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION,$OPTIONS) {
  973. $cmd[]['rsh']='mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' -e "REPLACE INTO \\`CRM_CONFIG\\` (\\`CONF_KEY\\`,\\`CONF_VAL\\`) VALUES (\'module_BiAudit\',\'on\')"';
  974. return $cmd;
  975. }
  976. //TODO trzeba inaczej to zainstalowac - bez dropowania- update zrobic
  977. function INSTALL_GETCOMMANDS_WEBMAIL($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION,$OPTIONS) {
  978. $cmd[]['rsh']='which mysqladmin && mysqladmin -f -h127.0.0.1 -uroot -p'.$ADMIN_USERNAME_PASSWD.' drop webmail || echo PASSED ';
  979. $cmd[]['rsh']='test -d /Library/Server/Web/Data/Sites/Default/webmail && rm -R /Library/Server/Web/Data/Sites/Default/webmail || echo PASSED';
  980. $cmd[]['rsh']='test -d /Library/Server/Web/Data/Sites/Default/roundcube.tar.gz && rm -R /Library/Server/Web/Data/Sites/Default/roundcube.tar.gz || echo PASSED';
  981. //!!!!!!!!! WEBMAIL !!!!!!!
  982. $cmd[]['rsh']='echo INSTALUJE WEBMAILA';
  983. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/ || exit 1
  984. wget http://sourceforge.net/projects/roundcubemail/files/roundcubemail/0.9.1/roundcubemail-0.9.1.tar.gz/download -O roundcube.tar.gz || exit 1';
  985. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/ || exit 1
  986. tar -zxpvf roundcube.tar.gz || exit 1';
  987. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/ || exit 1
  988. mv roundcubemail* webmail || exit 1 ';
  989. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/webmail || exit 1
  990. chown _www temp/ || exit 1
  991. chown _www logs/ || exit 1
  992. ';
  993. $cmd[]['scp_root']=array('/Library/Server/Web/Data/Sites/Default/webmail/loginFromSE.php',' /Library/Server/Web/Data/Sites/Default/webmail/');
  994. //ustalenie domyslnych identities na webmailu po zalogowaniu wlasciwych dla domeny
  995. $cmd[]['rsh']='test -n "'.$SERVER_ADDRESS_SHORT.'" && sed -i.bak "s/@DOMAIN_TO_EDIT/@'.$SERVER_ADDRESS_SHORT.'/" /Library/Server/Web/Data/Sites/Default/webmail/loginFromSE.php';
  996. $cmd[]['rsh']='test -n "'.$SERVER_ADDRESS.'" && sed -i.bak "s/@DOMAIN_TO_EDIT/@'.$SERVER_ADDRESS.'/" /Library/Server/Web/Data/Sites/Default/webmail/loginFromSE.php';
  997. $cmd[]['rsh']='sed -i.bak "s/\/\/\\$RCMAIL->db->query(/\\$RCMAIL->db->query(/" /Library/Server/Web/Data/Sites/Default/webmail/loginFromSE.php';
  998. // $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/OfflineIMAP-offlineimap-v6.5.5-0-g8bc2f35.tar',' /Library/Server/Web/Data/Sites/Default/');
  999. // $cmd[]['rsh']='tar -zxpvf /Library/Server/Web/Data/Sites/Default/OfflineIMAP-offlineimap-v6.5.5-0-g8bc2f35.tar* -C /Library/Server/Web/Data/Sites/Default/';
  1000. $cmd[]['rsh']='chmod +a "_www allow writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,add_file,add_subdirectory,delete_child,list,search,file_inherit,directory_inherit" /Library/WebServer/';
  1001. // $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/OfflineIMAP-offlineimap-8bc2f35/';
  1002. // $cmd[]['rsh']='touch /var/root/.offlineimaprc';
  1003. // $cmd[]['rsh']='port install db44'; //do icingi/nconfa
  1004. // $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/isync-1.0.6 && ./configure';
  1005. $cmd[]['rsh']='mysqladmin -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' create webmail';
  1006. $cmd[]['rsh']='echo "GRANT ALL PRIVILEGES ON webmail.* to \'webmail\'@\'127.0.0.1\' IDENTIFIED BY \'webmail666\' WITH GRANT OPTION; flush privileges;" |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\'';
  1007. $cmd[]['rsh']='echo "GRANT ALL PRIVILEGES ON webmail.* to \'webmail\'@\'localhost\' IDENTIFIED BY \'webmail666\' WITH GRANT OPTION; flush privileges;" |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\'';
  1008. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/webmail || exit 1
  1009. cat ./SQL/mysql.initial.sql | mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -h 127.0.0.1 -Dwebmail || exit 1 ';
  1010. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/webmail || exit 1
  1011. rm -r installer/ || exit 1';
  1012. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/webmail || exit 1
  1013. chown -R _www ../webmail || exit 1';
  1014. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/webmail || exit 1
  1015. chown -R _www ../webmail || exit 1';
  1016. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/webmail || exit 1
  1017. echo "<?
  1018. \$rcmail_config = array();
  1019. \$rcmail_config[\'debug_level\'] = 1;
  1020. \$rcmail_config[\'log_driver\'] = \'file\';
  1021. \$rcmail_config[\'log_date_format\'] = \'d-M-Y H:i:s O\';
  1022. \$rcmail_config[\'syslog_id\'] = \'roundcube\';
  1023. \$rcmail_config[\'syslog_facility\'] = LOG_USER;
  1024. \$rcmail_config[\'smtp_log\'] = true;
  1025. \$rcmail_config[\'log_logins\'] = false;
  1026. \$rcmail_config[\'log_session\'] = false;
  1027. \$rcmail_config[\'sql_debug\'] = false;
  1028. \$rcmail_config[\'imap_debug\'] = false;
  1029. \$rcmail_config[\'ldap_debug\'] = false;
  1030. \$rcmail_config[\'smtp_debug\'] = false;
  1031. \$rcmail_config[\'default_host\'] = \''.$SERVER_ADDRESS_SHORT.'\';
  1032. \$rcmail_config[\'default_port\'] = 143;
  1033. \$rcmail_config[\'imap_auth_type\'] = PLAIN;
  1034. \$rcmail_config[\'imap_delimiter\'] = null;
  1035. \$rcmail_config[\'imap_ns_personal\'] = null;
  1036. \$rcmail_config[\'imap_ns_shared\'] = null;
  1037. \$rcmail_config[\'imap_force_caps\'] = false;
  1038. \$rcmail_config[\'imap_force_lsub\'] = false;
  1039. \$rcmail_config[\'imap_force_ns\'] = false;
  1040. \$rcmail_config[\'imap_timeout\'] = 0;
  1041. \$rcmail_config[\'imap_auth_cid\'] = null;
  1042. \$rcmail_config[\'imap_auth_pw\'] = null;
  1043. \$rcmail_config[\'imap_cache\'] = null;
  1044. \$rcmail_config[\'messages_cache\'] = false;
  1045. \$rcmail_config[\'smtp_server\'] = \'127.0.0.1\';
  1046. \$rcmail_config[\'smtp_port\'] = 25;
  1047. \$rcmail_config[\'smtp_user\'] = \'\';
  1048. \$rcmail_config[\'smtp_pass\'] = \'\';
  1049. \$rcmail_config[\'smtp_auth_type\'] = \'\';
  1050. \$rcmail_config[\'smtp_auth_cid\'] = null;
  1051. \$rcmail_config[\'smtp_auth_pw\'] = null;
  1052. \$rcmail_config[\'smtp_helo_host\'] = \'\';
  1053. \$rcmail_config[\'smtp_timeout\'] = 0;
  1054. \$rcmail_config[\'enable_installer\'] = false;
  1055. \$rcmail_config[\'dont_override\'] = array();
  1056. \$rcmail_config[\'support_url\'] = \'\';
  1057. \$rcmail_config[\'skin_logo\'] = null;
  1058. \$rcmail_config[\'auto_create_user\'] = true;
  1059. \$rcmail_config[\'user_aliases\'] = false;
  1060. \$rcmail_config[\'log_dir\'] = \'logs/\';
  1061. \$rcmail_config[\'temp_dir\'] = \'temp/\';
  1062. \$rcmail_config[\'message_cache_lifetime\'] = \'10d\';
  1063. \$rcmail_config[\'force_https\'] = false;
  1064. \$rcmail_config[\'use_https\'] = false;
  1065. \$rcmail_config[\'login_autocomplete\'] = 0;
  1066. \$rcmail_config[\'login_lc\'] = 2;
  1067. \$rcmail_config[\'skin_include_php\'] = false;
  1068. \$rcmail_config[\'display_version\'] = false;
  1069. \$rcmail_config[\'session_lifetime\'] = 10;
  1070. \$rcmail_config[\'session_domain\'] = \'\';
  1071. \$rcmail_config[\'session_name\'] = null;
  1072. \$rcmail_config[\'session_path\'] = null;
  1073. \$rcmail_config[\'session_storage\'] = \'db\';
  1074. \$rcmail_config[\'ip_check\'] = false;
  1075. \$rcmail_config[\'referer_check\'] = false;
  1076. \$rcmail_config[\'x_frame_options\'] = \'sameorigin\';
  1077. \$rcmail_config[\'des_key\'] = \'+oEkJSMxbrsl%C!J1f3AjJK-\';
  1078. \$rcmail_config[\'username_domain\'] = \'\';
  1079. \$rcmail_config[\'mail_domain\'] = \'\';
  1080. \$rcmail_config[\'password_charset\'] = \'ISO-8859-1\';
  1081. \$rcmail_config[\'sendmail_delay\'] = 0;
  1082. \$rcmail_config[\'max_recipients\'] = 0;
  1083. \$rcmail_config[\'max_group_members\'] = 0;
  1084. \$rcmail_config[\'useragent\'] = \'Roundcube Webmail/\'.RCMAIL_VERSION;
  1085. \$rcmail_config[\'product_name\'] = \'webmail\';
  1086. \$rcmail_config[\'include_host_config\'] = false;
  1087. \$rcmail_config[\'generic_message_footer\'] = \'\';
  1088. \$rcmail_config[\'generic_message_footer_html\'] = \'\';
  1089. \$rcmail_config[\'http_received_header\'] = false;
  1090. \$rcmail_config[\'http_received_header_encrypt\'] = false;
  1091. \$rcmail_config[\'mail_header_delimiter\'] = NULL;
  1092. \$rcmail_config[\'line_length\'] = 72;
  1093. \$rcmail_config[\'send_format_flowed\'] = true;
  1094. \$rcmail_config[\'mdn_use_from\'] = false;
  1095. \$rcmail_config[\'identities_level\'] = 0;
  1096. \$rcmail_config[\'client_mimetypes\'] = null; # null == default
  1097. \$rcmail_config[\'mime_magic\'] = null;
  1098. \$rcmail_config[\'mime_types\'] = null;
  1099. \$rcmail_config[\'im_identify_path\'] = null;
  1100. \$rcmail_config[\'im_convert_path\'] = null;
  1101. \$rcmail_config[\'image_thumbnail_size\'] = 240;
  1102. \$rcmail_config[\'contact_photo_size\'] = 160;
  1103. \$rcmail_config[\'email_dns_check\'] = false;
  1104. \$rcmail_config[\'no_save_sent_messages\'] = false;
  1105. \$rcmail_config[\'plugins\'] = array();
  1106. \$rcmail_config[\'message_sort_col\'] = \'\';
  1107. \$rcmail_config[\'message_sort_order\'] = \'DESC\';
  1108. \$rcmail_config[\'list_cols\'] = array(\'subject\', \'status\', \'fromto\', \'date\', \'size\', \'flag\', \'attachment\');
  1109. \$rcmail_config[\'language\'] = null;
  1110. \$rcmail_config[\'date_format\'] = \'Y-m-d\';
  1111. \$rcmail_config[\'date_formats\'] = array(\'Y-m-d\', \'d-m-Y\', \'Y/m/d\', \'m/d/Y\', \'d/m/Y\', \'d.m.Y\', \'j.n.Y\');
  1112. \$rcmail_config[\'time_format\'] = \'H:i\';
  1113. \$rcmail_config[\'time_formats\'] = array(\'G:i\', \'H:i\', \'g:i a\', \'h:i A\');
  1114. \$rcmail_config[\'date_short\'] = \'D H:i\';
  1115. \$rcmail_config[\'date_long\'] = \'Y-m-d H:i\';
  1116. \$rcmail_config[\'drafts_mbox\'] = \'Drafts\';
  1117. \$rcmail_config[\'junk_mbox\'] = \'Junk\';
  1118. \$rcmail_config[\'sent_mbox\'] = \'Sent\';
  1119. \$rcmail_config[\'trash_mbox\'] = \'Trash\';
  1120. \$rcmail_config[\'default_folders\'] = array(\'INBOX\', \'Drafts\', \'Sent\', \'Junk\', \'Trash\');
  1121. \$rcmail_config[\'create_default_folders\'] = false;
  1122. \$rcmail_config[\'protect_default_folders\'] = true;
  1123. \$rcmail_config[\'quota_zero_as_unlimited\'] = false;
  1124. \$rcmail_config[\'enable_spellcheck\'] = true;
  1125. \$rcmail_config[\'spellcheck_dictionary\'] = false;
  1126. \$rcmail_config[\'spellcheck_engine\'] = \'googie\';
  1127. \$rcmail_config[\'spellcheck_uri\'] = \'\';
  1128. \$rcmail_config[\'spellcheck_languages\'] = NULL;
  1129. \$rcmail_config[\'spellcheck_ignore_caps\'] = false;
  1130. \$rcmail_config[\'spellcheck_ignore_nums\'] = false;
  1131. \$rcmail_config[\'spellcheck_ignore_syms\'] = false;
  1132. \$rcmail_config[\'recipients_separator\'] = \',\';
  1133. \$rcmail_config[\'max_pagesize\'] = 200;
  1134. \$rcmail_config[\'min_refresh_interval\'] = 60;
  1135. \$rcmail_config[\'upload_progress\'] = false;
  1136. \$rcmail_config[\'undo_timeout\'] = 0;
  1137. \$rcmail_config[\'address_book_type\'] = \'sql\';
  1138. \$rcmail_config[\'ldap_public\'] = array();
  1139. \$rcmail_config[\'ldap_public\'][\'localhost\'] = array(
  1140. \'name\' => \'localhost\',
  1141. \'hosts\' => array(\'127.0.0.1\'),
  1142. \'port\' => 389,
  1143. \'base_dn\' => \''.$SERVER_ADDRESS_LDAP_DC.'\',
  1144. \'search_base_dn\' => \'\',
  1145. \'required_fields\' => array(\'cn\', \'sn\', \'mail\'),
  1146. \'filter\' => \'(&(!(uid=_*))(mail=*@*))\',
  1147. \'search_dn_default\' => \'\',
  1148. \'LDAP_Object_Classes\' => array(\'top\', \'inetOrgPerson\'),
  1149. \'search_fields\' => array(\'givenName\',\'cn\',\'sn\',\'mail\'),
  1150. \'fieldmap\' => array(
  1151. \'name\' => \'cn\',
  1152. \'surname\' => \'sn\',
  1153. \'firstname\' => \'givenName\',
  1154. \'email\' => \'mail\'
  1155. ),
  1156. \'LDAP_rdn\' => \'mail\',
  1157. \'ldap_version\' => 3,
  1158. \'scope\' => \'sub\',
  1159. \'fuzzy_search\' => true
  1160. );
  1161. \$rcmail_config[\'autocomplete_addressbooks\'] = array(\'sql\',\'localhost\');
  1162. \$rcmail_config[\'autocomplete_min_length\'] = 1;
  1163. \$rcmail_config[\'autocomplete_threads\'] = 0;
  1164. \$rcmail_config[\'autocomplete_max\'] = 15;
  1165. \$rcmail_config[\'address_template\'] = \'{street}<br/>{locality} {zipcode}<br/>{country} {region}\';
  1166. \$rcmail_config[\'addressbook_search_mode\'] = 0;
  1167. \$rcmail_config[\'default_charset\'] = \'ISO-8859-1\';
  1168. \$rcmail_config[\'skin\'] = \'larry\';
  1169. \$rcmail_config[\'mail_pagesize\'] = 50;
  1170. \$rcmail_config[\'addressbook_pagesize\'] = 50;
  1171. \$rcmail_config[\'addressbook_sort_col\'] = \'surname\';
  1172. \$rcmail_config[\'addressbook_name_listing\'] = 0;
  1173. \$rcmail_config[\'timezone\'] = \'auto\';
  1174. \$rcmail_config[\'prefer_html\'] = true;
  1175. \$rcmail_config[\'show_images\'] = 0;
  1176. \$rcmail_config[\'message_extwin\'] = false;
  1177. \$rcmail_config[\'compose_extwin\'] = false;
  1178. \$rcmail_config[\'htmleditor\'] = 0;
  1179. \$rcmail_config[\'prettydate\'] = true;
  1180. \$rcmail_config[\'draft_autosave\'] = 300;
  1181. \$rcmail_config[\'preview_pane\'] = false;
  1182. \$rcmail_config[\'preview_pane_mark_read\'] = 0;
  1183. \$rcmail_config[\'logout_purge\'] = false;
  1184. \$rcmail_config[\'logout_expunge\'] = false;
  1185. \$rcmail_config[\'inline_images\'] = true;
  1186. \$rcmail_config[\'mime_param_folding\'] = 0;
  1187. \$rcmail_config[\'skip_deleted\'] = false;
  1188. \$rcmail_config[\'read_when_deleted\'] = true;
  1189. \$rcmail_config[\'flag_for_deletion\'] = false;
  1190. \$rcmail_config[\'refresh_interval\'] = 60;
  1191. \$rcmail_config[\'check_all_folders\'] = false;
  1192. \$rcmail_config[\'display_next\'] = true;
  1193. \$rcmail_config[\'autoexpand_threads\'] = 0;
  1194. \$rcmail_config[\'reply_mode\'] = 0;
  1195. \$rcmail_config[\'strip_existing_sig\'] = true;
  1196. \$rcmail_config[\'show_sig\'] = 1;
  1197. \$rcmail_config[\'force_7bit\'] = false;
  1198. \$rcmail_config[\'delete_always\'] = false;
  1199. \$rcmail_config[\'delete_junk\'] = false;
  1200. \$rcmail_config[\'mdn_requests\'] = 0;
  1201. \$rcmail_config[\'mdn_default\'] = 0;
  1202. \$rcmail_config[\'dsn_default\'] = 0;
  1203. \$rcmail_config[\'reply_same_folder\'] = false;
  1204. \$rcmail_config[\'forward_attachment\'] = false;
  1205. \$rcmail_config[\'default_addressbook\'] = null;
  1206. \$rcmail_config[\'spellcheck_before_send\'] = false;
  1207. \$rcmail_config[\'autocomplete_single\'] = false;
  1208. \$rcmail_config[\'default_font\'] = \'\';
  1209. " > config/main.inc.php
  1210. ';
  1211. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/webmail || exit 1
  1212. echo "<?
  1213. \$rcmail_config = array();
  1214. \$rcmail_config[\'db_dsnw\'] = \'mysql://webmail:webmail666@127.0.0.1/webmail\';
  1215. \$rcmail_config[\'db_dsnr\'] = \'\';
  1216. \$rcmail_config[\'db_persistent\'] = false;
  1217. // you can define specific table names used to store webmail data
  1218. \$rcmail_config[\'db_table_users\'] = \'users\';
  1219. \$rcmail_config[\'db_table_identities\'] = \'identities\';
  1220. \$rcmail_config[\'db_table_contacts\'] = \'contacts\';
  1221. \$rcmail_config[\'db_table_contactgroups\'] = \'contactgroups\';
  1222. \$rcmail_config[\'db_table_contactgroupmembers\'] = \'contactgroupmembers\';
  1223. \$rcmail_config[\'db_table_session\'] = \'session\';
  1224. \$rcmail_config[\'db_table_cache\'] = \'cache\';
  1225. \$rcmail_config[\'db_table_cache_index\'] = \'cache_index\';
  1226. \$rcmail_config[\'db_table_cache_thread\'] = \'cache_thread\';
  1227. \$rcmail_config[\'db_table_cache_messages\'] = \'cache_messages\';
  1228. \$rcmail_config[\'db_table_dictionary\'] = \'dictionary\';
  1229. \$rcmail_config[\'db_table_searches\'] = \'searches\';
  1230. \$rcmail_config[\'db_table_system\'] = \'system\';
  1231. // you can define specific sequence names used in PostgreSQL
  1232. \$rcmail_config[\'db_sequence_users\'] = \'user_ids\';
  1233. \$rcmail_config[\'db_sequence_identities\'] = \'identity_ids\';
  1234. \$rcmail_config[\'db_sequence_contacts\'] = \'contact_ids\';
  1235. \$rcmail_config[\'db_sequence_contactgroups\'] = \'contactgroups_ids\';
  1236. \$rcmail_config[\'db_sequence_searches\'] = \'search_ids\';
  1237. // end db config file
  1238. " > config/db.inc.php';
  1239. //!!!!!!!!! EOF WEBMAIL !!!!!!!
  1240. return $cmd;
  1241. }
  1242. function INSTALL_GETCOMMANDS_SE($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION,$OPTIONS) {
  1243. //@2014-09 sqix: po co kasowac - to niebezpieczne?! $cmd[]['rsh']='test -d /Library/Server/Web/Data/Sites/Default/SE/ && rm -R /Library/Server/Web/Data/Sites/Default/SE || echo PASSED';
  1244. //!!! Instalacja i generowanie konfiga - kopiowanie
  1245. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/SE || echo PASSED '; //zalozenie katalogow
  1246. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/'.$REMOTE_FOLDER_ROOT.' || echo PASSED '; //zalozenie katalogow
  1247. $cmd[]['scp_root']=array($INSTALL_ROOT.'/budynki*','/Library/Server/Web/Data/Sites/Default/SE/');
  1248. $cmd[]['scp_root']=array($INSTALL_ROOT.'/favicon.ico','/Library/Server/Web/Data/Sites/Default/SE/');
  1249. $cmd[]['scp_root']=array($INSTALL_ROOT.'/icon','/Library/Server/Web/Data/Sites/Default/SE/');
  1250. $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/index* || echo PASSED';
  1251. $cmd[]['scp_root']=array($INSTALL_ROOT.'/index*','/Library/Server/Web/Data/Sites/Default/SE/');
  1252. $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/odt2xhtml* || echo PASSED';
  1253. $cmd[]['scp_root']=array($INSTALL_ROOT.'/odt2xhtml*','/Library/Server/Web/Data/Sites/Default/SE/');
  1254. $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/procesy5* || echo PASSED';
  1255. $cmd[]['scp_root']=array($INSTALL_ROOT.'/procesy5*','/Library/Server/Web/Data/Sites/Default/SE/');
  1256. $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/przypomnij.php || echo PASSED';
  1257. $cmd[]['scp_root']=array($INSTALL_ROOT.'/przypomnij.php','/Library/Server/Web/Data/Sites/Default/SE/');
  1258. $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/se-lib || echo PASSED';
  1259. $cmd[]['scp_root']=array($INSTALL_ROOT.'/se-lib','/Library/Server/Web/Data/Sites/Default/SE/');
  1260. $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/schema || echo PASSED';
  1261. // $cmd[]['rsh']='mkdir -p /Library/Server/Web/Data/Sites/Default/SE/schema';
  1262. $cmd[]['scp_root']=array($INSTALL_ROOT.'/schema','/Library/Server/Web/Data/Sites/Default/SE/schema');
  1263. //$cmd[]['rsh']='mkdir -p /Library/Server/Web/Data/Sites/Default/SE/schema/wfs';
  1264. //$cmd[]['rsh']='mkdir -p /Library/Server/Web/Data/Sites/Default/SE/schema/gml';
  1265. //$cmd[]['scp_hidden_files']=array($INSTALL_ROOT.'/schema/.htaccess','/Library/Server/Web/Data/Sites/Default/SE/schema/');
  1266. //$cmd[]['scp_root']=array($INSTALL_ROOT.'/schema/wfs','/Library/Server/Web/Data/Sites/Default/SE/schema/');
  1267. //$cmd[]['scp_root']=array($INSTALL_ROOT.'/schema/gml','/Library/Server/Web/Data/Sites/Default/SE/schema/');
  1268. //$cmd[]['scp_root']=array($INSTALL_ROOT.'/schema/gui/core','/Library/Server/Web/Data/Sites/Default/SE/schema/gui/');
  1269. //$cmd[]['scp_root']=array($INSTALL_ROOT.'/schema/gui/company/'.$REMOTE_FOLDER_ROOT,'/Library/Server/Web/Data/Sites/Default/SE/schema/gui/company/');
  1270. $cmd[]['rsh']='chown -R _www /Library/Server/Web/Data/Sites/Default/SE/schema || echo PASSED';
  1271. $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/session-expire.php || echo PASSED';
  1272. $cmd[]['scp_root']=array($INSTALL_ROOT.'/session-expire.php','/Library/Server/Web/Data/Sites/Default/SE/');
  1273. $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/stuff || echo PASSED';
  1274. $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff','/Library/Server/Web/Data/Sites/Default/SE/');
  1275. $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/superedit* || echo PASSED';
  1276. $cmd[]['scp_root']=array($INSTALL_ROOT.'/superedit*','/Library/Server/Web/Data/Sites/Default/SE/');
  1277. $cmd[]['scp_root']=array($INSTALL_ROOT.'/webdav','/Library/Server/Web/Data/Sites/Default/SE/');
  1278. $cmd[]['rsh']='mkdir -p /Library/Server/Web/Data/Sites/Default/SE/config';
  1279. $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/config/.config_base_structure* || echo PASSED';
  1280. // TODO: 'scp_root' nie działa dla ukrytych plików .* - 'scp_hidden_files'
  1281. $cmd[]['scp_root']=array(''.$INSTALL_ROOT.'/config/.config_base_structure*','/Library/Server/Web/Data/Sites/Default/SE/config/'); //todo do przeniesienia wyzej - struktura musi byc wygenerowana
  1282. $cmd[]['scp_root']=array($INSTALL_ROOT.'/config/.cnf--column_init*','/Library/Server/Web/Data/Sites/Default/SE/config/');
  1283. $cmd[]['scp_root']=array($INSTALL_ROOT.'/config/.cnf--external_ids.ini.php*','/Library/Server/Web/Data/Sites/Default/SE/config/');
  1284. $cmd[]['scp_root']=array($INSTALL_ROOT.'/.config.php','/Library/Server/Web/Data/Sites/Default/SE/');
  1285. $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/procesy || echo PASSED';
  1286. $cmd[]['scp_root']=array($INSTALL_ROOT.'/procesy','/Library/Server/Web/Data/Sites/Default/SE/');
  1287. $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/static || echo PASSED';
  1288. $cmd[]['scp_root']=array($INSTALL_ROOT.'/static','/Library/Server/Web/Data/Sites/Default/SE/');
  1289. $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/bash_sync_perms.php || echo PASSED';
  1290. $cmd[]['scp_root']=array($INSTALL_ROOT.'/bash_sync_perms.php','/Library/Server/Web/Data/Sites/Default/SE/');
  1291. $cmd[]['rsh']='rm /Library/Server/Web/Data/Sites/Default/SE/bash_install_check.php || echo PASSED';
  1292. $cmd[]['scp_root']=array($INSTALL_ROOT.'/bash_install_check.php','/Library/Server/Web/Data/Sites/Default/SE/');
  1293. //! wfs !? dziala?
  1294. $cmd[]['rsh']='rm /Library/Server/Web/Data/Sites/Default/SE/wfs-data.php || echo PASSED';
  1295. $cmd[]['scp_root']=array($INSTALL_ROOT.'/wfs-data.php','/Library/Server/Web/Data/Sites/Default/SE/');
  1296. $cmd[]['rsh']='rm /Library/Server/Web/Data/Sites/Default/SE/wfs-qgis.php || echo PASSED';
  1297. $cmd[]['scp_root']=array($INSTALL_ROOT.'/wfs-qgis.php','/Library/Server/Web/Data/Sites/Default/SE/');
  1298. $cmd[]['rsh']='rm /Library/Server/Web/Data/Sites/Default/SE/wfs.php || echo PASSED';
  1299. $cmd[]['scp_root']=array($INSTALL_ROOT.'/wfs.php','/Library/Server/Web/Data/Sites/Default/SE/');
  1300. $cmd[]['rsh']='rm /Library/Server/Web/Data/Sites/Default/SE/bash_Route_Users_Task_syncUser.php || echo PASSED';
  1301. $cmd[]['scp_root']=array($INSTALL_ROOT.'/bash_Route_Users_Task_syncUser.php','/Library/Server/Web/Data/Sites/Default/SE/');
  1302. $cmd[]['rsh']='rm /Library/Server/Web/Data/Sites/Default/SE/bash_Route_Users_Task_syncGroup.php || echo PASSED';
  1303. $cmd[]['scp_root']=array($INSTALL_ROOT.'/bash_Route_Users_Task_syncGroup.php','/Library/Server/Web/Data/Sites/Default/SE/');
  1304. $cmd[]['rsh']='rm /Library/Server/Web/Data/Sites/Default/SE/bash_force_classified_table_by_GroupID.php || echo PASSED';
  1305. $cmd[]['scp_root']=array($INSTALL_ROOT.'/bash_force_classified_table_by_GroupID.php','/Library/Server/Web/Data/Sites/Default/SE/');
  1306. $cmd[]['scp_root']=array($INSTALL_ROOT.'/bash_Route_Users_Task_AddUser.php','/Library/Server/Web/Data/Sites/Default/SE/');
  1307. $cmd[]['rsh']='rm -Rf /Library/Server/Web/Data/Sites/Default/SE/projects || echo PASSED';
  1308. $cmd[]['scp_root']=array($INSTALL_ROOT.'/projects','/Library/Server/Web/Data/Sites/Default/SE/');
  1309. $cmd[]['scp_root']=array($INSTALL_ROOT.'/VERSION','/Library/Server/Web/Data/Sites/Default/SE/');
  1310. /* $cmd[]['rsh']='echo "<?php header(\'Location: https://'.$SERVER_ADDRESS.'/SE\'); ?>" > /Library/Server/Web/Data/Sites/Default/index.php'; // TODO @2014-08-11
  1311. */
  1312. $cmd[]['rsh']='echo "<?php header(\'Location: https://\'.\$_SERVER[\'SERVER_NAME\'].\'/SE/\');?>" > /Library/Server/Web/Data/Sites/Default/index.php';
  1313. //$cmd[]['rsh']='uruchomic na serwerze open directory i dodac tam konta roota';
  1314. //$cmd[]['rsh']='skonfigurowac poczte i wlaczyc';
  1315. //$cmd[]['rsh']='skonfigurowac pliki i wlaczyc - razem ze skanami';
  1316. //$cmd[]['rsh']='uruchomic i skonfiugorowac kalendarze (haslo do wysylki poczty musi dzialac i byc konto takie dodane)';
  1317. $cmd[]['rsh']='sed -i.bak "s/short_open_tag = Off/short_open_tag = On/" /etc/php.ini ';
  1318. $cmd[]['rsh']='sed -i.bak "s/memory_limit =.*/memory_limit = 428M/" /etc/php.ini ';
  1319. $cmd[]['rsh']='sed -i.bak "s/post_max_size =.*/post_max_size = 800M/" /etc/php.ini ';
  1320. $cmd[]['rsh']='sed -i.bak "s/session.gc_maxlifetime =.*/session.gc_maxlifetime = 3600/" /etc/php.ini ';
  1321. $cmd[]['rsh']='sed -i.bak "s/upload_max_filesize =.*/upload_max_filesize = 120M/" /etc/php.ini ';
  1322. $cmd[]['rsh']='sed -i.bak "s/allow_url_include = Off/allow_url_include = On/" /etc/php.ini';
  1323. $cmd[]['rsh']='sed -i.bak "s/pdo_mysql.cache_size =.*/pdo_mysql.cache_size = 200000/" /etc/php.ini ';
  1324. $cmd[]['rsh']='sed -i.bak "s/mysql.cache_size =.*/mysql.cache_size = 200000/" /etc/php.ini ';
  1325. $cmd[]['rsh']='sed -i.bak "s/mysqli.cache_size =.*/mysqli.cache_size = 200000/" /etc/php.ini ';
  1326. $cmd[]['rsh']='defaults write /Library/Preferences/com.apple.screensaver loginWindowIdleTime 0';
  1327. $cmd[]['rsh']='serveradmin settings web:defaultSite:enableServerSideIncludes = yes';
  1328. $cmd[]['rsh']='serveradmin settings web:defaultSite:allowAllOverrides = yes';
  1329. $cmd[]['rsh']='serveradmin settings web:defaultSecureSite:enableServerSideIncludes = yes';
  1330. $cmd[]['rsh']='serveradmin settings web:defaultSecureSite:allowAllOverrides = yes';
  1331. $cmd[]['rsh']='serveradmin settings web:defaultSecureSite:allowCGIExecution = yes';
  1332. $cmd[]['rsh']='test -f /Library/Server/Web/Config/Proxy/apache_serviceproxy.conf && sed -i.bak "s|ProxyPass / http://127.0.0.1:34543/$|ProxyPass / http://127.0.0.1:34543/ timeout=3600|" /Library/Server/Web/Config/Proxy/apache_serviceproxy.conf || exit 0';
  1333. $cmd[]['rsh']='test -f /Library/Server/Web/Config/Proxy/apache_serviceproxy.conf && launchctl stop com.apple.serviceproxy || exit 0 ';
  1334. $cmd[]['rsh']='serveradmin start web';
  1335. $cmd[]['rsh']=' php /Library/Server/Web/Data/Sites/Default/SE/bash_sync_perms.php '.$SERVER_ADDRESS.' addToLaunchctl';
  1336. $cmd[]['rsh']=' launchctl load /Library/LaunchDaemons/pl.biallnet.sync_perms.'.$SERVER_ADDRESS.'.php.plist';
  1337. //! #1228 @2016-04-11 bindera: jest blad - na tym etapie instalacji nie sa stworzone pliki konfiguracyjne, a ten skrypt ich wymaga, wiec jest blad!!! szukamy
  1338. //!@2016-04-11 jezierskik: 62.bash (bash_install_check) do podmiany, blad polega na tym, ze w nieodpowiedniej kolejnosci przechodzi proces instalacyjny co skutkuje wyskoczeniem bledu
  1339. // nalezy zamienic kolejnosc plikow, gubi pliki konfiguracyjne
  1340. if($SERVER_VERSION=='10.10Yosemite' or $SERVER_VERSION=='10.11-ElCapitan' or $SERVER_VERSION=='10.12-Sierra') {
  1341. $cmd[]['rsh']='dseditgroup -o read com.apple.access_mail || dseditgroup -o create com.apple.access_mail';
  1342. $cmd[]['rsh']='dseditgroup -o read com.apple.access_addressbook || dseditgroup -o create com.apple.access_addressbook';
  1343. $cmd[]['rsh']='dseditgroup -o read com.apple.access_smb || dseditgroup -o create com.apple.access_smb';
  1344. $cmd[]['rsh']='dseditgroup -o read com.apple.access_afp || dseditgroup -o create com.apple.access_afp';
  1345. $cmd[]['rsh']='dseditgroup -o read com.apple.access_vpn || dseditgroup -o create com.apple.access_vpn';
  1346. $cmd[]['rsh']='dseditgroup -o read com.apple.access_chat || dseditgroup -o create com.apple.access_chat';
  1347. $cmd[]['rsh']='dseditgroup -o read com.apple.access_calendar || dseditgroup -o create com.apple.access_calendar';
  1348. }
  1349. //odpalenie jabbera dla skroconej domeny servera:
  1350. $cmd[]['rsh']=' test -n "'.$SERVER_ADDRESS_SHORT.'" && serveradmin settings jabber:hostsCommaDelimitedString = "'.$SERVER_ADDRESS.','.$SERVER_ADDRESS_SHORT.'"';
  1351. //odpalenie jabbera::::
  1352. $cmd[]['rsh']=' serveradmin start jabber';
  1353. //odpalenie poczty dla skroconej domeny servera:
  1354. $cmd[]['rsh']=' test -n "'.$SERVER_ADDRESS_SHORT.'" && serveradmin settings mail:postfix:virtual_domains:_array_index:0 = "'.$SERVER_ADDRESS_SHORT.'"';
  1355. //odpalenie poczty::::
  1356. //$cmd[]['rsh']=' serveradmin settings mail:postfix:message_size_limit_enabled = no'; //wylaczenie limitu poczty
  1357. $cmd[]['rsh']=' serveradmin settings mail:postfix:message_size_limit = 90485760 ' ; //limit 90 mega
  1358. $cmd[]['rsh']=' serveradmin start mail';
  1359. //TODO need to reedit MainConf for virtual domains in /Library/Server/Mail/Config/postfix/main.cf (add hash:)
  1360. // virtual_alias_domains = $virtual_alias_maps hash:/Library/Server/Mail/Config/postfix/virtual_domains
  1361. $cmd[]['rsh']=' serveradmin start calendar';
  1362. return $cmd;
  1363. }
  1364. function INSTALL_GETCOMMANDS_SE_LAST_UPDATE($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION,$OPTIONS) {
  1365. //@2016-08-10 jest blad tutaj wyzwolenia w kosmetologii z bomby ktorys error wywala
  1366. if($ADMIN_USERNAME_PASSWD=='default') {
  1367. //przypadek biall.com.pl jest inna baza danych i ukryte hasla do zczytania z konfigow - TODO uzyc funkcje czytajaca .cnf-default_db...ini.php
  1368. $ADMIN_USERNAME_PASSWD=get_user_gui_response('Set/confirm ADMIN_USERNAME_PASSWD',$ADMIN_USERNAME_PASSWD);
  1369. $REMOTE_FOLDER_ROOT=get_user_gui_response('Set/confirm database name (REMOTE_FOLDER_ROOT) ',$REMOTE_FOLDER_ROOT);
  1370. }
  1371. $cmd[]['rsh']='php /Library/Server/Web/Data/Sites/Default/SE/bash_install_check.php '.$SERVER_ADDRESS;
  1372. $cmd[]['rsh']='php /Library/Server/Web/Data/Sites/Default/SE/bash_install_check.php '.$SERVER_ADDRESS; //dla pewnosci - TODO
  1373. //@2016-06 bindera: po aktualizacji sql czesto nie dziala event sheduler np zoompak
  1374. $cmd[]['rsh']=' echo " SET GLOBAL event_scheduler = \"ON\" " |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap
  1375. $cmd[]['rsh']=' { '.tell_user_gui_error("System zostal zainstalowany - wejdz przegladarka na adres www https://".$SERVER_ADDRESS." (alternatywnie https://".$SERVER_ADDRESS.".procesy5.pl - jezeli domena ".$SERVER_ADDRESS." nie zostala jeszcze skonfigurowana), zaloguj sie na uzytkownika:".$ADMIN_USERNAME." (administrator uzytkownikow) lub ".$ADMIN_USERNAME_DIRECTORY." (administrator domeny LDAP/systemu) . Powinienes teraz zalozyc uzytkownikow systemu i nadac hasla - jezeli jest to pierwsza instalacja ").'; exit 0; } '; //komunikat dla uzytkownika
  1376. if (!empty($OPTIONS->VERSION_GIT)) $cmd[]['rsh']='mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' -e "REPLACE INTO \\`CRM_CONFIG\\` (\\`CONF_KEY\\`,\\`CONF_VAL\\`) VALUES (\'activeProject\',\''.$OPTIONS->VERSION_GIT.'\')"';
  1377. return $cmd;
  1378. }
  1379. function INSTALL_GETCOMMANDS_SE_DB_DOMAIN_UNINSTALL($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION,$OPTIONS) {
  1380. //always before install mysql (if option to use)
  1381. return $cmd;
  1382. }
  1383. function INSTALL_GETCOMMANDS_SE_DB_DOMAIN($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION,$OPTIONS) {
  1384. //after always should be run INSTALL_GETCOMMANDS_SE
  1385. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/SE || echo PASSED '; //zalozenie katalogow
  1386. //! .cnf--default_db
  1387. $cmd[]['rsh']=' [ -d /Library/Server/Web/Data/Sites/Default/SE ] && echo PASSED '; //zalozenie katalogow
  1388. $cmd[]['rsh']=' echo ";<?php
  1389. ;die(); // For further security
  1390. ;// default DB
  1391. type=\"mysql\"
  1392. host=\"127.0.0.1\"
  1393. port=\"3306\"
  1394. user=\"root\"
  1395. pass=\"'.$ADMIN_USERNAME_PASSWD.'\"
  1396. database=\"'.$REMOTE_FOLDER_ROOT.'\"
  1397. zasob_id=\"2\"
  1398. " > /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--default_db-'.$SERVER_ADDRESS.'.ini.php
  1399. ';
  1400. //! .cnf--folders
  1401. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT;
  1402. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/PISMA';
  1403. $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/PISMA/index.html';
  1404. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/DEVICES';
  1405. $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/DEVICES/index.html';
  1406. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/PROJEKTY';
  1407. $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/PROJEKTY/index.html';
  1408. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/SES_PROCESY5_A';
  1409. $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/SES_PROCESY5_A/index.html';
  1410. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/CRM_PROCES';
  1411. $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/CRM_PROCES/index.html';
  1412. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/DRUKI';
  1413. $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/DRUKI/index.html';
  1414. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/ADMIN_USERS';
  1415. $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/ADMIN_USERS/index.html';
  1416. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/QUALITY_NOTICES';
  1417. $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/QUALITY_NOTICES/index.html';
  1418. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/BUILDINGS';
  1419. $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/BUILDINGS/index.html';
  1420. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/CRM_LISTA_ZASOBOW';
  1421. $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/CRM_LISTA_ZASOBOW/index.html';
  1422. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/GRAFIK_PRACY';
  1423. $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/GRAFIK_PRACY/index.html';
  1424. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/PROBLEMS';
  1425. $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/PROBLEMS/index.html';
  1426. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/SKANY'; //@2014-01-18 - should be added
  1427. $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/SKANY/index.html';
  1428. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/WMS_LAYERS';
  1429. $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/WMS_LAYERS/index.html';
  1430. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/BI_audit_POWIAZANIA';
  1431. $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/BI_audit_POWIAZANIA/index.html';
  1432. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/BI_audit_KW_requested';
  1433. $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/BI_audit_KW_requested/index.html';
  1434. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/WIZJE_LOKALNE';
  1435. $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/WIZJE_LOKALNE/index.html';
  1436. $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/MK_Rewiry';
  1437. $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/MK_Rewiry/index.html';
  1438. $cmd[]['rsh']=' chmod 0755 /Library/Server/Web/Data/Sites/Default/PLIKI/';
  1439. $cmd[]['rsh']=' chmod -R +a "_www allow writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,add_file,add_subdirectory,delete_child,list,search,file_inherit,directory_inherit" /Library/Server/Web/Data/Sites/Default/PLIKI';
  1440. //! TODO te komendy nie działają @2013-10-15 - trzeba ruszyc recznie z GUI
  1441. $cmd[]['rsh']=' sharing -l |grep '.$REMOTE_FOLDER_ROOT.' || sharing -a /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.' -A '.$REMOTE_FOLDER_ROOT.' -s 101' ; //uruchomienie sharingu smb/afp dla udzialu
  1442. $cmd[]['rsh']=' serveradmin start afp' ; //uruchomienie sharingu smb/afp dla udzialu
  1443. $cmd[]['rsh']=' serveradmin start smb' ; //uruchomienie sharingu smb/afp dla udzialu
  1444. $cmd[]['rsh']=' serveradmin start sharing' ; //uruchomienie sharingu smb/afp dla udzialu
  1445. //EOF TODO te komendy nie dzialaja
  1446. //@2014-01-18 bindera: aktualizacja konfigu do plikow zgodna z zalozeniami korespondencji w podfolderach
  1447. $cmd[]['rsh']=' echo ";<?php
  1448. ;die(); // For further security
  1449. [root_points]
  1450. mount_point=\"/Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'\"
  1451. share_point=\"//'.$SERVER_ADDRESS.'/'.$REMOTE_FOLDER_ROOT.'\"
  1452. www_share_point=\"https://'.$SERVER_ADDRESS.'/PLIKI/'.$REMOTE_FOLDER_ROOT.'\"
  1453. [m_dist_files_types]
  1454. ARTYKUL=\"ARTYKUL\"
  1455. CERT_CE=\"CERT_CE\"
  1456. CERTYFIKAT=\"CERTYFIKAT\"
  1457. DEKLARACJA=\"DEKLARACJA\"
  1458. DOKUMENTACJA=\"DOKUMENTACJA\"
  1459. DOK_POWYK=\"DOK_POWYK\"
  1460. DRUK=\"DRUK\"
  1461. ;//ETYKIETA=\"ETYKIETA\"
  1462. FAKTURA=\"FAKTURA\"
  1463. FIRMWARE=\"FIRMWARE\"
  1464. ;//INSTRUKCJA=\"INSTRUKCJA\"
  1465. ;//INSTRUKCJA_PL=\"INSTRUKCJA_PL\"
  1466. ;//INSTRUKCJA_PL_DRUK=\"INSTRUKCJA_PL_DRUK\"
  1467. ;//KARTA=\"KARTA\"
  1468. INNE=\"INNE\"
  1469. INSTRUKCJA=\"INSTRUKCJA\"
  1470. KARTA_GWARANCYJNA=\"KARTA_GWARANCYJNA\"
  1471. ;//KOMPLETACJA=\"KOMPLETACJA\"
  1472. LIST_PRZEWOZ=\"LIST_PRZEWOZ\"
  1473. NOTATKA=\"NOTATKA\"
  1474. OFERTA=\"OFERTA\"
  1475. ;//OVERLAY=\"OVERLAY\"
  1476. PISMO=\"PISMO\"
  1477. POLISA=\"POLISA\"
  1478. PREZENTACJA=\"PREZENTACJA\"
  1479. PROJEKT=\"PROJEKT\"
  1480. PROJEKT_BUD=\"PROJEKT_BUD\"
  1481. PROJEKT_GRAF=\"PROJEKT_GRAF\"
  1482. PROTOKOL=\"PROTOKOL\"
  1483. PROTOK_ODB_TOWAR=\"PROTOK_ODB_TOWAR\"
  1484. REKLAMACJA=\"REKLAMACJA\"
  1485. RYS_TECHNICZNY=\"RYS_TECHNICZNY\"
  1486. SPEC_WYROBU=\"SPEC_WYROBU\"
  1487. SOFT_CD=\"SOFT_CD\"
  1488. SWIAD_JAKOSCI=\"SWIAD_JAKOSCI\"
  1489. TODO=\"TODO\"
  1490. UMOWA=\"UMOWA\"
  1491. UCHWALA=\"UCHWALA\"
  1492. UCHWALA_WWW=\"UCHWALA_WWW\"
  1493. UZGODNIENIE=\"UZGODNIENIE\"
  1494. WEZW_DO_ZAPL=\"WEZW_DO_ZAPL\"
  1495. WWW_DOKUMENTY=\"WWW_DOKUMENTY\"
  1496. WWW_PRACA=\"WWW_PRACA\"
  1497. WZORZEC=\"WZORZEC\"
  1498. WNIOSEK=\"WNIOSEK\"
  1499. WNIOSEK_URLOP=\"WNIOSEK_URLOP\"
  1500. WYD_MAGAZYN=\"WYD_MAGAZYN\"
  1501. WYCENA=\"WYCENA\"
  1502. ZDJECIE=\"ZDJECIE\"
  1503. ZDJECIE_HI=\"ZDJECIE_HI\"
  1504. ZWOLNIENIE_LEK=\"ZWOLNIENIE_LEK\"
  1505. ZAMOWIENIE=\"ZAMOWIENIE\"
  1506. [default_COLUMN]
  1507. mount_point=\"default\";
  1508. share_point=\"default\"
  1509. www_share_point=\"default\"
  1510. LOOKAT_NEGFILE_LOOK_REGEX=\"/<VARNAME>./\"
  1511. LOOKAT_NEGFILE_VARNAME=\"ID\"
  1512. LOOKAT_FOLDER_LOOK_REGEX=\"/../\"
  1513. LOOKAT_FOLDER_VARNAME=\"ID\"
  1514. DEST_FOLDER_M_DIST_FILES_INDEXNAME=\"ID\"
  1515. [ADMIN_USERS_COLUMN]
  1516. mount_point=\"ADMIN_USERS\"
  1517. share_point=\"ADMIN_USERS\"
  1518. www_share_point=\"ADMIN_USERS\"
  1519. LOOKAT_FOLDER_LOOK_GLOB=\"<VARNAME>.*\"
  1520. LOOKAT_FOLDER_VARNAME=\"ID\"
  1521. DEST_FOLDER_FORMAT=\"<VARNAME1>.<VARNAME2>\"
  1522. DEST_FOLDER_VARNAME1=\"ID\"
  1523. DEST_FOLDER_VARNAME2=\"ADM_NAME\"
  1524. [CRM_LISTA_ZASOBOW_COLUMN]
  1525. mount_point=\"DRUKI\"
  1526. share_point=\"DRUKI\"
  1527. www_share_point=\"DRUKI\"
  1528. LOOKAT_FOLDER_LOOK_GLOB=\"<VARNAME>.*\"
  1529. LOOKAT_FOLDER_VARNAME=\"ID\"
  1530. DEST_FOLDER_FORMAT=\"<VARNAME1>.<VARNAME2>\"
  1531. DEST_FOLDER_VARNAME1=\"ID\"
  1532. DEST_FOLDER_VARNAME2=\"DESC\"
  1533. [CRM_LISTA_ZASOBOW_COLUMN]
  1534. mount_point=\"DRUKI\"
  1535. share_point=\"DRUKI\"
  1536. www_share_point=\"DRUKI\"
  1537. LOOKAT_FOLDER_LOOK_GLOB=\"<VARNAME>.*\"
  1538. LOOKAT_FOLDER_VARNAME=\"ID\"
  1539. DEST_FOLDER_FORMAT=\"<VARNAME1>.<VARNAME2>\"
  1540. DEST_FOLDER_VARNAME1=\"ID\"
  1541. DEST_FOLDER_VARNAME2=\"DESC\"
  1542. [CRM_PROCES_COLUMN]
  1543. mount_point=\"CRM_PROCES\"
  1544. share_point=\"CRM_PROCES\"
  1545. www_share_point=\"CRM_PROCES\"
  1546. LOOKAT_FOLDER_LOOK_GLOB=\"<VARNAME>.*\"
  1547. LOOKAT_FOLDER_VARNAME=\"ID\"
  1548. DEST_FOLDER_FORMAT=\"<VARNAME1>.<VARNAME2>\"
  1549. DEST_FOLDER_VARNAME1=\"ID\"
  1550. DEST_FOLDER_VARNAME2=\"DESC\"
  1551. [QUALITY_NOTICES_COLUMN]
  1552. mount_point=\"QUALITY_NOTICES\"
  1553. share_point=\"QUALITY_NOTICES\"
  1554. www_share_point=\"QUALITY_NOTICES\"
  1555. LOOKAT_FOLDER_LOOK_GLOB=\"<VARNAME>.*\"
  1556. LOOKAT_FOLDER_VARNAME=\"ID\"
  1557. DEST_FOLDER_FORMAT=\"<VARNAME1>.<VARNAME2>\"
  1558. DEST_FOLDER_VARNAME1=\"ID\"
  1559. DEST_FOLDER_VARNAME2=\"ID_PROCES\"
  1560. [GRAFIK_PRACY_COLUMN]
  1561. mount_point=\"GRAFIK_PRACY\"
  1562. share_point=\"GRAFIK_PRACY\"
  1563. www_share_point=\"GRAFIK_PRACY\"
  1564. LOOKAT_FOLDER_LOOK_GLOB=\"<VARNAME>.*\"
  1565. LOOKAT_FOLDER_VARNAME=\"ID\"
  1566. DEST_FOLDER_FORMAT=\"<VARNAME1>.<VARNAME2>\"
  1567. DEST_FOLDER_VARNAME1=\"ID\"
  1568. DEST_FOLDER_VARNAME2=\"DATE\"
  1569. DEST_FOLDER_VARNAME3=\"L_APPOITMENT_USER\"
  1570. [PROBLEMS_COLUMN]
  1571. mount_point=\"PROBLEMS\"
  1572. share_point=\"PROBLEMS\"
  1573. www_share_point=\"PROBLEMS\"
  1574. LOOKAT_FOLDER_LOOK_GLOB=\"<VARNAME>.*\"
  1575. LOOKAT_FOLDER_VARNAME=\"ID\"
  1576. DEST_FOLDER_FORMAT=\"<VARNAME1>.<VARNAME2>\"
  1577. DEST_FOLDER_VARNAME1=\"ID\"
  1578. DEST_FOLDER_VARNAME2=\"A_PROBLEM_DESC\"
  1579. [BUILDINGS_COLUMN]
  1580. mount_point=\"BUILDINGS\"
  1581. share_point=\"BUILDINGS\"
  1582. www_share_point=\"BUILDINGS\"
  1583. LOOKAT_FOLDER_LOOK_GLOB=\"<VARNAME>.*\"
  1584. LOOKAT_FOLDER_VARNAME=\"ID\"
  1585. DEST_FOLDER_FORMAT=\"<VARNAME1>.<VARNAME2>\"
  1586. DEST_FOLDER_VARNAME1=\"ID\"
  1587. DEST_FOLDER_VARNAME2=\"S_ADDRESS_STREET\"
  1588. [IN7_MK_BAZA_DYSTRYBUCJI_COLUMN]
  1589. mount_point=\"PROJEKTY\"
  1590. share_point=\"PROJEKTY\"
  1591. www_share_point=\"PROJEKTY\"
  1592. LOOKAT_FOLDER_LOOK_GLOB=\"<VARNAME>.*\"
  1593. LOOKAT_FOLDER_VARNAME=\"ID\"
  1594. DEST_FOLDER_FORMAT=\"<VARNAME1>.<VARNAME2>\"
  1595. DEST_FOLDER_VARNAME1=\"ID\"
  1596. DEST_FOLDER_VARNAME2=\"M_DIST_DESC\"
  1597. [IN7_DZIENNIK_KORESP_COLUMN]
  1598. mount_point=\"PISMA\"
  1599. share_point=\"PISMA\"
  1600. www_share_point=\"PISMA\"
  1601. LOOKAT_FOLDER_LOOK_GLOB=\"<VARNAME>.*\"
  1602. LOOKAT_FOLDER_VARNAME=\"ID\"
  1603. DEST_FOLDER_FORMAT=\"<VARNAME1>.<VARNAME2>-<VARNAME3>\"
  1604. DEST_FOLDER_VARNAME1=\"ID\"
  1605. DEST_FOLDER_VARNAME2=\"K_OD_KOGO\"
  1606. DEST_FOLDER_VARNAME3=\"K_ZAWARTOS\"
  1607. [DEVICES_COLUMN]
  1608. mount_point=\"DEVICES\"
  1609. share_point=\"DEVICES\"
  1610. www_share_point=\"DEVICES\"
  1611. LOOKAT_FOLDER_LOOK_GLOB=\"<VARNAME>.*\"
  1612. LOOKAT_FOLDER_VARNAME=\"ID\"
  1613. DEST_FOLDER_FORMAT=\"<VARNAME1>.<VARNAME2>_<VARNAME3>\"
  1614. DEST_FOLDER_VARNAME1=\"ID\"
  1615. DEST_FOLDER_VARNAME2=\"T_PRODUCER\"
  1616. DEST_FOLDER_VARNAME3=\"S_HW\"
  1617. [WIZJE_LOKALNE_COLUMN]
  1618. mount_point=\"WIZJE_LOKALNE\"
  1619. share_point=\"WIZJE_LOKALNE\"
  1620. www_share_point=\"WIZJE_LOKALNE\"
  1621. LOOKAT_FOLDER_LOOK_GLOB=\"<VARNAME>.*\"
  1622. LOOKAT_FOLDER_VARNAME=\"ID\"
  1623. DEST_FOLDER_FORMAT=\"<VARNAME1>.WIZJE_LOKALNE<VARNAME2>\"
  1624. DEST_FOLDER_VARNAME1=\"ID\"
  1625. DEST_FOLDER_VARNAME2=\"A_RECORD_CREATE_DATE\"
  1626. [SCANS_COLUMN]
  1627. mount_point=\"SKANY\"
  1628. share_point=\"SKANY\"
  1629. www_share_point=\"SKANY\"
  1630. [WMS_LAYERS_COLUMN]
  1631. mount_point=\"WMS_LAYERS\"
  1632. share_point=\"WMS_LAYERS\"
  1633. www_share_point=\"WMS_LAYERS\"
  1634. LOOKAT_FOLDER_LOOK_GLOB=\"<VARNAME>\"
  1635. LOOKAT_FOLDER_VARNAME=\"ID\"
  1636. DEST_FOLDER_FORMAT=\"<VARNAME1>\"
  1637. DEST_FOLDER_VARNAME1=\"ID\"
  1638. [MK_Rewiry_COLUMN]
  1639. mount_point=\"MK_Rewiry\"
  1640. share_point=\"MK_Rewiry\"
  1641. www_share_point=\"MK_Rewiry\"
  1642. LOOKAT_FOLDER_LOOK_GLOB=\"<VARNAME>.*\"
  1643. LOOKAT_FOLDER_VARNAME=\"ID\"
  1644. DEST_FOLDER_FORMAT=\"<VARNAME1>.MK_Rewiry_<VARNAME2>\"
  1645. DEST_FOLDER_VARNAME1=\"ID\"
  1646. DEST_FOLDER_VARNAME2=\"NAZWA_REWI\"
  1647. [BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA_COLUMN]
  1648. mount_point=\"BI_audit_POWIAZANIA\"
  1649. share_point=\"BI_audit_POWIAZANIA\"
  1650. www_share_point=\"BI_audit_POWIAZANIA\"
  1651. LOOKAT_FOLDER_LOOK_GLOB=\"BI_audit_POWIAZANIA.<VARNAME>\"
  1652. LOOKAT_FOLDER_VARNAME="ID"
  1653. DEST_FOLDER_FORMAT=\"BI_audit_POWIAZANIA.<VARNAME1>\"
  1654. DEST_FOLDER_VARNAME1="ID"
  1655. [BI_audit_KW_requested_COLUMN]
  1656. mount_point=\"BI_audit_KW_requested\"
  1657. share_point=\"BI_audit_KW_requested\"
  1658. www_share_point=\"BI_audit_KW_requested\"
  1659. LOOKAT_FOLDER_LOOK_GLOB=\"BI_audit_KW_requested.<VARNAME>\"
  1660. LOOKAT_FOLDER_VARNAME=\"ID\"
  1661. DEST_FOLDER_FORMAT=\"BI_audit_KW_requested.<VARNAME1>\"
  1662. DEST_FOLDER_VARNAME1=\"ID\"
  1663. " > /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--folders-'.$SERVER_ADDRESS.'.ini.php';
  1664. //! .config_domena_.php
  1665. //LDAP
  1666. $cmd[]['rsh']='echo ";<?php
  1667. ;die(); // For further security
  1668. ;// default LDAP
  1669. version=\"3\"
  1670. host=\"127.0.0.1\"
  1671. ;//port=\"\"
  1672. user=\"'.$ADMIN_USERNAME_DIRECTORY.'\"
  1673. pass=\"'.$ADMIN_USERNAME_PASSWD.'\"
  1674. base_dn=\"'.$SERVER_ADDRESS_LDAP_DC.'\"
  1675. " > /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--default_ldap-'.$SERVER_ADDRESS.'.ini.php
  1676. ';
  1677. $cmd[]['rsh']='echo "<?php
  1678. //$DATABASE_ROOT_ZASOB_ID=36; //numer zasobu dla bazy SQL w zasobach, pod nim powinny byc bezposrednio tabele, potem komorki
  1679. \\$CRM_IMPORT_TRANSLATE[\'CRM_LISTA_ZASOBOW\'][36]=2; //baza danych[36] na baze danych zainicjalizowana
  1680. \\$CRM_IMPORT_TRANSLATE[\'CRM_LISTA_ZASOBOW\'][14]=1; //server[14] na zainicjalizowany [1] tutaj definiujemy z zasob
  1681. \\$CNF_ZASOB[\'biallnet_crm_profiles\'][\'INTERFACE_ADDR\'] = \'se.dev.webone.pl\';
  1682. \\$CNF_ZASOB[\'biallnet_crm_profiles\'][\'SQL_USER\'] = \'crmexportprof\';
  1683. \\$CNF_ZASOB[\'biallnet_crm_profiles\'][\'SQL_USER_PASS\'] = \'crmexportprof\';
  1684. \\$CNF_ZASOB[\'biallnet_crm_profiles\'][\'SQL_DATABASE\'] = \'SES_USERS2\';
  1685. " > /Library/Server/Web/Data/Sites/Default/SE/config/.config-'.$SERVER_ADDRESS.'.php';
  1686. $cmd[]['rsh']=' echo ";<?php
  1687. ;die(); // For further security
  1688. ;// default DB
  1689. type=\"mysql\"
  1690. host=\"se.dev.webone.pl\"
  1691. port=\"3306\"
  1692. user=\"crmexportprof\"
  1693. pass=\"crmexportprof\"
  1694. database=\"SES_USERS2\"
  1695. " > /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--import_db-'.$SERVER_ADDRESS.'.ini.php
  1696. '; //todo zmienic to wczesniej
  1697. $cmd[]['rsh']='which mysqladmin && mysqladmin -h127.0.0.1 -f -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' drop '.$REMOTE_FOLDER_ROOT.' || echo PASSED ';
  1698. $cmd[]['rsh']='mysqladmin -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' create '.$REMOTE_FOLDER_ROOT.' || echo passed' ; //todo przestawic wczesniej
  1699. $cmd[]['scp_root']=array(''.$INSTALL_ROOT.'/config/.config_base_structure.php','/Library/Server/Web/Data/Sites/Default/SE/config/'); //todo do przeniesienia wyzej - struktura musi byc wygenerowana
  1700. //! inicjalizacja bazy SQIX_STRUCTURE_DB_SYNC
  1701. $cmd[]['scp_root']=array(''.$INSTALL_ROOT.'/config/.config_base_structure_dump.sql','/Library/Server/Web/Data/Sites/Default/SE/config/'); //todo do przeniesienia wyzej - struktura musi byc wygenerowana
  1702. $cmd[]['rsh']='/opt/local/lib/mariadb/bin/mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' '.$REMOTE_FOLDER_ROOT.' < /Library/Server/Web/Data/Sites/Default/SE/config/.config_base_structure_dump.sql'; //TODO powinno byc osobne miejsce do bazy i struktur bo kasuje to baze zamiast aktualizacji!
  1703. // TODO @2014-06-16 sprawdzic dodawanie struktur DB_STRUCTURES_CREATE - czy jest potrzebne - imho TAK
  1704. $cmd[]['rsh']='php -r"include(\'/Library/Server/Web/Data/Sites/Default/SE/superedit-DB_PROCEDURES_CREATE.php\') ; DB_PROCEDURES_CREATE(); " '.$SERVER_ADDRESS.' ';
  1705. $cmd[]['rsh']=' echo " update CRM_LISTA_ZASOBOW set \\`DESC\\`=\''.$SERVER_ADDRESS.'\' where \\`DESC\\`=\'biuro.biall-net.pl\' and \\`TYPE\\`=\'SERWER\' and ID=1 " |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //poprawa danych z referencyjnej bazy BIALL-NET
  1706. $cmd[]['rsh']=' echo " update CRM_LISTA_ZASOBOW set \\`DESC\\`=\''.$REMOTE_FOLDER_ROOT.'\' where \\`DESC\\`=\'SES_USERS2\' and \\`TYPE\\`=\'BAZA_DANYCH\' and ID=2 " |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //poprawa danych z referencyjnej bazy BIALL-NET
  1707. $cmd[]['rsh']=' echo " insert ignore into CRM_LISTA_ZASOBOW (\\`ID\\`, \\`DESC\\`, \\`TYPE\\`) VALUES(2, \'BAZA_DANYCH\', \'BAZA_DANYCH\') " |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; // create Zasob ID=2 if missing
  1708. $cmd[]['rsh']=' echo " insert ignore into CRM_LISTA_ZASOBOW (\\`ID\\`,\\`PARENT_ID\\`, \\`DESC\\`, \\`TYPE\\`,\\`A_STATUS\\`) VALUES(3,0, \''.$REMOTE_FOLDER_ROOT.'\', \'PODMIOT\',\'NORMAL\') " |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; // create default group for process data
  1709. // TODO $cmd[]['rsh']='php /Library/Server/Web/Data/Sites/Default/SE/bash_Route_Users_Task_syncGroup.php '.$SERVER_ADDRESS.' 3';
  1710. $cmd[]['rsh']=' echo " delete from ADMIN_USERS where ADM_ACCOUNT=\''.$ADMIN_USERNAME_L1.'\'" |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap
  1711. $cmd[]['rsh']=' echo " insert into ADMIN_USERS (ADM_ACCOUNT,ADM_ADMIN_LEVEL,ADM_PASSWD,A_STATUS) values (\''.$ADMIN_USERNAME_L1.'\',\'0\',\''.$ADMIN_USERNAME_L1_PASS.'\',\'NORMAL\')" |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap
  1712. //addUser($usrLogin, $idGroup, $idTelboxes, $ADM_ADMIN_LEVEL, $ADM_NAME, $ADM_ADMIN_DESC, $EMPLOYEE_TYPE, $ADM_PASSWD, $A_ADM_COMPANY, $A_CLASSIFIED, $DEFAULT_ACL_GROUP )
  1713. // $cmd[]['rsh']='php /Library/Server/Web/Data/Sites/Default/SE/bash_Route_Users_Task_AddUser.php '.$SERVER_ADDRESS.' '.$ADMIN_USERNAME_L1.' 3 0 0 '.$ADMIN_USERNAME_L1.' Podstawowe_konto_uzytkownika_z_licencji_instalatora_systemu Pracownik '.$ADMIN_USERNAME_L1_PASS.' 3 3 ' ;
  1714. $cmd[]['rsh']=' echo " delete from ADMIN_USERS where ADM_ACCOUNT=\''.$ADMIN_USERNAME_DIRECTORY.'\'" |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap
  1715. $cmd[]['rsh']=' echo " insert into ADMIN_USERS (ADM_ACCOUNT,ADM_ADMIN_LEVEL,ADM_PASSWD,A_STATUS) values (\''.$ADMIN_USERNAME_DIRECTORY.'\',\'0\',\''.$ADMIN_USERNAME_PASSWD.'\',\'NORMAL\')" |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap
  1716. //dodanie domyslnego uprawnienia admina dla glownego usera na bazie tabeli KONTAKTY_view
  1717. //DEFAULT_ADMIN_ROLE
  1718. /* $cmd[]['rsh']=' echo " insert ignore into CRM_AUTH_PROFILE (ID_ZASOB, REMOTE_TABLE,REMOTE_ID) select czp1.ID , \'ADMIN_USERS\', au.ID
  1719. from CRM_LISTA_ZASOBOW cz
  1720. left join CRM_LISTA_ZASOBOW czp on czp.PARENT_ID=cz.ID
  1721. left join CRM_WSKAZNIK cw on cw.ID_ZASOB=czp.ID
  1722. left join _CRM_PROCES_STATS_proc_wiev as cpi on cpi.ID=cw.ID_PROCES
  1723. left join CRM_WSKAZNIK as cw1 on cw1.ID_PROCES=cpi.ID_PROCES_INIT
  1724. left join CRM_LISTA_ZASOBOW as czp1 on czp1.ID=cw1.ID_ZASOB and czp1.\\`TYPE\\`=\'STANOWISKO\'
  1725. left join ADMIN_USERS au on au.ADM_ACCOUNT=\''.$ADMIN_USERNAME_DIRECTORY.'\'
  1726. where cz.\\`DESC\\` like \'KONTAKTY_view\' and cz.\\`TYPE\\`=\'TABELA\' limit 1 " |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap*/
  1727. $cmd[]['rsh']=' echo " insert ignore into CRM_AUTH_PROFILE (ID_ZASOB, REMOTE_TABLE,REMOTE_ID) select cz.ID , \'ADMIN_USERS\', au.ID
  1728. from CRM_LISTA_ZASOBOW cz
  1729. left join ADMIN_USERS au on au.ADM_ACCOUNT=\''.$ADMIN_USERNAME_DIRECTORY.'\'
  1730. where cz.TAGS like \'%DEFAULT_ADMIN_ROLE%\' limit 10 " |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap
  1731. /* $cmd[]['rsh']=' echo " insert ignore into CRM_AUTH_PROFILE (ID_ZASOB, REMOTE_TABLE,REMOTE_ID) select czp1.ID , \'ADMIN_USERS\', au.ID
  1732. from CRM_LISTA_ZASOBOW cz
  1733. left join CRM_LISTA_ZASOBOW czp on czp.PARENT_ID=cz.ID
  1734. left join CRM_WSKAZNIK cw on cw.ID_ZASOB=czp.ID
  1735. left join _CRM_PROCES_STATS_proc_wiev as cpi on cpi.ID=cw.ID_PROCES
  1736. left join CRM_WSKAZNIK as cw1 on cw1.ID_PROCES=cpi.ID_PROCES_INIT
  1737. left join CRM_LISTA_ZASOBOW as czp1 on czp1.ID=cw1.ID_ZASOB and czp1.\\`TYPE\\`=\'STANOWISKO\'
  1738. left join ADMIN_USERS au on au.ADM_ACCOUNT=\''.$ADMIN_USERNAME_L1.'\'
  1739. where cz.\\`DESC\\` like \'KONTAKTY_view\' and cz.\\`TYPE\\`=\'TABELA\' limit 1 " |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap */
  1740. $cmd[]['rsh']=' echo " insert ignore into CRM_AUTH_PROFILE (ID_ZASOB, REMOTE_TABLE,REMOTE_ID) select cz.ID , \'ADMIN_USERS\', au.ID
  1741. from CRM_LISTA_ZASOBOW cz
  1742. left join ADMIN_USERS au on au.ADM_ACCOUNT=\''.$ADMIN_USERNAME_L1.'\'
  1743. where cz.TAGS like \'%DEFAULT_ADMIN_ROLE%\' limit 10 " |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap
  1744. $cmd[]['rsh']=' echo " insert ignore into CRM_AUTH_PROFILE (ID_ZASOB, REMOTE_TABLE,REMOTE_ID) select cz.ID , \'ADMIN_USERS\', au.ID
  1745. from CRM_LISTA_ZASOBOW cz
  1746. left join ADMIN_USERS au on au.ADM_ACCOUNT=\''.$ADMIN_USERNAME_L1.'\'
  1747. where cz.\\`TYPE\\`=\'PODMIOT\' and cz.\\`DESC\\`=\''.$REMOTE_FOLDER_ROOT.'\' limit 1 " |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap domyslna grupa
  1748. $cmd[]['rsh']=' echo " insert ignore into CRM_AUTH_PROFILE (ID_ZASOB, REMOTE_TABLE,REMOTE_ID) select cz.ID , \'ADMIN_USERS\', au.ID
  1749. from CRM_LISTA_ZASOBOW cz
  1750. left join ADMIN_USERS au on au.ADM_ACCOUNT=\''.$ADMIN_USERNAME_DIRECTORY.'\'
  1751. where cz.\\`TYPE\\`=\'PODMIOT\' and cz.\\`DESC\\`=\''.$REMOTE_FOLDER_ROOT.'\' limit 1 " |mysql -h127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap domyslna grupa
  1752. //TODO zamienic wyzej na akcje skryptem
  1753. $cmd[]['rsh']='php /Library/Server/Web/Data/Sites/Default/SE/bash_Route_Users_Task_syncUser.php '.$SERVER_ADDRESS.' '.$ADMIN_USERNAME_L1;
  1754. $cmd[]['rsh']='php /Library/Server/Web/Data/Sites/Default/SE/bash_Route_Users_Task_syncUser.php '.$SERVER_ADDRESS.' '.$ADMIN_USERNAME_DIRECTORY;
  1755. /* @2014-03-10 these has been moved to create config_base_structure_dump.sql option - WYKONAJ_REFERENCYJNA_BAZE_DANYCH
  1756. $cmd[]['rsh']='php -r"include(\'/Library/Server/Web/Data/Sites/Default/SE/superedit-SQIX_STRUCTURE_DB_SYNC.php\') ; SQIX_STRUCTURE_DB_SYNC(\'import_db\',\'default_db\',0,\'WYSLIJ_DO_BAZY\',\'SYNC_ZASOBY_STRUCTURES_FROM_CONFIG\'); " '.$SERVER_ADDRESS.' FILTR'; //todo pare razy trzaba powtarzac bo sa bledy
  1757. $cmd[]['rsh']='php -r"include(\'/Library/Server/Web/Data/Sites/Default/SE/superedit-SQIX_STRUCTURE_DB_SYNC.php\') ; SQIX_STRUCTURE_DB_SYNC(\'import_db\',\'default_db\',0,\'WYSLIJ_DO_BAZY\',\'CREATE_ZASOBY_DATABASE_DESC\'); " '.$SERVER_ADDRESS.' FILTR'; //@2013-10-15 staje recznie ?
  1758. $cmd[]['rsh']='php -r"include(\'/Library/Server/Web/Data/Sites/Default/SE/superedit-SQIX_STRUCTURE_DB_SYNC.php\') ; SQIX_STRUCTURE_DB_SYNC(\'import_db\',\'default_db\',0,\'WYSLIJ_DO_BAZY\',\'FROM_ZASOBY_TO_ZASOBY\'); " '.$SERVER_ADDRESS.' %PISM%,%zasob%,%ADMINISTRACJA%wyposaz%'; //import procesow z tagami PISMO
  1759. */
  1760. // $cmd[]['rsh']='php -r"include(\'/Library/Server/Web/Data/Sites/Default/SE/superedit-SQIX_STRUCTURE_DB_SYNC.php\') ; SQIX_STRUCTURE_DB_SYNC(\'import_db\',\'default_db\',0,\'WYSLIJ_DO_BAZY\',\'FROM_ZASOBY_TO_ZASOBY\'); " '.$SERVER_ADDRESS.' %zasob%'; //import procesow z tagami PISMO
  1761. // $cmd[]['rsh']='php -r"include(\'/Library/Server/Web/Data/Sites/Default/SE/superedit-SQIX_STRUCTURE_DB_SYNC.php\') ; SQIX_STRUCTURE_DB_SYNC(\'import_db\',\'default_db\',0,\'WYSLIJ_DO_BAZY\',\'FROM_ZASOBY_TO_ZASOBY\'); " '.$SERVER_ADDRESS.' %ADMINISTRACJA%'; //import procesow z tagami PISMO
  1762. // $cmd[]='whoami';
  1763. //todo po zainstalowaniu bazy danych i zasobow trzeba zmienic nazwe zasobow naszych :
  1764. //[14]=biuro.biall-net.pl -> $SERVER_ADDRESS
  1765. //[4803]=vpn.biall-net.pl -> todo(adres IP lokalny w ramach vpn.$SERVER_ADDRESS)
  1766. //! .cnf--default_db as id 2
  1767. $cmd[]['rsh']=' echo ";<?php
  1768. ;die(); // For further security
  1769. ;// default DB
  1770. type=\"mysql\"
  1771. host=\"127.0.0.1\"
  1772. port=\"3306\"
  1773. user=\"root\"
  1774. pass=\"'.$ADMIN_USERNAME_PASSWD.'\"
  1775. database=\"'.$REMOTE_FOLDER_ROOT.'\"
  1776. zasob_id=\"2\"
  1777. " > /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--zasob_2-'.$SERVER_ADDRESS.'.ini.php
  1778. ';
  1779. // aliasowanie do localhosta konfigow do testow systemu
  1780. $domainList = INSTALL_SES_PROCESY_A::fetch_same_domains_for_install($SERVER_ADDRESS_SHORT, $SERVER_ADDRESS);// [ $SERVER_ADDRESS, localhost, 127.0.0.1, ... ]
  1781. foreach ($domainList as $domain) {
  1782. if ($SERVER_ADDRESS == $domain) continue;// skip main domain
  1783. if ('localhost' == $domain) continue;// skip localhost (127.0.0.1)
  1784. $cmd[]['rsh']=' test -f /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--default_db-'.$domain.'.ini.php || ln /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--default_db-'.$SERVER_ADDRESS.'.ini.php /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--default_db-'.$domain.'.ini.php';
  1785. $cmd[]['rsh']=' test -f /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--zasob_2-'.$domain.'.ini.php || ln /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--zasob_2-'.$SERVER_ADDRESS.'.ini.php /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--zasob_2-'.$domain.'.ini.php';
  1786. $cmd[]['rsh']=' test -f /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--import_db-'.$domain.'.ini.php || ln /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--import_db-'.$SERVER_ADDRESS.'.ini.php /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--import_db-'.$domain.'.ini.php';
  1787. $cmd[]['rsh']=' test -f /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--folders-'.$domain.'.ini.php || ln /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--folders-'.$SERVER_ADDRESS.'.ini.php /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--folders-'.$domain.'.ini.php';
  1788. $cmd[]['rsh']=' test -f /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--default_ldap-'.$domain.'.ini.php || ln /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--default_ldap-'.$SERVER_ADDRESS.'.ini.php /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--default_ldap-'.$domain.'.ini.php';
  1789. }
  1790. //! dodanie pierwszego usera ADMIN_USERNAME_L1 oraz diradmin
  1791. //!#1228 2016-04-11 bindera: dodaje to tez tutaj - bo chyba tutaj powinno byc wszystko sprawne i dzialajace
  1792. $cmd[]['rsh']='[ -e /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--default_db-'.$SERVER_ADDRESS.'.ini.php ] || exit 0 && php /Library/Server/Web/Data/Sites/Default/SE/bash_install_check.php '.$SERVER_ADDRESS;
  1793. //@2016-04-27 jednak to tutaj nie dziala....
  1794. //@2016-04-28 piotr dodal aktualizacje congig_check do dodawania tabeli config - i sprawdzamy czy pomoglo w tym etapie
  1795. $cmd[]['rsh']='php /Library/Server/Web/Data/Sites/Default/SE/bash_force_classified_table_by_GroupID.php '.$SERVER_ADDRESS.' 3 CRM_PROCES'; //3 to grupa $REMOTE_FOLDER_ROOT
  1796. $cmd[]['rsh']='php /Library/Server/Web/Data/Sites/Default/SE/bash_force_classified_table_by_GroupID.php '.$SERVER_ADDRESS.' 3 CRM_LISTA_ZASOBOW'; //3 to grupa $REMOTE_FOLDER_ROOT
  1797. $cmd[]['rsh']='php /Library/Server/Web/Data/Sites/Default/SE/bash_force_classified_table_by_GroupID.php '.$SERVER_ADDRESS.' 3 CRM_WSKAZNIK'; //3 to grupa $REMOTE_FOLDER_ROOT
  1798. $cmd[]['rsh']='php /Library/Server/Web/Data/Sites/Default/SE/bash_force_classified_table_by_GroupID.php '.$SERVER_ADDRESS.' 3 CRM_AUTH_PROFILE'; //3 to grupa $REMOTE_FOLDER_ROOT
  1799. return $cmd;
  1800. }
  1801. function INSTALL_GETCOMMANDS_MYADMIN($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION,$OPTIONS) {
  1802. $cmd[]['rsh']='test -f /Library/Server/Web/Data/Sites/Default/phpMyAdmin-4.4.11-all-languages.tar.gz && rm -R /Library/Server/Web/Data/Sites/Default/phpMyAdmin-4.4.11-all-languages.tar.gz || echo PASSED';
  1803. $cmd[]['rsh']='test -f /Library/Server/Web/Data/Sites/Default/phpMyAdmin-4.7.4-all-languages.tar.gz && rm -R /Library/Server/Web/Data/Sites/Default/phpMyAdmin-4.7.4-all-languages.tar.gz || echo PASSED';
  1804. $cmd[]['rsh']='test -f /Library/Server/Web/Data/Sites/Default/phpMyAdmin.tar.gz && rm -R /Library/Server/Web/Data/Sites/Default/phpMyAdmin.tar.gz || echo PASSED';
  1805. $cmd[]['rsh']='test -d /Library/Server/Web/Data/Sites/Default/phpMyAdmin-4.4.11-all-languages && rm -R /Library/Server/Web/Data/Sites/Default/phpMyAdmin-4.4.11-all-languages || echo PASSED';
  1806. $cmd[]['rsh']='test -d /Library/Server/Web/Data/Sites/Default/phpMyAdmin-4.7.4-all-languages && rm -R /Library/Server/Web/Data/Sites/Default/phpMyAdmin-4.7.4-all-languages || echo PASSED';
  1807. $cmd[]['rsh']='test -d /Library/Server/Web/Data/Sites/Default/garbage && rm -R /Library/Server/Web/Data/Sites/Default/garbage || echo PASSED';
  1808. //! phpMyAdmin garbage
  1809. $cmd[]['scp']=array($INSTALL_ROOT.'/stuff/phpMyAdmin-4.7.4-all-languages.tar.gz','/Library/Server/Web/Data/Sites/Default/phpMyAdmin-4.7.4-all-languages.tar.gz');
  1810. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/ || exit 1
  1811. tar -zxpvf phpMyAdmin-4.7.4-all-languages.tar.gz || exit 1';
  1812. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/ || exit 1
  1813. mv phpMyAdmin-4.7.4-all-languages garbage || exit 1 ';
  1814. $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/garbage || exit 1
  1815. echo "<?
  1816. \\$cfg[\'PmaAbsoluteUri\'] = \'https://'.$SERVER_ADDRESS.'/garbage/\';
  1817. \\$i = 0;
  1818. \\$i++;
  1819. \\$cfg[\'Servers\'][\\$i][\'verbose\'] = \''.$SERVER_ADDRESS.'\';
  1820. \\$cfg[\'Servers\'][\\$i][\'host\'] = \'127.0.0.1\';
  1821. \\$cfg[\'Servers\'][\\$i][\'port\'] = \'\';
  1822. \\$cfg[\'Servers\'][\\$i][\'socket\'] = \'\';
  1823. \\$cfg[\'Servers\'][\\$i][\'connect_type\'] = \'tcp\';
  1824. \\$cfg[\'Servers\'][\\$i][\'extension\'] = \'mysqli\';
  1825. \\$cfg[\'Servers\'][\\$i][\'auth_type\'] = \'cookie\';
  1826. \\$cfg[\'Servers\'][\\$i][\'user\'] = \'root\';
  1827. \\$cfg[\'Servers\'][\\$i][\'password\'] = \'\';
  1828. \\$cfg[\'blowfish_secret\'] = \'51bc5c5b538ff0.23201365\';
  1829. \\$cfg[\'DefaultLang\'] = \'en\';
  1830. \\$cfg[\'ServerDefault\'] = 1;
  1831. \\$cfg[\'UploadDir\'] = \'\';
  1832. \\$cfg[\'SaveDir\'] = \'\';
  1833. ?>
  1834. " > config.inc.php || exit 1
  1835. ';
  1836. return $cmd;
  1837. }
  1838. function INSTALL_GET_INIT_APPLE_XML($ADMIN_USERNAME,$SERVER_ADDRESS_IP,$ADMIN_USERNAME_PASSWD,$SERVER_MOUNT_POINT_ROOT,$SERVER_ADDRESS,$SERVER_ADDRESS_LDAP_DC,$SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$ADMIN_USERNAME_L1,$ADMIN_USERNAME_L1_PASS,$ADMIN_USERNAME_DIRECTORY,$ADMIN_USERNAME_INITIAL_PASSWD,$BACKUP_USB_DEVICE,$SERVER_VERSION,$OPTIONS) {
  1839. return '"<?xml version=\"1.0\" encoding=\"UTF-8\"?>
  1840. <!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\"
  1841. \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
  1842. <plist version=\"1.0\">
  1843. <dict>
  1844. <key>AdminUser</key>
  1845. <dict>
  1846. <key>exists</key>
  1847. <false/>
  1848. <key>name</key>
  1849. <string>'.$ADMIN_USERNAME.'</string>
  1850. <key>password</key>
  1851. <string>'.$ADMIN_USERNAME_INITIAL_PASSWD.'</string>
  1852. <key>realname</key>
  1853. <string>Administrator</string>
  1854. <key>uid</key>
  1855. <string>501</string>
  1856. </dict>
  1857. <key>ComputerName</key>
  1858. <string>'.$SERVER_ADDRESS.'</string>
  1859. Chapter 2 Installing Server Software and Finishing Basic Setup 23
  1860. <key>DS</key>
  1861. <dict>
  1862. <key>DSClientInfo</key>
  1863. <string>2 - NetInfo client - broadcast dhcp static -192.168.42.250
  1864. network</string>
  1865. <key>DSClientType</key>
  1866. <string>2</string>
  1867. <key>DSType</key>
  1868. <string>2 - directory client</string>
  1869. </dict>
  1870. <key>HostName</key>
  1871. <string>'.$SERVER_ADDRESS.'</string>
  1872. <key>InstallLanguage</key>
  1873. <string>Polish</string>
  1874. <key>Keyboard</key>
  1875. <dict>
  1876. <key>DefaultFormat</key>
  1877. <string>0</string>
  1878. <key>DefaultScript</key>
  1879. <string>0</string>
  1880. <key>ResID</key>
  1881. <integer>0</integer>
  1882. <key>ResName</key>
  1883. <string>U.S.</string>
  1884. <key>ScriptID</key>
  1885. <integer>0</integer>
  1886. </dict>
  1887. <key>ServicesAutoStart</key>
  1888. <dict>
  1889. <key>Apache</key>
  1890. <true/>
  1891. <key>File</key>
  1892. <true/>
  1893. <key>MacManager</key>
  1894. <true/>
  1895. <key>Mail</key>
  1896. <true/>
  1897. <key>Print</key>
  1898. <false/>
  1899. <key>QTSS</key>
  1900. <false/>
  1901. <key>WebDAV</key>
  1902. <false/>
  1903. </dict>
  1904. <key>TimeZone</key>
  1905. <string>Europe/Warsaw</string>
  1906. <key>VersionNumber</key>
  1907. <integer>1</integer>
  1908. </dict>
  1909. </plist>
  1910. "';
  1911. }
  1912. function tell_user_gui_error($msg) {
  1913. return 'osascript -e "tell app \"System Events\" to display alert \"'.$msg.'\""';
  1914. }
  1915. function get_user_gui_response($question,$default) {
  1916. exec("/usr/bin/osascript -e 'set myReply to text returned of (display dialog \"".$question."\" default answer \"".$default."\")'", $output, $exit);
  1917. return $output;
  1918. }
  1919. function MakeCommand($command_id,$command,$installer_tmp,$installer_dir) {
  1920. $file_sh="install.bash/".$command_id.".bash";
  1921. $ins_sh="if [ -e ".$installer_tmp."/".$file_sh." ] ; then echo 'running:".$file_sh."'; ".$installer_tmp."/".$file_sh." && mv ".$installer_tmp."/".$file_sh." ".$installer_tmp."/install.executed_ok/ || { osascript -e \"tell app \\\"System Events\\\" to display dialog \\\"`( echo 'Problem z komenda ".$installer_tmp."/".$file_sh."' )`\\\"\" ; exit 1 ; } fi \n";
  1922. $file=fopen($installer_dir."/".$file_sh, "w") or die('Cannot open file: '.$installer_dir."/".$file_sh);
  1923. fwrite($file,"#!/bin/sh\n".$command."\n");
  1924. fclose($file);
  1925. chmod($installer_dir."/".$file_sh, 0755);
  1926. //$ins_sh.=$command['rsh']."\n\r";
  1927. DEBUG_S(-3,$command_id.':out of ',array($command,$file_sh,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
  1928. return $ins_sh;
  1929. }
  1930. function encodePhpFiles($installer_dir, $domains = "", $domainEncodePhpFiles = [], $noEncodePhpFiles = []) {
  1931. if (empty($installer_dir)) throw new Exception("Install path not found");
  1932. if ($domainEncodePhpFiles and (!$domains)) throw new Exception("Domains not definied");
  1933. $phpVersionsForSgencoder = '--phpversion 5.5 --phpversion 5.6';// encode for PHP 5.x (currently supported PHP 5.0-5.6)
  1934. $cmd = "cd '{$installer_dir}' && find . -type f -name '*.php' ";
  1935. $out = ''; $ret = '';
  1936. exec($cmd, $out, $ret);
  1937. DEBUG_S(-3,'Files found to encode',array($cmd,$out,$ret),__FILE__,__FUNCTION__,__LINE__);
  1938. if (0 !== $ret) throw new Exception("Error at find php files");
  1939. if (empty($out)) return false;
  1940. $allPhpFiles = array_map(function ($phpFilePath) {
  1941. return ('./' == substr($phpFilePath, 0, 2))? substr($phpFilePath, 2) : $phpFilePath;
  1942. }, $out);
  1943. $domainEncodePhpFiles = array_filter($allPhpFiles, function ($phpFilePath) use ($domainEncodePhpFiles) {
  1944. preg_match('/^[[:digit:]]+\/(.*)$/', $phpFilePath, $matches);
  1945. if (!$matches || empty($matches[1])) throw new Exception("Błąd ścieżki pliku {$phpFilePath}");
  1946. $phpFilePath = $matches[1];
  1947. return (in_array($phpFilePath, $domainEncodePhpFiles));
  1948. });
  1949. DEBUG_S(-3,'domainEncodePhpFiles',$domainEncodePhpFiles,__FILE__,__FUNCTION__,__LINE__);
  1950. $freeEncodePhpFiles = array_filter($allPhpFiles, function ($phpFilePath) use ($domainEncodePhpFiles, $noEncodePhpFiles) {
  1951. preg_match('/^[[:digit:]]+\/(.*)$/', $phpFilePath, $matches);
  1952. if (!$matches || empty($matches[1])) throw new Exception("Błąd ścieżki pliku {$phpFilePath}");
  1953. $phpFilePath = $matches[1];
  1954. if ('se-lib/Vendor/' === substr($phpFilePath, 0, strlen('se-lib/Vendor/'))) return false; // SKIP se-lib/Vendor/*
  1955. if ('.ini.php' === substr($phpFilePath, -1 * strlen('.ini.php'))) return false; // SKIP *.ini.php
  1956. return (!in_array($phpFilePath, array_merge($domainEncodePhpFiles, $noEncodePhpFiles)));
  1957. });
  1958. DEBUG_S(-3,'freeEncodePhpFiles',$freeEncodePhpFiles,__FILE__,__FUNCTION__,__LINE__);
  1959. // if (empty($freeEncodePhpFiles)) throw new Exception("No php files to encode");
  1960. $cmdTempl = "cd {$installer_dir} && /Applications/SourceGuardian.app/Contents/MacOS/sgencoder {$phpVersionsForSgencoder} -b- ";
  1961. // $cmdDomainEncodeDomainsTempl = " --domain " . implode(" --domain ", array_merge($domains, ['localhost']));
  1962. $cmdDomainEncodeFilesTempl = " " . implode(" ", $domainEncodePhpFiles);
  1963. $cmdFreeEncodeFilesTempl = " " . implode(" ", $freeEncodePhpFiles);
  1964. $cmds = [];
  1965. if ($domainEncodePhpFiles) $cmds['domainEncodePhpFiles'] = $cmdTempl . $domains . $cmdDomainEncodeFilesTempl;
  1966. if ($freeEncodePhpFiles) $cmds['freeEncodePhpFiles'] = $cmdTempl . $cmdFreeEncodeFilesTempl;
  1967. $returnValues = [];
  1968. foreach ($cmds as $desc => $cmd) {
  1969. $out = ''; $ret = '';
  1970. exec($cmd, $out, $ret);
  1971. $encoderSummaryLine = end($out);
  1972. $returnValues[$desc] = $encoderSummaryLine;
  1973. DEBUG_S(-3,"Encoded files {$desc}" ,array($cmd, $out, $ret),__FILE__,__FUNCTION__,__LINE__);
  1974. if (empty($out)) throw new Exception("No output for encode files command");
  1975. }
  1976. $statusInfo = array_reduce($returnValues, function ($ret, $encoderSummaryLine) {
  1977. DEBUG_S(-3,'DBG reduce [$ret, $encoderSummaryLine]',array($ret, $encoderSummaryLine),__FILE__,__FUNCTION__,__LINE__);
  1978. $matches = [];
  1979. preg_match_all('/(\d+) files, (\d+) processed, (\d+) errors/', $encoderSummaryLine, $matches, PREG_SET_ORDER, 0);
  1980. return [
  1981. 'files' => $ret['files'] + (int)$matches[0][1],
  1982. 'processed' => $ret['processed'] + (int)$matches[0][2],
  1983. 'errors' => $ret['errors'] + (int)$matches[0][3],
  1984. ];
  1985. }, [
  1986. 'files' => 0,
  1987. 'processed' => 0,
  1988. 'errors' => 0,
  1989. ]);
  1990. if ($statusInfo['errors'] === 0 && $statusInfo['files'] > 0) {
  1991. DEBUG_S(-3, "{$statusInfo['files']} files, {$statusInfo['processed']} processed, {$statusInfo['errors']} errors", [], __FILE__,__FUNCTION__,__LINE__);
  1992. } else {
  1993. throw new Exception("{$statusInfo['files']} files, {$statusInfo['processed']} processed, {$statusInfo['errors']} errors");
  1994. }
  1995. return true;
  1996. }
  1997. function MAKE_PKG_COMPONENT($h,$installer_dir_tar,$installer_url,$installer_tmp,$cmd,$exit_file,$installer_dir_name,$pkg_id,$encrypt=false) {
  1998. $UID=$h->ID;
  1999. $installer_dir=$installer_dir_tar."/".$installer_dir_name; //pakowany katalog z instalatorem
  2000. //$installer_dir_tar="/Library/Server/Web/Data/Sites/Default/PLIKI/SES_PROCESY5_A"; //katalog CWD z ktorego budowana jest instalacja
  2001. //$installer_url="http://biuro.biall-net.pl/PLIKI/SES_PROCESY5_A/"; //miejsce do sciagania instalatora przez WWW
  2002. //$installer_tmp="/tmp/pl.procesy5_".$UID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko
  2003. exec('rm -Rf '.$installer_dir);
  2004. mkdir($installer_dir,0777);
  2005. mkdir($installer_dir."/install.bash",0777);
  2006. mkdir($installer_dir."/install.executed_ok",0777);
  2007. echo "<br> I mkdir ".$installer_dir;
  2008. $ins_sh="#!/bin/sh \nshopt -s dotglob\n echo 'instaluje i robie LS' >>/tmp/loginst \n ls >>/tmp/loginst \n declare PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/local/bin:/opt/local/lib/mariadb/bin/:/Applications/Server.app/Contents/ServerRoot/usr/sbin/\n \n";
  2009. foreach($cmd as $command_id=>$command) {
  2010. if(isset($command['rsh'])) {
  2011. //$exec=SSH_COMMAND_REMOTE_CREATE($h->ADMIN_USERNAME,$h->SERVER_ADDRESS_IP,$h->ADMIN_USERNAME_PASSWD,$command['rsh']);
  2012. //DEBUG_S(-3,$command_id.':in '.htmlspecialchars(str_replace(array($h->ADMIN_USERNAME_PASSWD,str_replace('!','\!',$h->ADMIN_USERNAME_PASSWD)),'xxxxxx',$exec)),str_replace($h->ADMIN_USERNAME_PASSWD,'xxxxxx',$exec));
  2013. //flush();
  2014. $out="";$exit="";
  2015. //exec($exec,$out,$exit);
  2016. $file_sh="install.bash/".$command_id.".bash";
  2017. $ins_sh.="if [ -e ".$installer_tmp."/".$file_sh." ] ; then echo 'running:".$file_sh."'; ".$installer_tmp."/".$file_sh." && mv ".$installer_tmp."/".$file_sh." ".$installer_tmp."/install.executed_ok/ || { osascript -e \"tell app \\\"System Events\\\" to display dialog \\\"`( echo 'Problem z komenda ".$installer_tmp."/".$file_sh."' )`\\\"\" ; exit 1 ; } fi \n";
  2018. //touch($file_sh);
  2019. $file=fopen($installer_dir."/".$file_sh, "w") or die('Cannot open file: '.$installer_dir."/".$file_sh);
  2020. fwrite($file,"#!/bin/sh\n".$command['rsh']."\n");
  2021. fclose($file);
  2022. chmod($installer_dir."/".$file_sh, 0755);
  2023. //$ins_sh.=$command['rsh']."\n\r";
  2024. DEBUG_S(-3,$command_id.':out of ',array($command['rsh'],$installer_dir."/".$file_sh,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
  2025. flush();
  2026. } else if(isset($command['scp'])) {
  2027. //$command_out='/opt/local/bin/sshpass -p '.$h->ADMIN_USERNAME_PASSWD.' /usr/bin/scp -v -3 -o StrictHostKeyChecking=no '.$command['scp'][0].' '.$h->ADMIN_USERNAME.'@' . $h->SERVER_ADDRESS_IP . ':'.$command['scp'][1];
  2028. //DEBUG_S(-3,$command_id.':in '.str_replace(array($h->ADMIN_USERNAME_PASSWD,str_replace('!','\!',$h->ADMIN_USERNAME_PASSWD)),'xxxxxx',$command_out),htmlspecialchars(str_replace($h->ADMIN_USERNAME_PASSWD,'xxxxxx',$command_out)));
  2029. //flush();
  2030. mkdir($installer_dir."/".$command_id,0777);
  2031. exec("cp ".$command['scp'][0]." ".$installer_dir."/".$command_id);
  2032. $ins_sh.="mv ".$installer_tmp."/".$command_id."/* ".$command['scp'][1]." \n";
  2033. } else if(isset($command['scp_hidden_files'])) {
  2034. mkdir("{$installer_dir}/{$command_id}", 0777);
  2035. exec("cp {$command['scp_hidden_files'][0]} {$installer_dir}/{$command_id}");
  2036. $hidden_files = explode('/', $command['scp_hidden_files'][0]);
  2037. $hidden_files = end($hidden_files);
  2038. $ins_sh .= "mv {$installer_tmp}/{$command_id}/{$hidden_files} {$command['scp_hidden_files'][1]} \n";
  2039. } else if(isset($command['scp_root'])) {
  2040. mkdir($installer_dir."/".$command_id,0777);
  2041. $cmd="cp -r ".$command['scp_root'][0]." ".$installer_dir."/".$command_id;
  2042. exec($cmd,$out,$exit);
  2043. //@2014-09 tak bylo, ale sie zle instalowalo wiec dajemy cp -a
  2044. $ins_sh.="mv ".$installer_tmp."/".$command_id."/* ".$command['scp_root'][1]." \n";
  2045. DEBUG_S(-3,$cmd.':out of ',array($command['scp_root'],$installer_dir."/".$file_sh,$command_id,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
  2046. //$ins_sh.="cp -a ".$installer_tmp."/".$command_id."/* ".$command['scp_root'][1]." \n";
  2047. flush();
  2048. //set_time_limit(36000);
  2049. }
  2050. $last_command_id=$command_id;
  2051. }
  2052. if(($encrypt)) {
  2053. //TODO: Router::getRoute('Install')->encodeSourceFiles($installPath = '/path_to_git_repo', $domains = [ 'domain.com', 'localhost' ], $dbg = false);
  2054. // TODO detect several hosts at the same IP address/domain to make it allow to work.
  2055. // select SERVER_ADDRESS_IP
  2056. //$exec='cd '.$installer_dir.' && /Applications/SourceGuardian.app/Contents/MacOS/sgencoder -b- --domain '.$h->SERVER_ADDRESS_SHORT.' -r *.php -x superedit-DB_PROCEDURES_CREATE.php';
  2057. /*
  2058. $skipPhpFiles = array();
  2059. $skipPhpFiles[] = 'bash_sync_perms.php';
  2060. $skipPhpFiles[] = 'bash_install_check.php';
  2061. $skipPhpFiles[] = '.config.php';
  2062. $skipPhpFiles[] = '.config_base_structure.php';
  2063. $skipPhpFiles[] = 'se-lib/V.php';
  2064. $skipPhpFiles[] = 'se-lib/Lib.php';
  2065. $skipPhpFiles[] = 'se-lib/DB.php';
  2066. $skipPhpFiles[] = 'se-lib/DBG.php';
  2067. $skipPhpFiles[] = 'se-lib/User.php';
  2068. $skipPhpFiles[] = 'se-lib/UserProfile.php';
  2069. $skipPhpFiles[] = 'se-lib/Config.php';
  2070. $skipPhpFiles[] = 'se-lib/Config/INI.php';
  2071. $skipPhpFiles[] = 'se-lib/FoldersConfig.php';
  2072. $skipPhpFiles[] = 'se-lib/FileUploader.php';
  2073. $skipPhpFiles[] = 'se-lib/Route/Budget.php';
  2074. $skipPhpFiles[] = 'se-lib/Route/FixCrmProcesInitIdx.php';
  2075. $skipPhpFiles[] = 'se-lib/Route/FixProjectPath.php';
  2076. $skipPhpFiles[] = 'se-lib/Route/FixZasobPath.php';
  2077. //$skipPhpFiles[] = 'se-lib/Route/Install.php';
  2078. $skipPhpFiles[] = 'se-lib/Route/Msgs.php';
  2079. $skipPhpFiles[] = 'se-lib/Route/UrlAction/WmsGenerate.php';
  2080. $skipPhpFiles[] = 'superedit-DB_PROCEDURES_CREATE.php';
  2081. $skipPhpFiles[] = 'se-lib/DataSourceException.php';
  2082. $skipPhpFiles[] = 'se-lib/Core/Pdo.php';
  2083. $skipPhpFiles[] = 'se-lib/Cron.php';
  2084. $skipPhpFiles[] = 'se-lib/Router.php';
  2085. $skipPhpFiles[] = 'se-lib/RouteBase.php';
  2086. $skipPhpFiles[] = 'se-lib/HttpException.php';
  2087. $skipPhpFiles[] = 'se-lib/DebugExecutionTime.php';
  2088. $skipPhpFiles[] = 'WindykacjaZestawienia.php';
  2089. $skipPhpFiles[] = 'superedit-DB_PROCEDURES_CREATE.php';
  2090. */
  2091. /*
  2092. $skipPhpFiles = array();
  2093. $skipPhpFiles[] = 'bash_sync_perms.php';
  2094. $skipPhpFiles[] = 'bash_install_check.php';
  2095. $skipPhpFiles[] = '.config.php';
  2096. $skipPhpFiles[] = '.config_base_structure.php';
  2097. $skipPhpFiles[] = 'V.php';
  2098. $skipPhpFiles[] = 'Lib.php';
  2099. $skipPhpFiles[] = 'DB.php';
  2100. $skipPhpFiles[] = 'DBG.php';
  2101. $skipPhpFiles[] = 'User.php';
  2102. $skipPhpFiles[] = 'UserProfile.php';
  2103. $skipPhpFiles[] = 'Config.php';
  2104. $skipPhpFiles[] = 'INI.php';
  2105. $skipPhpFiles[] = 'FoldersConfig.php';
  2106. $skipPhpFiles[] = 'FileUploader.php';
  2107. $skipPhpFiles[] = 'Budget.php';
  2108. $skipPhpFiles[] = 'FixCrmProcesInitIdx.php';
  2109. $skipPhpFiles[] = 'FixProjectPath.php';
  2110. $skipPhpFiles[] = 'FixZasobPath.php';
  2111. //$skipPhpFiles[] = 'se-lib/Route/Install.php';
  2112. $skipPhpFiles[] = 'Msgs.php';
  2113. $skipPhpFiles[] = 'WmsGenerate.php';
  2114. $skipPhpFiles[] = 'superedit-DB_PROCEDURES_CREATE.php';
  2115. $skipPhpFiles[] = 'DataSourceException.php';
  2116. $skipPhpFiles[] = 'Pdo.php';
  2117. $skipPhpFiles[] = 'Cron.php';
  2118. $skipPhpFiles[] = 'Router.php';
  2119. $skipPhpFiles[] = 'RouteBase.php';
  2120. $skipPhpFiles[] = 'HttpException.php';
  2121. $skipPhpFiles[] = 'DebugExecutionTime.php';
  2122. $skipPhpFiles[] = 'WindykacjaZestawienia.php';
  2123. $skipPhpFiles[] = 'superedit-DB_PROCEDURES_CREATE.php';
  2124. $skipPhpFiles[] = 'UI.php';
  2125. $skipPhpFiles[] = 'Request.php';
  2126. $skipPhpFiles[] = 'BiAuditGenerate.php';
  2127. $skipPhpFiles[] = 'Theme.php';
  2128. $skipPhpFiles[] = 'bash_Route_Users_Task_syncUser.php';
  2129. $skipPhpFiles[] = 'bash_Route_Users_Task_syncGroup.php';
  2130. $skipPhpFiles[] = 'bash_force_classified_table_by_GroupID.php';
  2131. $skipPhpFiles[] = 'bash_Route_Users_Task_AddUser.php';
  2132. $skipFilesSgencoder = (!empty($skipPhpFiles)) ? ' -x ' . implode(' -x ', $skipPhpFiles) : '';
  2133. $phpVersionsForSgencoder = '--phpversion 5.5 --phpversion 5.6';// encode for PHP 5.x (currently supported PHP 5.0-5.6)
  2134. $exec='cd '.$installer_dir.' && /Applications/SourceGuardian.app/Contents/MacOS/sgencoder '.$phpVersionsForSgencoder.' -b- '.INSTALL_SES_PROCESY_A::get_same_domains_for_install($h->SERVER_ADDRESS_SHORT, $h->SERVER_ADDRESS).' -r *.php ' . $skipFilesSgencoder;
  2135. exec($exec,$out,$exit);$out="";$exit="";
  2136. DEBUG_S(-3,'Zakodowanie kodu php/kompilacja z licencja i kluczem',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
  2137. */
  2138. try {
  2139. if (empty($domains = INSTALL_SES_PROCESY_A::get_same_domains_for_install($h->SERVER_ADDRESS_SHORT, $h->SERVER_ADDRESS))) throw new Exception("Domains not found");
  2140. $domainEncodePhpFiles = [
  2141. 'ant.php',
  2142. 'api.php',
  2143. 'budynki.php',
  2144. 'index-ajax.php',
  2145. 'index.php',
  2146. 'procesy5.php',
  2147. 'session-expire.php',
  2148. 'test-sync.php',
  2149. 'wfs-data.php',
  2150. 'wfs-qgis.php',
  2151. 'wfs.php',
  2152. ];
  2153. $noEncodePhpFiles = [
  2154. '.config_base_structure.php',
  2155. ];
  2156. if (!encodePhpFiles($installer_dir, $domains, $domainEncodePhpFiles, $noEncodePhpFiles)) {
  2157. DEBUG_S(-3, "No php files found to encode", [], __FILE__,__FUNCTION__,__LINE__);
  2158. }
  2159. } catch (Exception $e) {
  2160. DEBUG_S(-3, "Problem with encoding php files", [$e->getMessage()], __FILE__,__FUNCTION__,__LINE__);
  2161. die();
  2162. }
  2163. }
  2164. //usuniecie musi byc przed instalacja TODO
  2165. //$last_command_id++;
  2166. //
  2167. //$ins_sh.=MakeCommand($command_id,"rm -Rf ".$installer_tmp,$installer_tmp,$installer_dir) ;
  2168. /* klucz nie potrzebny do kodowania dla domeny
  2169. $last_command_id++;
  2170. mkdir($installer_dir."/".$last_command_id,0777);
  2171. $exec='cd '.$installer_dir."/".$last_command_id.' && /Applications/SourceGuardian.app/Contents/MacOS/licgen --projid '.$h->ID.' --projkey '.$h->ID.' procesylicence_se';
  2172. exec($exec,$out,$exit);$out="";$exit="";
  2173. DEBUG_S(-3,'Wygenerowanie klucza dla klienta',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
  2174. $ins_sh.="mv ".$last_command_id."/* /Library/Server/Web/Data/Sites/Default/SE/ \n";
  2175. */
  2176. mkdir($installer_dir."/scripts",0777);
  2177. $file=fopen($installer_dir."/scripts/postinstall", "w") or die('Cannot open file: '.$installer_dir."/scripts/postinstall");
  2178. fwrite($file,$ins_sh."\n");
  2179. fclose($file);
  2180. //die();
  2181. chmod($installer_dir."/scripts/"."postinstall", 0755); $out="";$exit="";
  2182. //$exit_file=str_replace('.', '_', $UID.".".$h->SERVER_ADDRESS);
  2183. //$exec="tar -C".$installer_dir_tar." -cz ".$UID.".".$h->SERVER_ADDRESS." > ".$installer_dir_tar."/".$exit_file.".tar.gz";
  2184. //exec($exec ,$out,$exit);
  2185. //DEBUG_S(-3,'Tarowanie ',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
  2186. $exec="cd ".$installer_dir_tar." && pkgbuild --scripts ".$installer_dir_name."/scripts/ --root ".$installer_dir_name." --identifier ".$pkg_id." --install-location ".$installer_tmp." ".$exit_file.".pkg" ;
  2187. exec($exec ,$out,$exit);
  2188. DEBUG_S(-3,'Robiebie pkg ',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
  2189. echo "<hr><A href='{$installer_url}{$exit_file}.pkg'> instalacja pojedynczego komponentu {$exit_file}.pkg - NIE ŚCIĄGAJ JEJ!!!</a>\n";
  2190. //echo "<pre>Instalator skrypt TODO : \n".htmlspecialchars($ins_sh)."</pre>";
  2191. //return 0;
  2192. }
  2193. function INSTALL_SES_PROCESY_A() {
  2194. $INSTALL_ROOT='/Library/Server/Web/Data/Sites/SE-production-git/SE'; //glowny katalog ze zrodlem SE
  2195. $OPTIONS = new stdClass();
  2196. $OPTIONS->SE_config='/Library/Server/Web/Data/Sites/SE-config'; //glowny katalog z konfigami
  2197. //DB::query('update SES_PROCESY5_A set INSTALL_COMPLETE_POINT=0 ');
  2198. //TODO@2013-10-05 - należy dorobić obsługę ADMIN_USERNAME_INITIAL_PASSWD aby jednorazowo się zalogowało i zmieniło na ADMIN_USERNAME_PASSWD (jakis hash) i jego juz potem wszedzie uzywalo - aby klient go nie znal
  2199. // $cmd=INSTALL_GETCOMMANDS();
  2200. // $sql="select * from SES_PROCESY5_A where A_STATUS='NORMAL' and INSTALL_COMPLETE_POINT<'".count($cmd)."'";
  2201. $sql="select * from SES_PROCESY5_A where A_STATUS='NORMAL' ";
  2202. if(!empty($_REQUEST['ID'])) $sql.=" and ID='{$_REQUEST['ID']}'";
  2203. else { $sql.=" and 1=2 "; echo "Musisz wyzwolic instalacje konkretnego serwera z parametrem"; }
  2204. DB::query('set global max_allowed_packet=1000000000;');
  2205. $res=DB::query($sql);
  2206. //if(DB::num_rows==0) echo "brak rekordow";
  2207. while($h=DB::fetch($res)) {
  2208. $REMOTE_FOLDER_ROOT=str_replace(array(".","-"),'_',$h->SERVER_ADDRESS); //also database name!
  2209. $OPTIONS->VERSION_GIT = $h->VERSION_GIT;
  2210. /*
  2211. $cmd=INSTALL_GETCOMMANDS($h->ADMIN_USERNAME,$h->SERVER_ADDRESS_IP,$h->ADMIN_USERNAME_PASSWD,$h->SERVER_MOUNT_POINT_ROOT,$h->SERVER_ADDRESS,$h->SERVER_ADDRESS_LDAP_DC,$h->SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$h->ADMIN_USERNAME_L1,$h->ADMIN_USERNAME_L1_PASS,$h->ADMIN_USERNAME_DIRECTORY,$h->ADMIN_USERNAME_INITIAL_PASSWD,$h->BACKUP_USB_DEVICE,$h->SERVER_VERSION);
  2212. //! FORMULARZ MENU
  2213. */
  2214. echo "<hr><form method=GET><input type=hidden name=FUNCTION_INIT value=INSTALL_SES_PROCESY_A>
  2215. <input type=hidden name=ID value=".$_REQUEST['ID'].">";
  2216. /*
  2217. Ustal instalacje <select name=ID>";
  2218. $rlres=DB::query('select * from SES_PROCESY5_A where A_STATUS=\'NORMAL\'');
  2219. while($rl=DB::fetch($rlres)) {
  2220. echo "\n<option value='{$rl->ID}' ";
  2221. if(!empty($_REQUEST['ID']) && ($_REQUEST['ID']==$rl->ID)) echo " selected ";
  2222. echo ">{$rl->SERVER_ADDRESS} ({$rl->INSTALL_COMPLETE_POINT})</option>";
  2223. }
  2224. echo "</select><br>Ustal poczatek <select name=START>";
  2225. foreach($cmd as $id=>$val) {
  2226. echo "<option value='".$id."'"; if($_REQUEST['START']==$id) echo " selected ";
  2227. echo " >".$id." ".str_replace($h->ADMIN_USERNAME_PASSWD,'xxxxxx',$val['rsh'].$val['scp_root'][0].$val['scp'][0])."</option>";
  2228. }
  2229. echo "</select><br>
  2230. Ustal koniec <select name=STOP>";
  2231. foreach($cmd as $id=>$val) {
  2232. echo "<option value='".$id."'"; if($_REQUEST['STOP']==$id) echo " selected ";
  2233. if(empty($_REQUEST['STOP'])&&$id==count($cmd)-1) echo " selected ";
  2234. echo " >".$id." ".str_replace($h->ADMIN_USERNAME_PASSWD,'xxxxxx',$val['rsh'].$val['scp_root'][0].$val['scp'][0])."</option>";
  2235. }
  2236. echo "</select>
  2237. */
  2238. echo "
  2239. <br><input type=submit name='POBIERZ_XML_AUTOCONFIG_USB' value='POBIERZ_XML_AUTOCONFIG_USB (TODO nie gotowe @2014-03-10)'>
  2240. <br>
  2241. <input type=submit name='WYKONAJ_REFERENCYJNA_BAZE_DANYCH' value='1. WYKONAJ_REFERENCYJNA_BAZE_DANYCH (v@2014-03-15)'>
  2242. <input type=submit name='POBIERZ_INSTALATOR_SH' value='2. POBIERZ_INSTALATOR_SH (v@2014-03-15)'>
  2243. <input type=submit name='ZAINSTALUJ_NA_PARALLELS' value='3. ZAINSTALUJ_NA_PARALLELS (v@2016-11-27)'>
  2244. <input type=submit name='STATUS_INSTALACJI_NA_PARALLELS' value='4. STATUS_INSTALACJI_NA_PARALLELS' (v@2016-11-27)><br>
  2245. <!-- input type=submit name='INSTALUJ' value='INSTALUJ zdalnie via ssh (nie uzywac@2014-08-11)'-->
  2246. </form>
  2247. ";
  2248. // $ldap_dc_generated=implode(',dc=',explode("",$h->SERVER_ADDRESS));
  2249. $needed=array($h->ADMIN_USERNAME,$h->SERVER_ADDRESS_IP,$h->ADMIN_USERNAME_PASSWD,$h->SERVER_ADDRESS,$h->SERVER_ADDRESS_LDAP_DC,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$h->ADMIN_USERNAME_L1,$h->ADMIN_USERNAME_L1_PASS,$h->ADMIN_USERNAME_DIRECTORY,$h->SERVER_VERSION,$OPTIONS);
  2250. foreach($needed as $ind=>$need) {
  2251. if(empty($need)) { echo 'Brak ustalonej jednej z wymaganych zmiennych w ustawieniach instalacyjnych serwera ('.$ind.')' ;
  2252. die();
  2253. };
  2254. }
  2255. //! POBIERZ_XML_AUTOCONFIG_USB
  2256. if(!empty($_REQUEST['POBIERZ_XML_AUTOCONFIG_USB'])) {
  2257. //if(empty($h->ADMIN_USERNAME_INITIAL_PASSWD)) die('Brak ADMIN_USERNAME_INITIAL_PASSWD');
  2258. $xml=INSTALL_GET_INIT_APPLE_XML($h->ADMIN_USERNAME,$h->SERVER_ADDRESS_IP,$h->ADMIN_USERNAME_PASSWD,$h->SERVER_MOUNT_POINT_ROOT,$h->SERVER_ADDRESS,$h->SERVER_ADDRESS_LDAP_DC,$h->SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$h->ADMIN_USERNAME_L1,$h->ADMIN_USERNAME_L1_PASS,$h->ADMIN_USERNAME_DIRECTORY,$h->ADMIN_USERNAME_INITIAL_PASSWD);
  2259. echo "<pre>\n".htmlspecialchars($xml)."</pre>";
  2260. return 0;
  2261. }
  2262. //! WYKONAJ_REFERENCYJNA_BAZE_DANYCH
  2263. if(!empty($_REQUEST['WYKONAJ_REFERENCYJNA_BAZE_DANYCH'])) {
  2264. DEBUG_S(-3,'cmd WYKONAJ_REFERENCYJNA_BAZE_DANYCH params: INSTALL_ROOT ',array($INSTALL_ROOT),__FILE__,__FUNCTION__,__LINE__);
  2265. set_time_limit(36000);
  2266. $CONNTEST = DB::getDB('test_db');
  2267. $CONNTEST->query('drop database test');
  2268. $CONNTEST->query('create database test');
  2269. $exec='php -r"include(\''.$INSTALL_ROOT.'/superedit-SQIX_STRUCTURE_DB_SYNC.php\') ; SQIX_STRUCTURE_DB_SYNC(\'default_db\',\'default_db\',0,\'WYSLIJ_DO_BAZY\',\'CREATE_ZASOBY_STRUCTURES_CONFIG\'); " '.$_SERVER['SERVER_NAME'].' FILTR'; //fresh create structures
  2270. exec($exec,$out,$exit);
  2271. DEBUG_S(-3,$command_id.':out of CREATE_ZASOBY_STRUCTURES_CONFIG',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
  2272. //zainstalowanie struktur w tabeli test etc
  2273. $out="";$exit=""; //1$LOCAL_DB_ZASOB_ID,2$REMOTE_DB_ZASOB_ID,3$DATABASE_ROOT_ZASOB_ID,4$CONFIRM_SQL_UPDATE='',5$SYNC_OPTIONS='',6$DEBUG_LEVEL=null,7$SKIP_OPTIONS=null
  2274. $exec='php -r"include(\''.$INSTALL_ROOT.'/superedit-SQIX_STRUCTURE_DB_SYNC.php\') ; SQIX_STRUCTURE_DB_SYNC(\'test_db\',\'test_db\',0,\'WYSLIJ_DO_BAZY\',\'SYNC_ZASOBY_STRUCTURES_FROM_CONFIG\',null,array(\'SKIP-PROCEDURE\',\'SKIP-VIEW\')); " '.$_SERVER['SERVER_NAME'].' FILTR'; //todo pare razy trzaba powtarzac bo sa bledy
  2275. exec($exec,$out,$exit); DEBUG_S(-3,$command_id.':out of1/4 - SYNC_ZASOBY_STRUCTURES_FROM_CONFIG robie baze ze strukt ze skip-procedures ',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__);flush(); $out="";$exit="";
  2276. $exec='php -r"include(\''.$INSTALL_ROOT.'/superedit-SQIX_STRUCTURE_DB_SYNC.php\') ; SQIX_STRUCTURE_DB_SYNC(\'test_db\',\'test_db\',0,\'WYSLIJ_DO_BAZY\',\'CREATE_ZASOBY_DATABASE_DESC\',\'3\'); " '.$_SERVER['SERVER_NAME'].' FILTR'; //@2013-10-15 staje recznie ?
  2277. exec($exec,$out,$exit); DEBUG_S(-3,$command_id.':out of2/3 CREATE_ZASOBY_DATABASE_DESC',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__);flush();$out="";$exit="";
  2278. $exec='php -r"include(\''.$INSTALL_ROOT.'/superedit-SQIX_STRUCTURE_DB_SYNC.php\') ; SQIX_STRUCTURE_DB_SYNC(\'default_db\',\'test_db\',0,\'WYSLIJ_DO_BAZY\',\'FROM_ZASOBY_TO_ZASOBY\',\'3\'); " '.$_SERVER['SERVER_NAME'].' %PISM%,%zasob%,%ADMINISTRACJA%,%wyposazenie%,%global%,%WMS%,%ISP%,%BI%'; //import procesow z tagami PISMO -
  2279. // this help is in case of my death ;-)
  2280. // use this unescaped from command to manually rebuild process (before clean it up by using CLEAR_IMPORTED_ZASOBY_REMOTE ) : (rename test.procesy5.pl by correct hostname)
  2281. // php -r"include('superedit-SQIX_STRUCTURE_DB_SYNC.php') ; SQIX_STRUCTURE_DB_SYNC('import_db','default_db',0,'WYSLIJ_DO_BAZY','FROM_ZASOBY_TO_ZASOBY','1001'); " test.procesy5.pl %PISM%,%zasob%,%ADMINISTRACJA%,%wyposazenie%,%global%,%WMS%,%ISP%,%BI%
  2282. // or 1) prepare config_base_structure_dump.sql and upload it to target server
  2283. // 2) load this dump to some new database
  2284. // 3) use /garbage (phpMyAdmin) to copy/overwrite this tables: CRM_PROCES, CRM_WSKAZNIK, CRM_LISTA_ZASOBOW, CRM_TESTY_PYTANIA, CRM_IMAGE and CRM_IMPORT_TRANSLATE
  2285. // 4) try to simulate instalator in following steps (exec this):
  2286. // insert ignore into CRM_LISTA_ZASOBOW (`ID`, `DESC`, `TYPE`) VALUES(2, 'BAZA_DANYCH', 'BAZA_DANYCH') ;
  2287. // insert ignore into CRM_LISTA_ZASOBOW (`ID`,`PARENT_ID`, `DESC`, `TYPE`,`A_STATUS`) VALUES(3,0, 'test_procesy5_pl', 'PODMIOT','NORMAL') ; //(replace test_procesy5_pl)
  2288. // update CRM_LISTA_ZASOBOW set \\`DESC\\`=\''.$SERVER_ADDRESS.'\' where \\`DESC\\`=\'biuro.biall-net.pl\' and \\`TYPE\\`=\'SERWER\' and ID=1 "; //replace $SERVER_ADDRESS with properly target server
  2289. // update CRM_LISTA_ZASOBOW set \\`DESC\\`=\''.$REMOTE_FOLDER_ROOT.'\' where \\`DESC\\`=\'SES_USERS2\' and \\`TYPE\\`=\'BAZA_DANYCH\' and ID=2 "; //replace $REMOTE_FOLDER_ROOT with properly target server escaped string
  2290. // exec php bash_install_check.php test_procesy5_pl; //replace test_procesy5_pl with properly target server
  2291. exec($exec,$out,$exit); DEBUG_S(-3,$command_id.':out of3/4/1 FROM_ZASOBY_TO_ZASOBY',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__);flush();$out="";$exit="";
  2292. //tutaj bedzie TODO mysqldump do katalogu installera i komendy z tym zwiazane musza byc jakies - przekopiuj dumpa, odpal go w bazie glownej
  2293. $exec='php -r"include(\''.$INSTALL_ROOT.'/superedit-SQIX_STRUCTURE_DB_SYNC.php\') ; SQIX_STRUCTURE_DB_SYNC(\'test_db\',\'test_db\',0,\'WYSLIJ_DO_BAZY\',\'SYNC_ZASOBY_STRUCTURES_FROM_CONFIG\'); " '.$_SERVER['SERVER_NAME'].' FILTR'; //todo pare razy trzaba powtarzac bo sa bledy
  2294. exec($exec,$out,$exit); DEBUG_S(-3,$command_id.':out of3/4/2 SYNC_ZASOBY_STRUCTURES_FROM_CONFIG',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__);flush();$out="";$exit="";
  2295. $exec="/opt/local/bin/mysqldump -utest test >{$OPTIONS->SE_config}/config/.config_base_structure_dump.sql"; //TODO piotr - moze jakies lepsze miejsce na tego dumpa
  2296. exec($exec,$out,$exit); DEBUG_S(-3,$command_id.':out of4/4 mysqldump',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__);$out="";$exit="";
  2297. }
  2298. //! POBIERZ_INSTALATOR_SH
  2299. else if(!empty($_REQUEST['POBIERZ_INSTALATOR_SH']))
  2300. {
  2301. $installer_url="http://biuro.biall-net.pl/PLIKI/SES_PROCESY5_A/"; //miejsce do sciagania instalatora przez WWW
  2302. $installer_dir_tar="/Library/Server/Web/Data/Sites/Default/PLIKI/SES_PROCESY5_A"; //katalog CWD z ktorego budowana jest instalacja
  2303. // $h->VERSION_GIT='version-git' ; //TODO @2015-03-12 do poprawy w GUI zwracanie wlasciwego repozytorium // TODO WTF? Bzyk@2017-11-08
  2304. if(true) { // TODO wyjebac te klamre Bzyk@2017-11-08
  2305. //Bzyk @ 2016-11-24
  2306. //Automatyczne dodanie rekordu dns do serwera w domenie procesy5.pl
  2307. try {
  2308. Lib::loadClass('ServeradminParser');
  2309. $serveradmin = new ServeradminParser();
  2310. if (preg_match('/^(.*)\.procesy5\.pl$/',$h->SERVER_ADDRESS,$matches)) {
  2311. // Jezeli nazwa serwera jest w domenie procesy5.pl, dodajemy rekord DNS dla samej danej nazwy (np. test.procesy5.pl)
  2312. if ($serveradmin->dnsAddIpAddress("procesy5.pl", $matches[1], $h->SERVER_ADDRESS_IP, true)) {
  2313. $serveradmin->applyConf();
  2314. DEBUG_S(-3,'Dodano wpis DNS',$h->SERVER_ADDRESS.' IN A '.$h->SERVER_ADDRESS_IP);
  2315. } else DEBUG_S(-3,'Wpis DNS już istnieje',$h->SERVER_ADDRESS.' IN A '.$h->SERVER_ADDRESS_IP);
  2316. } else {
  2317. // W przeciwnym wypadku dodajemy wpis z doklejeniem do nazwy serwera domeny procesy5.pl (np. biuro.biall-net.pl.procesy5.pl)
  2318. if ($serveradmin->dnsAddIpAddress("procesy5.pl", $h->SERVER_ADDRESS, $h->SERVER_ADDRESS_IP, true)) {
  2319. $serveradmin->applyConf();
  2320. DEBUG_S(-3,'Dodano wpis DNS',$h->SERVER_ADDRESS.'.procesy5.pl IN A '.$h->SERVER_ADDRESS_IP);
  2321. } else DEBUG_S(-3,'Wpis DNS już istnieje',$h->SERVER_ADDRESS.'.procesy5.pl IN A '.$h->SERVER_ADDRESS_IP);
  2322. }
  2323. } catch (Exception $e) {
  2324. DEBUG_S(-3,"Wystąpił błąd podczas próby dodania wpisu DNS",$e->getMessage());
  2325. }
  2326. //@2014-09-17 od Piotr Labudda
  2327. //dodałem nową komórkę [19169] VERSION_GIT z typespecialem, listę wersji
  2328. //odczytuje z repozytorium w katalogu:
  2329. ///Library/Server/Web/Data/Sites/SE-production-git/
  2330. //polecenia do gita:
  2331. //$ git clone /Library/Server/Web/Data/Sites/SE-production-git/ NOWY_KATALOG
  2332. $cmd=' rm -Rf '.$installer_dir_tar.'/'.$h->ID.'.'.$REMOTE_FOLDER_ROOT.'.git';
  2333. exec($cmd,$out,$exit);
  2334. DEBUG_S(-3,'Usuwam stare pliki git ',$cmd,__FILE__,__FUNCTION__,__LINE__);
  2335. {// @2016-04-06 fetch source from git and make VERSION file
  2336. $cmd='cd '.$installer_dir_tar.' && git clone ssh://git@biuro.biall-net.pl:2222/plabudda/se.git '.$h->ID.'.'.$REMOTE_FOLDER_ROOT.'.git' ;
  2337. exec($cmd,$out,$exit);
  2338. DEBUG_S(-3,'Klonowanie aktualnego GIT ',array($cmd,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
  2339. if ($h->VERSION_GIT) {
  2340. $cmd = "cd {$installer_dir_tar}/{$h->ID}.{$REMOTE_FOLDER_ROOT}.git/ && git submodule update --init 'SE/projects/{$h->VERSION_GIT}'";
  2341. exec($cmd,$out,$exit);
  2342. DEBUG_S(-3,"Klonowanie modułu projektu GIT \"{$h->VERSION_GIT}\"",array($cmd,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
  2343. }
  2344. $cmd = "cd {$installer_dir_tar}/{$h->ID}.{$REMOTE_FOLDER_ROOT}.git/ && echo `git show-ref --head|head -1|head -c 8` > SE/VERSION";
  2345. exec($cmd,$out,$exit);
  2346. DEBUG_S(-3,'Klonowanie aktualnego GIT - create VERSION file ',array($cmd,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
  2347. //@2016-05 klonowanie modulu wordpressa do wspolnej paczki instalacji ; poki nie dziala - korzystamy z stuff/p5_BeeCtrl.zip
  2348. $cmd='cd '.$installer_dir_tar.' && git -C '.$installer_dir_tar.'/'.$h->ID.'.'.$REMOTE_FOLDER_ROOT.'.git clone ssh://git@biuro.biall-net.pl:2222/pawel.kamola/generator_worpressa.git ' ;
  2349. exec($cmd,$out,$exit);
  2350. DEBUG_S(-3,'Klonowanie z aktualnego GIT modul wordpress ',array($cmd,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
  2351. }
  2352. /*
  2353. if (1==0) { //@2015-01-27 - proba zrobienia zwyklego clone
  2354. $cmd='git clone /Library/Server/Web/Data/Sites/SE-production-git/ '.$installer_dir_tar.'/'.$h->ID.'.'.$REMOTE_FOLDER_ROOT.'.git';
  2355. DEBUG_S(-3,'Running command',$cmd,__FILE__,__FUNCTION__,__LINE__);
  2356. exec($cmd,$out,$exit);
  2357. //$ cd NOWY_KATALOG
  2358. //$ git checkout v3.9.4
  2359. $cmd='cd '.$h->ID.'.'.$REMOTE_FOLDER_ROOT.'.git && git checkout '.$h->VERSION_GIT;
  2360. exec($cmd,$out,$exit);
  2361. DEBUG_S(-3,'Running command',array($cmd,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
  2362. }
  2363. */
  2364. //w taki sposób w katalogu NOWY_KATALOG pojawi się katalog SE z podaną wersją
  2365. //brakuje tylko katalogu SE/config/
  2366. //Można potem usunąć ukryty katalog NOWY_KATALOG/.git bo nie przyda się
  2367. //do tworzenia paczek i znajdują się w nim dane z plików.
  2368. $INSTALL_ROOT=$installer_dir_tar.'/'.$h->ID.'.'.$REMOTE_FOLDER_ROOT.'.git/SE'; //nadpisuje nazwe katalogu zrodlowego skad beda kopiowane pliki przez instalatora
  2369. DEBUG_S(-3,'We make INSTALL_ROOT='.$INSTALL_ROOT,null,__FILE__,__FUNCTION__,__LINE__);
  2370. { //@2015-03-21 dogranie konfigow z repozytorium konfigow
  2371. $cmd='mkdir '.$INSTALL_ROOT.'/config' ;
  2372. exec($cmd,$out,$exit);
  2373. DEBUG_S(-3,'We mkdir Install Root ',array($cmd,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
  2374. $cmd='cp '.$OPTIONS->SE_config.'/config/.cnf--column_init* '.$INSTALL_ROOT.'/config/' ;
  2375. exec($cmd,$out,$exit);
  2376. DEBUG_S(-3,'We copy Install Root ',array($cmd,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
  2377. $cmd='cp '.$OPTIONS->SE_config.'/config/.cnf--external_ids.ini.php* '.$INSTALL_ROOT.'/config/' ;
  2378. exec($cmd,$out,$exit);
  2379. DEBUG_S(-3,'We copy Install Root ',array($cmd,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
  2380. $cmd='cp '.$OPTIONS->SE_config.'/config/.config_base_structure* '.$INSTALL_ROOT.'/config/' ;
  2381. exec($cmd,$out,$exit);
  2382. DEBUG_S(-3,'We copy config_base_structure*',array($cmd,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
  2383. }
  2384. }
  2385. //! pakiet : INSTALL_GETCOMMANDS
  2386. $packages['pl.procesy5']['exit_file']=str_replace('.', '_', $h->ID.".".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg
  2387. $packages['pl.procesy5']['installer_dir_name']=$h->ID.".".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg
  2388. $packages['pl.procesy5']['installer_tmp']="/tmp/pl.procesy5_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator
  2389. $packages['pl.procesy5']['CMD_FUNCTION']="INSTALL_GETCOMMANDS"; //miejsce do ktorego installer odpakuje wszystko instalator
  2390. $packages['pl.procesy5']['xml_choice']['visible']='true';
  2391. $packages['pl.procesy5']['xml_choice']['title']='(I)Procesy5';
  2392. $packages['pl.procesy5']['xml_choice']['description']='(use for Install mainly, also safe upgrade) Main Procesy5 install components and scripts - use only first time - just part of OSX Server and OSX system config';
  2393. $packages['pl.procesy5']['xml_choice']['start_selected']='true';
  2394. //! pakiet : INSTALL_GETCOMMANDS_COMP_PORT
  2395. $packages['pl.procesy5.COMP_PORT']['exit_file']=str_replace('.', '_', $h->ID.".COMP_PORT_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg
  2396. $packages['pl.procesy5.COMP_PORT']['installer_dir_name']=$h->ID.".COMP_PORT_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg
  2397. $packages['pl.procesy5.COMP_PORT']['installer_tmp']="/tmp/pl.procesy5_COMP_PORT_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator
  2398. $packages['pl.procesy5.COMP_PORT']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_COMP_PORT"; //miejsce do ktorego installer odpakuje wszystko instalator
  2399. $packages['pl.procesy5.COMP_PORT']['xml_choice']['visible']='true';
  2400. $packages['pl.procesy5.COMP_PORT']['xml_choice']['title']='(I+U)MacPorts,Xcode,Licence(decrypt)';
  2401. $packages['pl.procesy5.COMP_PORT']['xml_choice']['description']='(install and update) Needed utilities and libraries to install Procesy5 and Database, decrypt';
  2402. $packages['pl.procesy5.COMP_PORT']['xml_choice']['start_selected']='true';
  2403. //! pakiet : INSTALL_GETCOMMANDS_XSL_ENGINES
  2404. $packages['pl.procesy5.INSTALL_GETCOMMANDS_XSL_ENGINES']['exit_file']=str_replace('.', '_', $h->ID.".INSTALL_GETCOMMANDS_XSL_ENGINES_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg
  2405. $packages['pl.procesy5.INSTALL_GETCOMMANDS_XSL_ENGINES']['installer_dir_name']=$h->ID.".INSTALL_GETCOMMANDS_XSL_ENGINES_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg
  2406. $packages['pl.procesy5.INSTALL_GETCOMMANDS_XSL_ENGINES']['installer_tmp']="/tmp/pl.procesy5_INSTALL_GETCOMMANDS_XSL_ENGINES_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator
  2407. $packages['pl.procesy5.INSTALL_GETCOMMANDS_XSL_ENGINES']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_XSL_ENGINES"; //miejsce do ktorego installer odpakuje wszystko instalator
  2408. $packages['pl.procesy5.INSTALL_GETCOMMANDS_XSL_ENGINES']['xml_choice']['visible']='true';
  2409. $packages['pl.procesy5.INSTALL_GETCOMMANDS_XSL_ENGINES']['xml_choice']['title']='(I+U)XSL Engines';
  2410. $packages['pl.procesy5.INSTALL_GETCOMMANDS_XSL_ENGINES']['xml_choice']['description']='(install and update) Needed tools tools like saxon ';
  2411. $packages['pl.procesy5.INSTALL_GETCOMMANDS_XSL_ENGINES']['xml_choice']['start_selected']='true';
  2412. //! pakiet: INSTALL_GETCOMMANDS_MARIADB
  2413. $packages['pl.procesy5.MARIADB']['exit_file']=str_replace('.', '_', $h->ID.".MARIADB_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg
  2414. $packages['pl.procesy5.MARIADB']['installer_dir_name']=$h->ID.".MARIADB_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg
  2415. $packages['pl.procesy5.MARIADB']['installer_tmp']="/tmp/pl.procesy5_MARIADB_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator
  2416. $packages['pl.procesy5.MARIADB']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_MARIADB"; //miejsce do ktorego installer odpakuje wszystko instalator
  2417. $packages['pl.procesy5.MARIADB']['xml_choice']['visible']='true';
  2418. $packages['pl.procesy5.MARIADB']['xml_choice']['title']='(I)MariaDB';
  2419. $packages['pl.procesy5.MARIADB']['xml_choice']['description']='(use for install only) Required MariaDB database from MacPorts';
  2420. $packages['pl.procesy5.MARIADB']['xml_choice']['start_selected']='true';
  2421. //! pakiet: INSTALL_GETCOMMANDS_POSTGIS
  2422. $packages['pl.procesy5.POSTGIS']['exit_file']=str_replace('.', '_', $h->ID.".POSTGIS_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg
  2423. $packages['pl.procesy5.POSTGIS']['installer_dir_name']=$h->ID.".POSTGIS_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg
  2424. $packages['pl.procesy5.POSTGIS']['installer_tmp']="/tmp/pl.procesy5_POSTGIS_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator
  2425. $packages['pl.procesy5.POSTGIS']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_POSTGIS"; //miejsce do ktorego installer odpakuje wszystko instalator
  2426. $packages['pl.procesy5.POSTGIS']['xml_choice']['visible']='true';
  2427. $packages['pl.procesy5.POSTGIS']['xml_choice']['title']='(I)Postgres-postgis';
  2428. $packages['pl.procesy5.POSTGIS']['xml_choice']['description']='Required Postgis database for qGIS (Use for install)';
  2429. $packages['pl.procesy5.POSTGIS']['xml_choice']['start_selected']='true';
  2430. //! pakiet: INSTALL_GETCOMMANDS_WEBMAIL TODO make uninstall @2017-09-25
  2431. $packages['pl.procesy5.WEBMAIL']['exit_file']=str_replace('.', '_', $h->ID.".WEBMAIL_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg
  2432. $packages['pl.procesy5.WEBMAIL']['installer_dir_name']=$h->ID.".WEBMAIL_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg
  2433. $packages['pl.procesy5.WEBMAIL']['installer_tmp']="/tmp/pl.procesy5_WEBMAIL_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator
  2434. $packages['pl.procesy5.WEBMAIL']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_WEBMAIL"; //miejsce do ktorego installer odpakuje wszystko instalator
  2435. $packages['pl.procesy5.WEBMAIL']['xml_choice']['visible']='true';
  2436. $packages['pl.procesy5.WEBMAIL']['xml_choice']['title']='(I)Webmail RoundCube';
  2437. $packages['pl.procesy5.WEBMAIL']['xml_choice']['description']='Additional webmail from roundcube (Use for install only)';
  2438. $packages['pl.procesy5.WEBMAIL']['xml_choice']['start_selected']='true';
  2439. //! pakiet: INSTALL_GETCOMMANDS_SE
  2440. $packages['pl.procesy5.SE']['exit_file']=str_replace('.', '_', $h->ID.".SE_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg
  2441. $packages['pl.procesy5.SE']['installer_dir_name']=$h->ID.".SE_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg
  2442. $packages['pl.procesy5.SE']['installer_tmp']="/tmp/pl.procesy5_SE_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator
  2443. $packages['pl.procesy5.SE']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_SE"; //miejsce do ktorego installer odpakuje wszystko instalator
  2444. $packages['pl.procesy5.SE']['xml_choice']['visible']='true';
  2445. $packages['pl.procesy5.SE']['xml_choice']['title']='(U+I)Procesy5 main application';
  2446. $packages['pl.procesy5.SE']['xml_choice']['description']='Main application and install scripts for Procesy5 (Use for upgrade and install)';
  2447. $packages['pl.procesy5.SE']['xml_choice']['start_selected']='true';
  2448. $packages['pl.procesy5.SE']['encrypt']=true;
  2449. //! pakiet: INSTALL_GETCOMMANDS_SE_DB_DOMAIN
  2450. $packages['pl.procesy5.SE_DB_DOMAIN']['exit_file']=str_replace('.', '_', $h->ID.".SE_DB_DOMAIN_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg
  2451. $packages['pl.procesy5.SE_DB_DOMAIN']['installer_dir_name']=$h->ID.".SE_DB_DOMAIN_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg
  2452. $packages['pl.procesy5.SE_DB_DOMAIN']['installer_tmp']="/tmp/pl.procesy5_SE_DB_DOMAIN_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator
  2453. $packages['pl.procesy5.SE_DB_DOMAIN']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_SE_DB_DOMAIN"; //miejsce do ktorego installer odpakuje wszystko instalator
  2454. $packages['pl.procesy5.SE_DB_DOMAIN']['xml_choice']['visible']='true';
  2455. $packages['pl.procesy5.SE_DB_DOMAIN']['xml_choice']['title']='(I)Procesy5 install db and config for domain one ';
  2456. $packages['pl.procesy5.SE_DB_DOMAIN']['xml_choice']['description']='(Use only for install) Only installs DB and settings for domain ('.$h->SERVER_ADDRESS.') (used on existing install for add virtual domain)';
  2457. $packages['pl.procesy5.SE_DB_DOMAIN']['xml_choice']['start_selected']='true';
  2458. $packages['pl.procesy5.SE_DB_DOMAIN']['encrypt']=true;
  2459. //! pakiet: INSTALL_GETCOMMANDS_MYADMIN
  2460. $packages['pl.procesy5.MYADMIN']['exit_file']=str_replace('.', '_', $h->ID.".MYADMIN_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg
  2461. $packages['pl.procesy5.MYADMIN']['installer_dir_name']=$h->ID.".MYADMIN_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg
  2462. $packages['pl.procesy5.MYADMIN']['installer_tmp']="/tmp/pl.procesy5_MYADMIN_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator
  2463. $packages['pl.procesy5.MYADMIN']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_MYADMIN"; //miejsce do ktorego installer odpakuje wszystko instalator
  2464. $packages['pl.procesy5.MYADMIN']['xml_choice']['visible']='true';
  2465. $packages['pl.procesy5.MYADMIN']['xml_choice']['title']='(I+U)php MyAdmin';
  2466. $packages['pl.procesy5.MYADMIN']['xml_choice']['description']='Component located at /garbage URL, to manage database(Upgrade/Install)';
  2467. $packages['pl.procesy5.MYADMIN']['xml_choice']['start_selected']='true';
  2468. //! pakiet : INSTALL_GETCOMMANDS_DITA
  2469. $packages['pl.procesy5.DITA']['exit_file']=str_replace('.', '_', $h->ID.".DITA_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg
  2470. $packages['pl.procesy5.DITA']['installer_dir_name']=$h->ID.".DITA_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg
  2471. $packages['pl.procesy5.DITA']['installer_tmp']="/tmp/pl.procesy5_DITA_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator
  2472. $packages['pl.procesy5.DITA']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_DITA"; //miejsce do ktorego installer odpakuje wszystko instalator
  2473. $packages['pl.procesy5.DITA']['xml_choice']['visible']='true';
  2474. $packages['pl.procesy5.DITA']['xml_choice']['title']='(I+U)DITA components';
  2475. $packages['pl.procesy5.DITA']['xml_choice']['description']='Needed utilities and libraries use DITA docs';
  2476. $packages['pl.procesy5.DITA']['xml_choice']['start_selected']='true';
  2477. //! pakiet: INSTALL_GETCOMMANDS_UNINSTALL_WORDPRESS
  2478. $packages['pl.procesy5.UNINSTALL_WORDPRESS']['exit_file']=str_replace('.', '_', $h->ID.".UNINSTALL_WORDPRESS".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg
  2479. $packages['pl.procesy5.UNINSTALL_WORDPRESS']['installer_dir_name']=$h->ID.".UNINSTALL_WORDPRESS".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg
  2480. $packages['pl.procesy5.UNINSTALL_WORDPRESS']['installer_tmp']="/tmp/pl.procesy5_UNINSTALL_WORDPRESS".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator
  2481. $packages['pl.procesy5.UNINSTALL_WORDPRESS']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_UNINSTALL_WORDPRESS"; //miejsce do ktorego installer odpakuje wszystko instalator
  2482. $packages['pl.procesy5.UNINSTALL_WORDPRESS']['xml_choice']['visible']='true';
  2483. $packages['pl.procesy5.UNINSTALL_WORDPRESS']['xml_choice']['title']='(U)uninstall wordpress current';
  2484. $packages['pl.procesy5.UNINSTALL_WORDPRESS']['xml_choice']['description']='Warning - it drops database for Wordpress- do not use for upgrade!';
  2485. $packages['pl.procesy5.UNINSTALL_WORDPRESS']['xml_choice']['start_selected']='false';
  2486. //! pakiet: INSTALL_GETCOMMANDS_WORDPRESS
  2487. $packages['pl.procesy5.WORDPRESS']['exit_file']=str_replace('.', '_', $h->ID.".WORDPRESS_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg
  2488. $packages['pl.procesy5.WORDPRESS']['installer_dir_name']=$h->ID.".WORDPRESS_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg
  2489. $packages['pl.procesy5.WORDPRESS']['installer_tmp']="/tmp/pl.procesy5_WORDPRESS_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator
  2490. $packages['pl.procesy5.WORDPRESS']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_WORDPRESS"; //miejsce do ktorego installer odpakuje wszystko instalator
  2491. $packages['pl.procesy5.WORDPRESS']['xml_choice']['visible']='true';
  2492. $packages['pl.procesy5.WORDPRESS']['xml_choice']['title']='(U+I)wordpress current';
  2493. $packages['pl.procesy5.WORDPRESS']['xml_choice']['description']='Wordpress configured site with admin access. Warning - it drops database - do not use for upgrade!';
  2494. $packages['pl.procesy5.WORDPRESS']['xml_choice']['start_selected']='true';
  2495. //! pakiet: INSTALL_GETCOMMANDS_WMS @2016-07 maintain bzyk
  2496. $packages['pl.procesy5.INSTALL_GETCOMMANDS_WMS']['exit_file']=str_replace('.', '_', $h->ID.".WMS_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg
  2497. $packages['pl.procesy5.INSTALL_GETCOMMANDS_WMS']['installer_dir_name']=$h->ID.".WMS_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg
  2498. $packages['pl.procesy5.INSTALL_GETCOMMANDS_WMS']['installer_tmp']="/tmp/pl.procesy5_WMS_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator
  2499. $packages['pl.procesy5.INSTALL_GETCOMMANDS_WMS']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_WMS"; //miejsce do ktorego installer odpakuje wszystko instalator
  2500. $packages['pl.procesy5.INSTALL_GETCOMMANDS_WMS']['xml_choice']['visible']='true';
  2501. $packages['pl.procesy5.INSTALL_GETCOMMANDS_WMS']['xml_choice']['title']='(U+I)WMS server and utilities';
  2502. $packages['pl.procesy5.INSTALL_GETCOMMANDS_WMS']['xml_choice']['description']='Special scripts and utilities to maintain WMS spatial server and provide tools to administer drone mapping. (Use for upgrade and install)';
  2503. $packages['pl.procesy5.INSTALL_GETCOMMANDS_WMS']['xml_choice']['start_selected']='true';
  2504. //! pakiet: INSTALL_GETCOMMANDS_BIAUDIT @2017-08 maintain bzyk
  2505. $packages['pl.procesy5.INSTALL_GETCOMMANDS_BIAUDIT']['exit_file']=str_replace('.', '_', $h->ID.".BIAUDIT_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg
  2506. $packages['pl.procesy5.INSTALL_GETCOMMANDS_BIAUDIT']['installer_dir_name']=$h->ID.".BIAUDIT_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg
  2507. $packages['pl.procesy5.INSTALL_GETCOMMANDS_BIAUDIT']['installer_tmp']="/tmp/pl.procesy5_BIAUDIT_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator
  2508. $packages['pl.procesy5.INSTALL_GETCOMMANDS_BIAUDIT']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_BIAUDIT"; //miejsce do ktorego installer odpakuje wszystko instalator
  2509. $packages['pl.procesy5.INSTALL_GETCOMMANDS_BIAUDIT']['xml_choice']['visible']='true';
  2510. $packages['pl.procesy5.INSTALL_GETCOMMANDS_BIAUDIT']['xml_choice']['title']='(U+I)BiAuditGenerate';
  2511. $packages['pl.procesy5.INSTALL_GETCOMMANDS_BIAUDIT']['xml_choice']['description']='Special scripts and utilities to maintain BiAudit (Use for upgrade and install)';
  2512. $packages['pl.procesy5.INSTALL_GETCOMMANDS_BIAUDIT']['xml_choice']['start_selected']='true';
  2513. //! pakiet: INSTALL_GETCOMMANDS_SE_LAST_UPDATE - koncowe skrypty
  2514. $packages['pl.procesy5.INSTALL_GETCOMMANDS_SE_LAST_UPDATE']['exit_file']=str_replace('.', '_', $h->ID.".SE_LAST_UPDATE_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg
  2515. $packages['pl.procesy5.INSTALL_GETCOMMANDS_SE_LAST_UPDATE']['installer_dir_name']=$h->ID.".SE_LAST_UPDATE_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg
  2516. $packages['pl.procesy5.INSTALL_GETCOMMANDS_SE_LAST_UPDATE']['installer_tmp']="/tmp/pl.procesy5_SE_LAST_UPDATE_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator
  2517. $packages['pl.procesy5.INSTALL_GETCOMMANDS_SE_LAST_UPDATE']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_SE_LAST_UPDATE"; //miejsce do ktorego installer odpakuje wszystko instalator
  2518. $packages['pl.procesy5.INSTALL_GETCOMMANDS_SE_LAST_UPDATE']['xml_choice']['visible']='true';
  2519. $packages['pl.procesy5.INSTALL_GETCOMMANDS_SE_LAST_UPDATE']['xml_choice']['title']='(U+I)Procesy5 last check scirpts - must run always ';
  2520. $packages['pl.procesy5.INSTALL_GETCOMMANDS_SE_LAST_UPDATE']['xml_choice']['description']='run update scripts and bash_install_check';
  2521. $packages['pl.procesy5.INSTALL_GETCOMMANDS_SE_LAST_UPDATE']['xml_choice']['start_selected']='true';
  2522. // $packages['pl.procesy5.INSTALL_GETCOMMANDS_SE_LAST_UPDATE']['encrypt']=true;
  2523. DEBUG_S(-3,'Dane komponentow instalacji',$packages,__FILE__,__FUNCTION__,__LINE__);
  2524. foreach($packages as $pkg_id=>$pkg_info) {
  2525. $cmd=$pkg_info['CMD_FUNCTION']($h->ADMIN_USERNAME,$h->SERVER_ADDRESS_IP,$h->ADMIN_USERNAME_PASSWD,$h->SERVER_MOUNT_POINT_ROOT,$h->SERVER_ADDRESS,$h->SERVER_ADDRESS_LDAP_DC,$h->SERVER_ADDRESS_SHORT,$INSTALL_ROOT,$REMOTE_FOLDER_ROOT,$h->ADMIN_USERNAME_L1,$h->ADMIN_USERNAME_L1_PASS,$h->ADMIN_USERNAME_DIRECTORY,$h->ADMIN_USERNAME_INITIAL_PASSWD,$h->BACKUP_USB_DEVICE,$h->SERVER_VERSION,$OPTIONS);
  2526. DEBUG_S(-3,'Robie pkg '.$pkg_info['CMD_FUNCTION'],null,__FILE__,__FUNCTION__,__LINE__);
  2527. MAKE_PKG_COMPONENT($h,$installer_dir_tar,$installer_url,$pkg_info['installer_tmp'],$cmd,$pkg_info['exit_file'],$pkg_info['installer_dir_name'],$pkg_id,$pkg_info['encrypt']);
  2528. $package_xml['pkg-ref'].='<pkg-ref id="'.$pkg_id.'"/>';
  2529. $package_xml['choices-outline'].='<line choice="'.$pkg_id.'"/>
  2530. ';
  2531. $package_xml['choice'].='<choice id="'.$pkg_id.'" visible="'.$pkg_info['xml_choice']['visible'].'" title="'.$pkg_info['xml_choice']['title'].'"
  2532. description="'.$pkg_info['xml_choice']['description'].'" start_selected="'.$pkg_info['xml_choice']['start_selected'].'">
  2533. <pkg-ref id="'.$pkg_id.'"/>
  2534. </choice>
  2535. <pkg-ref id="'.$pkg_id.'" version="0" onConclusion="none">'.$pkg_info['exit_file'].'.pkg</pkg-ref>';
  2536. }
  2537. DEBUG_S(-3,'Dane xml package',$package_xml,__FILE__,__FUNCTION__,__LINE__);
  2538. $product['xml']='<?xml version="1.0" encoding="utf-8" standalone="no"?>
  2539. <installer-gui-script minSpecVersion="1">
  2540. <title>Procesy5 system installer</title>
  2541. <organization>pl.procesy5</organization>
  2542. <background file="installerImage.png" mime-type="image/png" alignment="right" scaling="proportional" />
  2543. <domains enable_localSystem="true"/>
  2544. <os-version min="10.8"/>
  2545. '.$package_xml['pkg-ref'].'
  2546. <options customize="always" require-scripts="true" rootVolumeOnly="true" />
  2547. <choices-outline>
  2548. <line choice="default" >
  2549. '.$package_xml['choices-outline'].'
  2550. </line>
  2551. </choices-outline>
  2552. <choice id="default" visible="true" title="Procesy5 Bundle" description="Please select carefully components" start_selected="true" />
  2553. ';
  2554. //$product['xml'].=$package_xml['pkg-ref'];
  2555. $product['xml'].=$package_xml['choice'];
  2556. $product['xml'].='</installer-gui-script>';
  2557. echo "<br>Product XML<br>".$product['xml'];
  2558. mkdir($installer_dir_tar."/".$h->ID.".resources",0777);
  2559. $file=fopen($installer_dir_tar."/".$h->ID.".distribution.xml", "w") or die('Cannot open file: '.$installer_dir_tar.'.'.$h->ID.".distribution.xml");
  2560. fwrite($file,$product['xml']."\n");
  2561. fclose($file);
  2562. //copy logo
  2563. exec("cp ".$INSTALL_ROOT."/icon/procesy5.png ".$installer_dir_tar."/".$h->ID.".resources/installerImage.png");
  2564. $exec="cd ".$installer_dir_tar." && productbuild --distribution ".$h->ID.".distribution.xml --resources ".$h->ID.".resources ".$h->ID."_Procesy5_".str_replace('.','_',$h->SERVER_ADDRESS).".pkg" ;
  2565. exec($exec ,$out,$exit);
  2566. DEBUG_S(-3,'Robie glownego instalatora pkg',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__);
  2567. echo "<hr><h2><A href='{$installer_url}".$h->ID."_Procesy5_".str_replace('.','_',$h->SERVER_ADDRESS).".pkg'> ściągnij glowną instalacje Procesy5 ".$h->ID."_Procesy5_".str_replace('.','_',$h->SERVER_ADDRESS).".pkg</a></h2>\n";
  2568. } else if(!empty($_REQUEST['ZAINSTALUJ_NA_PARALLELS'])) {
  2569. try {
  2570. $subnets["94.158.130.224"] = array(
  2571. "mask" => "255.255.255.224",
  2572. "gw" => "94.158.130.225",
  2573. "dns" => "94.158.130.225");
  2574. $subnets["94.158.132.0"] = array(
  2575. "mask" => "255.255.255.0",
  2576. "gw" => "94.158.132.1",
  2577. "dns" => "94.158.132.1");
  2578. foreach ($subnets as $network => $values) $availableSubnetsArr[] = $network . "/" . $values["mask"];
  2579. $availableSubnets = implode(", ",$availableSubnetsArr);
  2580. $installer_dir_tar ="/Library/Server/Web/Data/Sites/Default/PLIKI/SES_PROCESY5_A"; //katalog CWD z ktorego budowana jest instalacja
  2581. $package = $h->ID."_Procesy5_".str_replace('.','_',$h->SERVER_ADDRESS).".pkg";
  2582. $file = $installer_dir_tar.'/'.$package;
  2583. echo "<br/>Weryfikacja poprawności danych konfiguracyjnych";
  2584. if (!file_exists($file)) throw new Exception("Nie znaleziono pliku instalatora - ".$file.". Należy najpierw wyzwolić funkcję \"2. POBIERZ_INSTALATOR_SH\" (po wygenerowaniu pliku instalatora nie należy niczego pobierać).");
  2585. DEBUG_S(-3, 'Plik instalatora', 'OK');
  2586. if ($h->SERVER_ADDRESS_LDAP_DC != "dc=procesy5,dc=local") throw new Exception('Błędny Adres LDAP DC - należy koniecznie ustawić "dc=procesy5,dc=local", a następnie na nowo wygenerować plik instalatora klikając na "2. POBIERZ_INSTALATOR_SH".');
  2587. DEBUG_S(-3, 'Poprawność Adresu LDAP DC', 'OK');
  2588. if (!filter_var($h->SERVER_ADDRESS_IP, FILTER_VALIDATE_IP) === true) throw new Exception('Błąd - '.$h->SERVER_ADDRESS_IP.' nie jest poprawnym adresem IP! Popraw Adres IP serwera.');
  2589. DEBUG_S(-3, 'Poprawność Adresu IP serwera', 'OK');
  2590. unset($subnet);
  2591. foreach ($subnets as $network => $values) {
  2592. if ((ip2long($h->SERVER_ADDRESS_IP) & ip2long($values["mask"])) == ip2long($network)) $subnet = $network;
  2593. }
  2594. if (!isset($subnet)) throw new Exception("Adres IP ".$h->SERVER_ADDRESS_IP." nie należy do żadnej znanej puli adresów.<br/>Dostępne pule: ".$availableSubnets);
  2595. if ($h->SERVER_ADDRESS_IP == $subnet) throw new Exception("Adres IP ".$h->SERVER_ADDRESS_IP." jest adresem sieci podsieci ".$subnet."/".$subnets[$subnet]["mask"].". Należy wybrać inny adres IP z puli adresów.<br/>Dostępne pule: ".$availableSubnets);
  2596. if ($h->SERVER_ADDRESS_IP == $subnets[$subnet]["gw"]) throw new Exception("Adres IP ".$h->SERVER_ADDRESS_IP." jest zarezerwowany dla routera dla podsieci ".$subnet."/".$subnets[$subnet]["mask"].". Należy wybrać inny adres IP z puli adresów.<br/>Dostępne pule: ".$availableSubnets);
  2597. if ($h->SERVER_ADDRESS_IP == long2ip(ip2long($subnet) | ~ip2long($subnets[$subnet]["mask"]))) throw new Exception("Adres IP ".$h->SERVER_ADDRESS_IP." jest adresem rozgłoszeniowym dla podsieci ".$subnet."/".$subnets[$subnet]["mask"].". Należy wybrać inny adres IP z puli adresów.<br/>Dostępne pule: ".$availableSubnets);
  2598. DEBUG_S(-3, 'Adres IP serwera należy do znanej puli adresów', 'OK');
  2599. V::exec("ping ".$h->SERVER_ADDRESS_IP." -c 10 -i 0.2 -t 2", $output, $exit);
  2600. if (!$exit) throw new Exception('Błąd - maszyna o adresie IP '.$h->SERVER_ADDRESS_IP.' już istnieje (odpowiada na "pingi").');
  2601. DEBUG_S(-3, 'Brak maszyny w sieci o adresie IP '.$h->SERVER_ADDRESS_IP, 'OK');
  2602. $result = execOnParallels('prlctl status "'.$h->SERVER_ADDRESS.'"');
  2603. if ($result) throw new Exception("Maszyna wirtualna o nazwie ".$h->SERVER_ADDRESS." już istnieje!");
  2604. DEBUG_S(-3, 'Brak wirtualnej maszyny Parallels o nazwie '.$h->SERVER_ADDRESS, 'OK');
  2605. $result = execOnParallels('[ -f "Parallels/.current_autoinstall_'.$h->SERVER_VERSION.'" ] && echo 1');
  2606. if (!$result) throw new Exception("Brak definicji szablonu wirtualnej maszyny Parallels dla systemu macOS ".$h->SERVER_VERSION);
  2607. DEBUG_S(-3, 'Definicja szablonu wirtualnej maszyny Parallels dla systemu macOS '.$h->SERVER_VERSION, 'OK');
  2608. $result = execOnParallels('prlctl list -t "\$(<Parallels/.current_autoinstall_'.$h->SERVER_VERSION.')" >/dev/null 2>&1 && echo 1');
  2609. if (!$result) throw new Exception("Wystąpił problem z szablonem wirtualnej maszyny Parallels dla systemu macOS ".$h->SERVER_VERSION);
  2610. DEBUG_S(-3, 'Szablon wirtualnej maszyny Parallels dla systemu macOS '.$h->SERVER_VERSION, 'OK');
  2611. echo "<br/>Tworzenie maszyny wirtualnej";
  2612. $result = execOnParallels('prlctl clone "\$(<Parallels/.current_autoinstall_'.$h->SERVER_VERSION.')" --name "'.$h->SERVER_ADDRESS.'"');
  2613. DEBUG_S(-3, 'Tworzenie maszyny wirtualnej', $result);
  2614. $result = execOnParallels('prlctl status "'.$h->SERVER_ADDRESS.'"');
  2615. if (!$result) throw new Exception("Błąd tworzenia maszyny wirtualnej Parallels o nazwie ".$h->SERVER_ADDRESS);
  2616. DEBUG_S(-3, 'Poprawność utworzenia maszyny wirtualnej Parallels o nazwie '.$h->SERVER_ADDRESS, 'OK');
  2617. $plist = '<?xml version="1.0" encoding="UTF-8"?>
  2618. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  2619. <plist version="1.0">
  2620. <dict>
  2621. <key>Disabled</key><false/>
  2622. <key>KeepAlive</key><true/>
  2623. <key>Label</key><string>parallels.'.$h->SERVER_ADDRESS.'</string>
  2624. <key>ProgramArguments</key>
  2625. <array>
  2626. <string>/usr/local/bin/prlctl</string>
  2627. <string>start</string>
  2628. <string>'.$h->SERVER_ADDRESS.'</string>
  2629. </array>
  2630. <key>UserName</key><string>arkadiuszbinder</string>
  2631. <key>RunAtLoad</key><true/>
  2632. <key>AbandonProcessGroup</key><true/>
  2633. </dict>
  2634. </plist>';
  2635. $result = execOnParallels('sudo -n su -
  2636. echo \''.$plist.'\' > /Library/LaunchDaemons/parallels.'.$h->SERVER_ADDRESS.'.plist');
  2637. DEBUG_S(-3, 'Utworzenie pliku plist do LaunchDaemona', 'OK');
  2638. echo "<br/>Uruchomienie maszyny wirtualnej";
  2639. execOnParallels('sudo launchctl load /Library/LaunchDaemons/parallels.'.$h->SERVER_ADDRESS.'.plist');
  2640. $i = 0;
  2641. do {
  2642. sleep(10);
  2643. echo ".";
  2644. $result = execOnParallels('prlctl list -i -j '.$h->SERVER_ADDRESS);
  2645. $result_jdecoded = json_decode($result);
  2646. $state = $result_jdecoded[0]->GuestTools->state;
  2647. if ($i++>18) {
  2648. execOnParallels('sudo launchctl unload /Library/LaunchDaemons/parallels.'.$h->SERVER_ADDRESS.'.plist');
  2649. execOnParallels('sudo rm -f /Library/LaunchDaemons/parallels.'.$h->SERVER_ADDRESS.'.plist');
  2650. execOnParallels('prlctl stop "'.$h->SERVER_ADDRESS.'" --kill');
  2651. execOnParallels('prlctl delete "'.$h->SERVER_ADDRESS.'"');
  2652. throw new Exception("Wystąpił problem z uruchomieniem maszyny wirtualnej, usuwam maszynę i przerywam...");
  2653. }
  2654. } while ($state == "not_installed");
  2655. DEBUG_S(-3, 'Uruchomienie maszyny wirtualnej Parallels', 'OK');
  2656. echo "<br/>Konfiguracja maszyny wirtualnej";
  2657. $result = execOnParallels('prlctl exec "'.$h->SERVER_ADDRESS.'" "networksetup -setmanual Ethernet '.$h->SERVER_ADDRESS_IP.' '.$subnets[$subnet]["mask"].' '.$subnets[$subnet]["gw"].'"');
  2658. DEBUG_S(-3, 'Ustawienie adresu IP/maskę oraz bramy domyślnej', $result);
  2659. sleep(2);
  2660. $result = execOnParallels('prlctl exec "'.$h->SERVER_ADDRESS.'" "networksetup -setdnsservers Ethernet '.$subnets[$subnet]["dns"].'"');
  2661. DEBUG_S(-3, 'Ustawienie serwera DNS', $result);
  2662. sleep(10);
  2663. V::exec("ping ".$h->SERVER_ADDRESS_IP." -c 5 -t 20", $output, $exit);
  2664. DEBUG_S(-3, 'Weryfikacja czy maszyna wirtualna odpowiada na "pingi"', $output);
  2665. if ($exit) {
  2666. execOnParallels('sudo launchctl unload /Library/LaunchDaemons/parallels.'.$h->SERVER_ADDRESS.'.plist');
  2667. execOnParallels('sudo rm -f /Library/LaunchDaemons/parallels.'.$h->SERVER_ADDRESS.'.plist');
  2668. execOnParallels('prlctl stop "'.$h->SERVER_ADDRESS.'" --kill');
  2669. execOnParallels('prlctl delete "'.$h->SERVER_ADDRESS.'"');
  2670. throw new Exception('Błąd - maszyna wirtualna nie odpowiada na pingi, usuwam maszynę i przerywam...');
  2671. }
  2672. $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'printf "'.$h->SERVER_ADDRESS_IP.'\t'.$h->SERVER_ADDRESS.'\n" >> /etc/hosts\'';
  2673. $result = execOnParallels($cmd);
  2674. DEBUG_S(-3, $cmd, $result);
  2675. $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'/Applications/Server.app/Contents/ServerRoot/usr/sbin/changeip '.$h->SERVER_ADDRESS_IP.' procesy5 "'.$h->SERVER_ADDRESS.'"\'';
  2676. $result = execOnParallels($cmd);
  2677. DEBUG_S(-3, $cmd, $result);
  2678. sleep(2);
  2679. $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'scutil --set HostName "'.$h->SERVER_ADDRESS.'"\'';
  2680. $result = execOnParallels($cmd);
  2681. DEBUG_S(-3, $cmd, $result);
  2682. sleep(2);
  2683. $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'scutil --set ComputerName "'.$h->SERVER_ADDRESS.'"\'';
  2684. $result = execOnParallels($cmd);
  2685. DEBUG_S(-3, $cmd, $result);
  2686. sleep(2);
  2687. $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'scutil --set LocalHostName "'.str_replace('.','-',$h->SERVER_ADDRESS).'"\'';
  2688. $result = execOnParallels($cmd);
  2689. DEBUG_S(-3, $cmd, $result);
  2690. sleep(2);
  2691. $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'dscl . passwd /Users/server "'.str_replace('!','\!',$h->ADMIN_USERNAME_PASSWD).'"\'';
  2692. $result = execOnParallels($cmd);
  2693. DEBUG_S(-3, $cmd, $result);
  2694. sleep(2);
  2695. $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'ldappasswd -x -H ldapi://%2Fvar%2Frun%2Fldapi -s "'.str_replace('!','\!',$h->ADMIN_USERNAME_PASSWD).'" uid=diradmin,cn=users,dc=procesy5,dc=local\'';
  2696. $result = execOnParallels($cmd);
  2697. DEBUG_S(-3, $cmd, $result);
  2698. sleep(2);
  2699. echo "<br/>Kopiowanie pliku instalatora Procesy5";
  2700. $cmd = '/opt/local/bin/sshpass -v -p "'.str_replace('!','\!',$h->ADMIN_USERNAME_PASSWD).'" scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "'.$file.'" "server@'.$h->SERVER_ADDRESS_IP.':Downloads/'.$package.'"';
  2701. $result = shell_exec($cmd);
  2702. DEBUG_S(-3, $cmd, $result);
  2703. echo "<br/>Aktualizacja certyfikatu";
  2704. $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" "[ -f /etc/certificates/'.$h->SERVER_ADDRESS.'*.cert.pem ] && /Applications/Server.app/Contents/ServerRoot/usr/sbin/certupdate replace -c /etc/certificates/procesy5.local.*.cert.pem -C /etc/certificates/'.$h->SERVER_ADDRESS.'*.cert.pem 2>&1"';
  2705. $result = execOnParallels($cmd);
  2706. DEBUG_S(-3, $cmd, $result);
  2707. if (!$result) throw new Exception("Wystąpił bląd instalacji certyfikatu, przerywam...");
  2708. echo "<br/>Instalowanie Procesy5";
  2709. $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'mkdir /var/root/.procesy5_install; touch /var/root/.procesy5_install/started\'';
  2710. $result = execOnParallels($cmd);
  2711. $cmd = 'screen -d -m prlctl exec "'.$h->SERVER_ADDRESS.'" \'installer -package "/Users/server/Downloads/'.$package.'" -target "/" -verboseR > /var/root/.procesy5_install/log && touch /var/root/.procesy5_install/completed\'';
  2712. $result = execOnParallels($cmd);
  2713. DEBUG_S(-3, $cmd, $result);
  2714. echo "<br/><font size=3 color=orange><b>Uruchomiono w tle instalację Procesy5 na maszynie wirtualnej ".$h->SERVER_ADDRESS.".<br/>Aby sprawdzić status instalacji, kliknij na \"4. STATUS_INSTALACJI_NA_PARALLELS\"</b></font><br/><br/>";
  2715. } catch (Exception $e) {
  2716. echo "<br/><font size=4 color=red><b>".$e->getMessage()."</b></font><br/><br/>";
  2717. }
  2718. } else if(!empty($_REQUEST['STATUS_INSTALACJI_NA_PARALLELS'])) {
  2719. try {
  2720. $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'[ -f "/var/root/.procesy5_install/started" ] && echo 1\' 2>/dev/null';
  2721. $result = execOnParallels($cmd);
  2722. if (!$result) throw new Exception("Błąd - automatyczna instalacja Procesy5 na wirtualnej maszynie ".$h->SERVER_ADDRESS." nie została uruchomiona.");
  2723. $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'[ -f "/var/root/.procesy5_install/completed" ] && echo 1\'';
  2724. $result = execOnParallels($cmd);
  2725. if ($result) {
  2726. echo "<br/><font size=4 color=green><b>Potencjalnie zainstalowano Procesy5 na ".$h->SERVER_ADDRESS."<br/>";
  2727. echo "Przetestuj na <a href='https://".$h->SERVER_ADDRESS."' target=_blank>https://".$h->SERVER_ADDRESS."</a>";
  2728. if (!preg_match('/^(.*)\.procesy5\.pl$/',$h->SERVER_ADDRESS,$matches)) {
  2729. echo " lub <a href='https://".$h->SERVER_ADDRESS.".procesy5.pl' target=_blank>https://".$h->SERVER_ADDRESS.".procesy5.pl</a>";
  2730. }
  2731. echo "</b></font><br/><br/>";
  2732. } else {
  2733. $cmd = 'prlctl exec '.$h->SERVER_ADDRESS.' \'ps ax|egrep "[i]nstaller.*_Procesy5|install\.bash"\'';
  2734. $result = execOnParallels($cmd);
  2735. if ($result) {
  2736. echo "<br/><font size=4 color=orange><b>Instalacja Procesy5 na ".$h->SERVER_ADDRESS." w trakcie. Odśwież stronę celem ponownej weryfikacji stanu
  2737. instalacji.</b></font><br/><br/>";
  2738. DEBUG_S(-3, "Uruchomione procesy", "<pre>".$result."</pre>");
  2739. $script = trim(substr($result, strrpos($result, " ")));
  2740. if (preg_match("/^\/tmp\/.*$/", $script)) {
  2741. $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'[ -f "'.$script.'" ] && cat "'.$script.'"\'';
  2742. $result = execOnParallels($cmd);
  2743. if ($result) DEBUG_S(-3, "Aktualnie wyzwolony skrypt", "<pre>".$script.":\n\n".$result."</pre>");
  2744. }
  2745. }
  2746. else echo "<br/><font size=4 color=red><b>Instalacja Procesy5 na ".$h->SERVER_ADDRESS." zakończyła się niepowodzeniem.</b></font><br/><br/>";
  2747. }
  2748. $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'cat /var/root/.procesy5_install/log\'';
  2749. $result = execOnParallels($cmd);
  2750. DEBUG_S(-3, "Log z instalatora", "<pre>".$result."</pre>");
  2751. echo "<br/>";
  2752. } catch (Exception $e) {
  2753. echo "<br/><font size=4 color=red><b>".$e->getMessage()."</b></font><br/><br/>";
  2754. }
  2755. } else {
  2756. if(!isset($_REQUEST['START'])||!isset($_REQUEST['STOP'])||empty($_REQUEST['ID']))
  2757. return 0;
  2758. if(!empty($_REQUEST['TEST'])) {
  2759. DEBUG_S(-3,'Komendy',$cmd);
  2760. } else {
  2761. foreach($cmd as $command_id=>$command) {
  2762. //if ($command_id==48) die("przerywam na $command_id");
  2763. if(!empty($_REQUEST['START'])) {
  2764. if($command_id<$_REQUEST['START'])
  2765. continue;
  2766. }
  2767. if(!empty($_REQUEST['STOP'])) {
  2768. if($command_id>$_REQUEST['STOP'])
  2769. die('Wymuszony stop na '.$_REQUEST['STOP']);
  2770. }
  2771. if($h->INSTALL_COMPLETE_POINT>$command_id-1) {
  2772. echo ",{$command_id}";
  2773. continue; //ignorujemy wykonane z powodzeniem dzialania
  2774. }
  2775. //! command['rsh']
  2776. if(isset($command['rsh'])) {
  2777. $exec=SSH_COMMAND_REMOTE_CREATE($h->ADMIN_USERNAME,$h->SERVER_ADDRESS_IP,$h->ADMIN_USERNAME_PASSWD,$command['rsh']);
  2778. DEBUG_S(-3,$command_id.':in '.htmlspecialchars(str_replace(array($h->ADMIN_USERNAME_PASSWD,str_replace('!','\!',$h->ADMIN_USERNAME_PASSWD)),'xxxxxx',$exec)),str_replace($h->ADMIN_USERNAME_PASSWD,'xxxxxx',$exec));
  2779. flush();
  2780. $out="";$exit="";
  2781. exec($exec,$out,$exit);
  2782. DEBUG_S(-3,$command_id.':out of ',array($out,$exit));
  2783. flush();
  2784. } else if(isset($command['scp'])) {
  2785. $command_out='/opt/local/bin/sshpass -p '.$h->ADMIN_USERNAME_PASSWD.' /usr/bin/scp -v -3 -o StrictHostKeyChecking=no '.$command['scp'][0].' '.$h->ADMIN_USERNAME.'@' . $h->SERVER_ADDRESS_IP . ':'.$command['scp'][1];
  2786. DEBUG_S(-3,$command_id.':in '.str_replace(array($h->ADMIN_USERNAME_PASSWD,str_replace('!','\!',$h->ADMIN_USERNAME_PASSWD)),'xxxxxx',$command_out),htmlspecialchars(str_replace($h->ADMIN_USERNAME_PASSWD,'xxxxxx',$command_out)));
  2787. flush();
  2788. exec($command_out,$out,$exit);
  2789. DEBUG_S(-3,$command_id.':out ',array($out,$exit));
  2790. flush();
  2791. } else if(isset($command['scp_root'])) {
  2792. $exec=SSH_COMMAND_REMOTE_CREATE($h->ADMIN_USERNAME,$h->SERVER_ADDRESS_IP,$h->ADMIN_USERNAME_PASSWD,' test -d /tmp/scp_root && rm -R /tmp/scp_root ; mkdir -p /tmp/scp_root ; chown '.$h->ADMIN_USERNAME.' /tmp/scp_root ');
  2793. exec($exec,$out,$exit);
  2794. $command_out='/opt/local/bin/sshpass -p '.$h->ADMIN_USERNAME_PASSWD.' /usr/bin/scp -r -v -3 -o StrictHostKeyChecking=no '.$command['scp_root'][0].' '.$h->ADMIN_USERNAME.'@' . $h->SERVER_ADDRESS_IP . ':/tmp/scp_root/';
  2795. exec($command_out,$out,$exit);
  2796. DEBUG_S(-3,$command_id.':out of '.str_replace(array($h->ADMIN_USERNAME_PASSWD,str_replace('!','\!',$h->ADMIN_USERNAME_PASSWD)),'xxxxxx',$command_out),array(htmlspecialchars(str_replace($h->ADMIN_USERNAME_PASSWD,'xxxxxx',$command_out)),$out,$exit));
  2797. if($exit==0) { flush();
  2798. $out="";$exit="";
  2799. $exec=SSH_COMMAND_REMOTE_CREATE($h->ADMIN_USERNAME,$h->SERVER_ADDRESS_IP,$h->ADMIN_USERNAME_PASSWD,' cd /tmp/scp_root/ && find . -name . -o -exec sh -c \'mv "\$@" "\$0"\' '.$command['scp_root'][1].' {} + -type d -prune ');
  2800. exec($exec,$out,$exit);
  2801. DEBUG_S(-3,$command_id.':out of '.str_replace(array($h->ADMIN_USERNAME_PASSWD,str_replace('!','\!',$h->ADMIN_USERNAME_PASSWD)),'xxxxxx',$command['rsh']),array(htmlspecialchars(str_replace($h->ADMIN_USERNAME_PASSWD,'xxxxxx',$exec)),$out,$exit));
  2802. }
  2803. flush();
  2804. set_time_limit(36000);
  2805. }
  2806. if($exit==0) {
  2807. array_slice($out, 0, 1000);
  2808. $sql="update SES_PROCESY5_A set A_RECORD_UPDATE_DATE=now(), A_RECORD_UPDATE_AUTHOR='".$_SESSION['ADM_ACCOUNT']."',INSTALL_COMPLETE_POINT='".$command_id."' , INSTALL_COMPLETE_POINT_INFO='".DB::_(implode('\n<br>',$out) )."' where ID='".$h->ID."' ";
  2809. DB::query($sql);
  2810. $sql="insert into SES_PROCESY5_A_HIST (ID_USERS2,A_RECORD_UPDATE_DATE,A_RECORD_UPDATE_AUTHOR,INSTALL_COMPLETE_POINT,INSTALL_COMPLETE_POINT_INFO) select '".$h->ID."',now(),A_RECORD_UPDATE_AUTHOR,INSTALL_COMPLETE_POINT,INSTALL_COMPLETE_POINT_INFO from SES_PROCESY5_A where ID='".$h->ID."' ";
  2811. DB::query($sql);
  2812. $command_id++;
  2813. } else {
  2814. $sql="update SES_PROCESY5_A set A_RECORD_UPDATE_DATE=now(), A_RECORD_UPDATE_AUTHOR='".$_SESSION['ADM_ACCOUNT']."', INSTALL_COMPLETE_POINT_INFO='ERROR!!!: ".DB::_(implode('\n<br>',$out) )."' where ID='".$h->ID."' ";
  2815. DB::query($sql);
  2816. $sql="insert into SES_PROCESY5_A_HIST (ID_USERS2,A_RECORD_UPDATE_DATE,A_RECORD_UPDATE_AUTHOR,INSTALL_COMPLETE_POINT,INSTALL_COMPLETE_POINT_INFO) select '".$h->ID."',now(),A_RECORD_UPDATE_AUTHOR,INSTALL_COMPLETE_POINT,INSTALL_COMPLETE_POINT_INFO from SES_PROCESY5_A where ID='".$h->ID."' ";
  2817. DB::query($sql);
  2818. die('error at '.$command_id);
  2819. }
  2820. }
  2821. }
  2822. }
  2823. }
  2824. }