(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"; // powyższe instaluje się tak : //+ zakladamy konto w ITUNES na KLIENTA lub korzystamy z konta prezesa energo@me.com!!! TODO do wyjasnienia z zestawem pakietow //+ Sciagamy xCODE z ITUNES (SKRYPT SAM SCIAGA LOKALNIE GO MAMY) //+ Aktualizujemy xCODE o ConsoleUtils! (SKRYPT SAM GO SCIAGA) //Ściągnij MACPORTS (sciaga sie instalacja macowa i dziala prosto) //#sciagnij z https://distfiles.macports.org/MacPorts/MacPorts-2.1.3-10.8-MountainLion.pkg //Ustal konto systemowe firmowe podstawowe - nazwa server zawsze , haslo indywodualne - zapisz w kontatkach pod nazwa serwera (TODO) //Ustal dostęp dla tego konta aby można było się logować SSH oraz VNC , ustal haslo VNC - też zapisz //PLAN: //MAC OS 1.0 INSTALACJA SE - Najpierw isntalujemy pakiet SERVER z ITUNES (na poczatku opisane) //MAC OS 1.01 Konsolowe drobne poprawki //MAC OS 1.1 INSTALACJA SE - //MAC OS 1.3 FIREWALL konfiguracja serwera z SE i BAZA DANYCH //MAC OS 2. instalacja mysql //MAC OS 2.1 instalacja phpMyAdmin //MAC OS 3. instalacja webmaila roundcube //#########!!!! POCZATEK INSTALACJI !!!! class INSTALL_SES_PROCESY_A { //make option for sgencoder (several domains) --domain '.$h->SERVER_ADDRESS_SHORT.' -r *.php function get_same_domains_for_install($SERVER_ADDRESS_SHORT, $SERVER_ADDRESS = null) { $domainList = self::fetch_same_domains_for_install($SERVER_ADDRESS_SHORT, $SERVER_ADDRESS); $argDomain = array(); foreach ($domainList as $domain) { $argDomain[] = ' --domain ' . $domain; } return implode(' ', $argDomain); } function fetch_same_domains_for_install($SERVER_ADDRESS_SHORT, $SERVER_ADDRESS = null) { $domainList = array(); if(strlen($SERVER_ADDRESS_SHORT)==0) die('Error with server address short'); $res=DB::query("select SERVER_ADDRESS_IP from SES_PROCESY5_A where SERVER_ADDRESS_SHORT='".$SERVER_ADDRESS_SHORT."'"); while($h=DB::fetch($res)) { $res2=DB::query("select SERVER_ADDRESS_SHORT from SES_PROCESY5_A where SERVER_ADDRESS_IP='".$h->SERVER_ADDRESS_IP."'"); while($h2=DB::fetch($res2)) { $domainList[] = $h2->SERVER_ADDRESS_SHORT; } } if ($SERVER_ADDRESS && (!preg_match('/^(.*)\.procesy5\.pl$/', $SERVER_ADDRESS))) { $subDomainP5 = '' . $SERVER_ADDRESS . '.procesy5.pl'; if (!in_array($subDomainP5, $domainList)) $domainList[] = $subDomainP5; } $domainList[] = '127.0.0.1'; $domainList[] = 'localhost'; return $domainList; } } function SSH_COMMAND_REMOTE_CREATE($username,$host,$password,$command) { //return '/opt/local/bin/sshpass -p '.$password.' ssh -o StrictHostKeyChecking=no '.$username.'@'.$host.' < Label org.icinga ProgramArguments /usr/local/icinga/bin/icinga /usr/local/icinga/etc/icinga.cfg KeepAlive \' > /Library/LaunchDaemons/org.icinga.plist'; $cmd[]['rsh']='mkdir /Library/Server/Web/Data/Sites/Default/icinga/rw'; */ // $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 // $cmd[]['rsh']='cd /usr/local/icinga/libexec && chmod +s ./check_dhcp'; // $cmd[]['rsh']='cd /usr/local/icinga/libexec && chown root ./check_dhcp'; // $cmd[]['rsh']='cd /usr/local/icinga/libexec && chmod u+x ./check_dhcp '; // // $cmd[]['rsh']='mkdir -p /Library/Server/Web/Data/Sites/Default/icinga/rw'; // $cmd[]['rsh']='touch /Library/Server/Web/Data/Sites/Default/icinga/rw/icinga.cmd'; // $cmd[]['rsh']='chmod 0777 /Library/Server/Web/Data/Sites/Default/icinga/rw'; // // $cmd[]['rsh']='chown -R _www /usr/local/icinga/'; // $cmd[]['rsh']='launchctl load /Library/LaunchDaemons/org.icinga.plist' ; // $cmd[]['rsh']='launchctl start org.icinga' ; /* //! instalowanie nconfa $cmd[]['rsh']=' port install p5.16-dbd-mysql'; $cmd[]['rsh']=' port install p5-dbd-mysql'; $cmd[]['rsh']=' mysqladmin -uroot -p'.$ADMIN_USERNAME_PASSWD.' create nconf '; $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/nconf.tar.gz','/Library/Server/Web/Data/Sites/Default'); $cmd[]['rsh']=' cd /Library/Server/Web/Data/Sites/Default && tar -zxpvf nconf.tar.gz'; $cmd[]['rsh']=' echo " " > /Library/Server/Web/Data/Sites/Default/nconf/config/.file_accounts.php'; $cmd[]['rsh']=' echo ",cn=users,'.$SERVER_ADDRESS_LDAP_DC.'\"); define(\'USER_REPLACEMENT\', \"\"); define(\'GROUP_DN\', \"cn=groups,'.$SERVER_ADDRESS_LDAP_DC.'\"); define(\'ADMIN_GROUP\', \"cn=workgroup\"); define(\'USER_GROUP\', \"cn=workgroup\"); define(\'AUTH_SQLQUERY_USER\',null); define(\'AUTH_SQLQUERY_ADMIN\',null); ?>" > /Library/Server/Web/Data/Sites/Default/nconf/config/authentication.php'; $cmd[]['rsh']=' echo " [extract config] type = local source_file = \"/Library/Server/Web/Data/Sites/Default/nconf/output/NagiosConfig.tgz\" target_file = \"/usr/local/icinga/etc/conf.d/\" action = extract " > /Library/Server/Web/Data/Sites/Default/nconf/config/deployment.ini'; $cmd[]['rsh']=' echo "" > /Library/Server/Web/Data/Sites/Default/nconf/config/mysql.php'; $cmd[]['rsh']=' echo "" > /Library/Server/Web/Data/Sites/Default/nconf/config/nconf.php'; $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; $cmd[]['rsh']=' rm -R /Library/Server/Web/Data/Sites/Default/nconf/INSTALL*'; $cmd[]['rsh']=' rm -R /Library/Server/Web/Data/Sites/Default/nconf/UPDATE*'; $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' ; $cmd[]['rsh']=' chmod -R 0777 /Library/Server/Web/Data/Sites/Default/nconf/temp'; $cmd[]['rsh']=' chown -R _www /Library/Server/Web/Data/Sites/Default/nconf'; $cmd[]['rsh']=' echo " -- dodajemy Kolumne do powiazania numeru zasobu do monitorowania z bazy zasobow, bedzie trzeba miec jeszcze odznaczneie numeru Device alter ignore table nconf.ConfigItems add A_RECORD_CREATE_AUTHOR char(25) ; alter ignore table nconf.ConfigAttrs add A_RECORD_CREATE_AUTHOR char(25) ; alter ignore table nconf.ConfigClasses add A_RECORD_CREATE_AUTHOR char(25) ; alter ignore table nconf.ConfigValues add A_RECORD_CREATE_AUTHOR char(25) ; alter ignore table nconf.ItemLinks add A_RECORD_CREATE_AUTHOR char(25) ; alter ignore table nconf.ConfigItems add CRM_LISTA_ZASOBOW_ID int(11) ; alter ignore table nconf.ConfigItems add DEVICES_ID int(11) ; " | mysql -D nconf -uroot -p'.$ADMIN_USERNAME_PASSWD ; $cmd[]['rsh']=' echo " -- zapytanie do importu z SE zasobow oraz urzadzen do monitoringu do nconfa do icinga -- w razie co mozna usunac dodane rekordy w taki sposob delete FROM nconf.\\`ConfigValues\\` WHERE \\`A_RECORD_CREATE_AUTHOR\\` like \'SE_IMPORT\'; delete FROM nconf.\\`ItemLinks\\` WHERE \\`A_RECORD_CREATE_AUTHOR\\` like \'SE_IMPORT\'; delete FROM nconf.\\`ConfigItems\\` WHERE \\`A_RECORD_CREATE_AUTHOR\\` like \'SE_IMPORT\'; delete FROM nconf.\\`ConfigAttrs\\` WHERE \\`A_RECORD_CREATE_AUTHOR\\` like \'SE_IMPORT\'; delete FROM nconf.\\`ConfigClasses\\` WHERE \\`A_RECORD_CREATE_AUTHOR\\` like \'SE_IMPORT\'; -- bierzemy z zasobow dane tylko takie, ktore nie maja powiazanych DEVICES (bierzemy tylko devices) insert into nconf.ConfigItems ( id_item , fk_id_class , DEVICES_ID,A_RECORD_CREATE_AUTHOR) select \'\', 1, DEVICES.ID , \'SE_IMPORT\' from '.$REMOTE_FOLDER_ROOT.'.DEVICES left join nconf.ConfigItems as ConfigItems_2 on ConfigItems_2.DEVICES_ID=DEVICES.ID where ConfigItems_2.DEVICES_ID is null ; -- dodajemy zasoby do monitoringu w inteligentny sposob razem z waznymi parametrami - jak to widac w zapytaniu insert ignore into nconf.ConfigValues ( attr_value, fk_id_attr, fk_id_item, A_RECORD_CREATE_AUTHOR ) select if( ConfigAttrs.Attr_name like \'%host_name%\' , 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) , if( ConfigAttrs.Attr_name like \'alias\', \\`DEV\\`.\\`S_IP\\`, if( ConfigAttrs.Attr_name like \'address\', \\`DEV\\`.\\`S_IP\\`, if( ConfigAttrs.Attr_name like \'host_is_collector\',\'no\',\'\') ) ) ) , ConfigAttrs.id_attr , ConfigItems.id_item ,\'SE_IMPORT\' from se_feromedia24_com.DEVICES as DEV left join '.$REMOTE_FOLDER_ROOT.'.CRM_LISTA_ZASOBOW as CLZ on CLZ.ID=DEV.CRM_LISTA_ZASOBOW_ID left join nconf.ConfigAttrs on ConfigAttrs.Attr_name 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\' left join nconf.ConfigItems as ConfigItems on ConfigItems.DEVICES_ID=DEV.ID -- left join '.$REMOTE_FOLDER_ROOT.'.DEVICES as DEVICES on DEVICES.CRM_LISTA_ZASOBOW_ID=CLZ.ID where DEV.S_IP like \'%_\'; -- dodajemy potrzebne wpisy odnosnie klasy monitorowania insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr, A_RECORD_CREATE_AUTHOR ) select ConfigItems.id_item , \'1\' , ConfigAttrs.id_attr , \'SE_IMPORT\' from nconf.ConfigItems left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'monitored_by\' and ConfigAttrs.fk_id_class=\'1\' where ConfigItems.DEVICES_ID>0 ; -- kolejny istotny parametr insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr , A_RECORD_CREATE_AUTHOR) select ConfigItems.id_item , ConfigValues.fk_id_item , ConfigAttrs.id_attr , \'SE_IMPORT\' from nconf.ConfigItems left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'parents\' and ConfigAttrs.fk_id_class=\'1\' left join nconf.ConfigAttrs as ConfigAttrs2 on ConfigAttrs2.attr_name=\'host_name\' and ConfigAttrs.fk_id_class=\'1\' left join nconf.ConfigValues on ConfigValues.attr_value=\'localhost\' and fk_id_attr=ConfigAttrs2.id_attr where ConfigItems.DEVICES_ID>0 and ConfigValues.fk_id_item is not null; -- # OS domyslnie LINUX 18 , trzeba wziac z ConfigClasses config_class=\'os\' -> id_class, i poszukac ConfigItems.id_item; insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr, A_RECORD_CREATE_AUTHOR ) select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr , \'SE_IMPORT\' from nconf.ConfigItems left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'os\' and ConfigAttrs.fk_id_class=\'1\' left join nconf.ConfigClasses on ConfigClasses.config_class=ConfigAttrs.attr_name left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class where ConfigItems.DEVICES_ID>0 group by ConfigItems.id_item ; -- #host-preset==75 , trzeba wziac z ConfigClasses config_class=\'os\' -> id_class, i poszukac ConfigItems.id_item; insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr, A_RECORD_CREATE_AUTHOR ) select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr ,\'SE_IMPORT\' from nconf.ConfigItems left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'host-preset\' and ConfigAttrs.fk_id_class=\'1\' left join nconf.ConfigClasses on ConfigClasses.config_class=ConfigAttrs.attr_name left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class where ConfigItems.DEVICES_ID>0 group by ConfigItems.id_item; -- #check_period==19 , trzeba wziac kakis time_period z Classes; insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr , A_RECORD_CREATE_AUTHOR) select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr ,\'SE_IMPORT\' from nconf.ConfigItems left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'check_period\' and ConfigAttrs.fk_id_class=\'1\' left join nconf.ConfigClasses on ConfigClasses.config_class=\'timeperiod\' left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class where ConfigItems.DEVICES_ID>0 group by ConfigItems.id_item; -- #contact_groups==22 , insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr, A_RECORD_CREATE_AUTHOR ) select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr,\'SE_IMPORT\' from nconf.ConfigItems left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'contact_groups\' and ConfigAttrs.fk_id_class=\'1\' left join nconf.ConfigClasses on ConfigClasses.config_class=\'contactgroup\' left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class where ConfigItems.DEVICES_ID>0 group by ConfigItems.id_item; -- # use host template(s) to inherit properties from - szukamy ConfigValues.attr_value=\'linux-server\' z atrybutem 108(name) insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr, A_RECORD_CREATE_AUTHOR) select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr,\'SE_IMPORT\' from nconf.ConfigItems left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'use\' and ConfigAttrs.fk_id_class=\'1\' left join nconf.ConfigAttrs as ConfigAttrs_name on ConfigAttrs_name.attr_name=\'name\' and ConfigAttrs_name.fk_id_class=\'14\' left join nconf.ConfigValues on ConfigValues.attr_value=\'linux-server\' and ConfigValues.fk_id_attr=ConfigAttrs_name.id_attr left join nconf.ConfigClasses on ConfigClasses.config_class=\'host-template\' left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class and ConfigValues.fk_id_item=ConfigItems2.id_item where ConfigItems.DEVICES_ID>0 group by ConfigItems.id_item; -- bierzemy z zasobow dane tylko takie, ktore nie maja powiazanych DEVICES (TODO trzeba dorzucic obsluge tego) insert into nconf.ConfigItems ( id_item , fk_id_class , CRM_LISTA_ZASOBOW_ID , A_RECORD_CREATE_AUTHOR) select \'\', 1, CRM_LISTA_ZASOBOW.ID ,\'SE_IMPORT\' from '.$REMOTE_FOLDER_ROOT.'.CRM_LISTA_ZASOBOW left join nconf.ConfigItems as ConfigItems_2 on ConfigItems_2.CRM_LISTA_ZASOBOW_ID=CRM_LISTA_ZASOBOW.ID where CRM_LISTA_ZASOBOW.\\`TYPE\\`=\'SERWER\' and ConfigItems_2.CRM_LISTA_ZASOBOW_ID is null ; -- dodajemy zasoby do monitoringu w inteligentny sposob razem z waznymi parametrami - jak to widac w zapytaniu insert ignore into nconf.ConfigValues ( attr_value, fk_id_attr, fk_id_item , A_RECORD_CREATE_AUTHOR ) select if( ConfigAttrs.Attr_name like \'%host_name%\' , left(replace(replace(replace(replace(replace(replace(concat(\'[\',\\`CLZ\\`.ID,\'] SERWER \',CLZ.\\`DESC\\`,\' \',CLZ.\\`OPIS\\`),\',\',\'\'),\'/\',\'\'),\'(\',\'\'),\')\',\'\'),\'%\',\'\'),\'?\',\'\'),40) , if( ConfigAttrs.Attr_name like \'alias\', \\`CLZ\\`.\\`DESC\\`, if( ConfigAttrs.Attr_name like \'address\', \\`CLZ\\`.\\`DESC\\`, if( ConfigAttrs.Attr_name like \'host_is_collector\',\'no\',\'\') ) ) ) , ConfigAttrs.id_attr , ConfigItems.id_item , \'SE_IMPORT\' from '.$REMOTE_FOLDER_ROOT.'.CRM_LISTA_ZASOBOW as CLZ left join nconf.ConfigAttrs on ConfigAttrs.Attr_name 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\' left join nconf.ConfigItems as ConfigItems on ConfigItems.CRM_LISTA_ZASOBOW_ID=CLZ.ID left join '.$REMOTE_FOLDER_ROOT.'.DEVICES as DEVICES on DEVICES.CRM_LISTA_ZASOBOW_ID=CLZ.ID where CLZ.\\`TYPE\\`=\'SERWER\' and DEVICES.CRM_LISTA_ZASOBOW_ID is NULL; -- dodajemy potrzebne wpisy odnosnie klasy monitorowania insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr , A_RECORD_CREATE_AUTHOR ) select ConfigItems.id_item , \'1\' , ConfigAttrs.id_attr , \'SE_IMPORT\' from nconf.ConfigItems left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'monitored_by\' and ConfigAttrs.fk_id_class=\'1\' where ConfigItems.CRM_LISTA_ZASOBOW_ID>0 ; -- kolejny istotny parametr insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr , A_RECORD_CREATE_AUTHOR ) select ConfigItems.id_item , ConfigValues.fk_id_item , ConfigAttrs.id_attr , \'SE_IMPORT\' from nconf.ConfigItems left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'parents\' and ConfigAttrs.fk_id_class=\'1\' left join nconf.ConfigAttrs as ConfigAttrs2 on ConfigAttrs2.attr_name=\'host_name\' and ConfigAttrs.fk_id_class=\'1\' left join nconf.ConfigValues on ConfigValues.attr_value=\'localhost\' and fk_id_attr=ConfigAttrs2.id_attr where ConfigItems.CRM_LISTA_ZASOBOW_ID>0 and ConfigValues.fk_id_item is not null; -- # OS domyslnie LINUX 18 , trzeba wziac z ConfigClasses config_class=\'os\' -> id_class, i poszukac ConfigItems.id_item; insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr , A_RECORD_CREATE_AUTHOR ) select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr ,\'SE_IMPORT\' from nconf.ConfigItems left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'os\' and ConfigAttrs.fk_id_class=\'1\' left join nconf.ConfigClasses on ConfigClasses.config_class=ConfigAttrs.attr_name left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class where ConfigItems.CRM_LISTA_ZASOBOW_ID>0 group by ConfigItems.id_item ; -- #host-preset==75 , trzeba wziac z ConfigClasses config_class=\'os\' -> id_class, i poszukac ConfigItems.id_item; insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr , A_RECORD_CREATE_AUTHOR ) select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr ,\'SE_IMPORT\' from nconf.ConfigItems left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'host-preset\' and ConfigAttrs.fk_id_class=\'1\' left join nconf.ConfigClasses on ConfigClasses.config_class=ConfigAttrs.attr_name left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class where ConfigItems.CRM_LISTA_ZASOBOW_ID>0 group by ConfigItems.id_item; -- #check_period==19 , trzeba wziac kakis time_period z Classes; insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr , A_RECORD_CREATE_AUTHOR ) select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr ,\'SE_IMPORT\' from nconf.ConfigItems left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'check_period\' and ConfigAttrs.fk_id_class=\'1\' left join nconf.ConfigClasses on ConfigClasses.config_class=\'timeperiod\' left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class where ConfigItems.CRM_LISTA_ZASOBOW_ID>0 group by ConfigItems.id_item; -- #contact_groups==22 , insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr , A_RECORD_CREATE_AUTHOR ) select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr ,\'SE_IMPORT\' from nconf.ConfigItems left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'contact_groups\' and ConfigAttrs.fk_id_class=\'1\' left join nconf.ConfigClasses on ConfigClasses.config_class=\'contactgroup\' left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class where ConfigItems.CRM_LISTA_ZASOBOW_ID>0 group by ConfigItems.id_item; -- # use host template(s) to inherit properties from - szukamy ConfigValues.attr_value=\'linux-server\' z atrybutem 108(name) insert ignore into nconf.ItemLinks ( fk_id_item,fk_item_linked2,fk_id_attr , A_RECORD_CREATE_AUTHOR ) select ConfigItems.id_item , ConfigItems2.id_item , ConfigAttrs.id_attr ,\'SE_IMPORT\' from nconf.ConfigItems left join nconf.ConfigAttrs on ConfigAttrs.attr_name=\'use\' and ConfigAttrs.fk_id_class=\'1\' left join nconf.ConfigAttrs as ConfigAttrs_name on ConfigAttrs_name.attr_name=\'name\' and ConfigAttrs_name.fk_id_class=\'14\' left join nconf.ConfigValues on ConfigValues.attr_value=\'linux-server\' and ConfigValues.fk_id_attr=ConfigAttrs_name.id_attr left join nconf.ConfigClasses on ConfigClasses.config_class=\'host-template\' left join nconf.ConfigItems as ConfigItems2 on ConfigItems2.fk_id_class=ConfigClasses.id_class and ConfigValues.fk_id_item=ConfigItems2.id_item where ConfigItems.CRM_LISTA_ZASOBOW_ID>0 group by ConfigItems.id_item; " > /Library/Server/Web/Data/Sites/Default/nconf/ADD-ONS/import_from_se_to_nconf.sql ' ; //! nconf import do incingi z SE/devices urzadzen do monitoringu */ //@2014-03-14 sqix: funkcja zglasza errory do poprawy TODO //! uruchomienie backupu USB jezeli wybrana opcja $BACKUP_USB_DEVICE //$cmd[]['rsh']='for a in `mount |grep \'/Volumes\' |awk \'{ print $1 }\'`; do // [ \''.$BACKUP_USB_DEVICE.'\' = \'YES\' ] && diskutil info $a |grep USB >/dev/null && { // mountpath=`diskutil info /dev/disk1s3 |grep \'Mount Point\' |sed s/.*Mount\ Point:\ *//g` // tmutil setdestination $mountpath // tmutil enable // } || echo "Not used backup device" // done //'; return $cmd; } //@2015-08 instalator dla instalacji XSLa - java + saxon 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) { //todo jdk do stuff // $cmd[]['scp']=array($INSTALL_ROOT,'/stuff/jdk-8u51-macosx-x64.dmg','/tmp/jdk-8u51-macosx-x64.dmg'); // $cmd[]['rsh']='hdiutil mount /tmp/jdk-8u51-macosx-x64.dmg -mountpoint /Volumes/jdk-8u51-macosx-x64'; // $cmd[]['rsh']='installer -package /Volumes/jdk-8u51-macosx-x64/JDK*.pkg -target "/" -verbose'; //current 2017-03 $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/jre-8u121-macosx-x64.dmg','/tmp/jre-8u121-macosx-x64.dmg'); $cmd[]['rsh']='hdiutil mount /tmp/jre-8u121-macosx-x64.dmg -mountpoint /Volumes/jre-8u121-macosx-x64'; $cmd[]['rsh']='installer -package /Volumes/jre-8u121-macosx-x64/Java\ 8\ Update\ 121.app/Contents/Resources/JavaAppletPlugin.pkg -target "/" -verbose'; //current dla dzialania dity $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/jdk-8u121-macosx-x64.dmg','/tmp/jdk-8u121-macosx-x64.dmg'); $cmd[]['rsh']='hdiutil mount /tmp/jdk-8u121-macosx-x64.dmg -mountpoint /Volumes/jdk-8u121-macosx-x64.dmg'; $cmd[]['rsh']='installer -package /Volumes/jdk-8u121-macosx-x64.dmg/JDK\ 8\ Update\ 121.pkg -target "/" -verbose'; $cmd[]['rsh']='port install saxon'; //todo repo-13 do stuff $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/expath-repo-0.13.1.zip','/tmp/expath-repo-0.13.1.zip'); $cmd[]['rsh']='unzip /tmp/expath-repo-0.13.1.zip'; $cmd[]['rsh']='export SAXON_HOME=/opt/local/share/java/'; $cmd[]['rsh']='mkdir -p /opt/local/share/expath'; $cmd[]['rsh']='chmod -R o+rwx /opt/local/share/expath'; //todo expath do stuff expath-http-client-saxon-0.11.0.zip /* - jest inna struktura pliku - zupelnie inaczej dziala - nie ma BIN - do weryfikacji $cmd[]['scp_root']=array($INSTALL_ROOT,'/stuff/expath-http-client-saxon-0.12.0.zip','/tmp/expath-http-client-saxon-0.12.0.zip'); $cmd[]['rsh']='cd /tmp && unzip /tmp/expath-http-client-saxon-0.12.0.zip'; $cmd[]['rsh']='cd /tmp/expath-http-client-saxon-0.12.0/bin/ chmod 755 xrepo ./xrepo create /opt/local/share/expath/repo '; */ /* @2017-03 bindera: remuje, bo nie pewny to jest zestaw $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'); $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`'; $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\' \'JNIBundledAppCommandLine\' '; $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 '; $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 '; $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/ '; $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'; $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'; */ return $cmd; } 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) { //komendy do stworzenia komponentu dot MYSQL $cmd[]['rsh']='cat /etc/sudoers |grep "'.$ADMIN_USERNAME.' ALL = NOPASSWD: /usr/bin/su" || echo "'.$ADMIN_USERNAME.' ALL = NOPASSWD: /usr/bin/su " >> /etc/sudoers; cat /etc/sudoers |grep "'.$ADMIN_USERNAME.' ALL = NOPASSWD: /usr/bin/su"'; $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 " >> /etc/sudoers; cat /etc/sudoers |grep "_www ALL = NOPASSWD: /Applications/Server.app/Contents/ServerRoot/usr/sbin/calendarserver_manage_principals"'; $cmd[]['rsh']='cat /etc/sudoers |grep "_www ALL = NOPASSWD: /usr/bin/dscl" || echo "_www ALL = NOPASSWD: /usr/bin/dscl " >> /etc/sudoers; cat /etc/sudoers |grep "_www ALL = NOPASSWD: /usr/bin/dscl"'; $cmd[]['rsh']='cat /etc/sudoers |grep "_www ALL = NOPASSWD: /usr/bin/pwpolicy" || echo "_www ALL = NOPASSWD: /usr/bin/pwpolicy " >> /etc/sudoers; cat /etc/sudoers |grep "_www ALL = NOPASSWD: /usr/bin/pwpolicy"'; $cmd[]['rsh']='cat /etc/sudoers |grep "_www ALL = NOPASSWD: /usr/sbin/createhomedir" || echo "_www ALL = NOPASSWD: /usr/sbin/createhomedir " >> /etc/sudoers; cat /etc/sudoers |grep "_www ALL = NOPASSWD: /usr/sbin/createhomedir"'; $cmd[]['rsh']='cat /etc/sudoers |grep "_www ALL = NOPASSWD: /sbin/pfctl" || echo "_www ALL = NOPASSWD: /sbin/pfctl " >> /etc/sudoers; cat /etc/sudoers |grep "_www ALL = NOPASSWD: /sbin/pfctl"'; // $cmd[]['rsh']='echo \\$UID'; // $cmd[]['rsh']='echo "Uruchamiam zdalna procedure instalacji SE " |wall '; $cmd[]['rsh']='launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist'; //wyszukowanie plikow //@2016-07 kopia bezpieczenstwa bazy danych mysql TODO bzyk $cmd[]['rsh']='which mysqldump || exit 0 && echo "select 1+1;" | mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' || exit 0 && mysqldump -E -R --single-transaction --triggers --allow-keywords -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' \''.$REMOTE_FOLDER_ROOT.'\' > "/var/root/'.$REMOTE_FOLDER_ROOT.'.`date \'+%Y-%m-%d\'`.mysqldump "'; //ewentualna proba upgrejdowania instniejacego portu //TO MOVE TO INSTALL_GETCOMMANDS_COMP_PORT_MYSQL 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'"; //@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'); //@2014-10 really needed??? if($SERVER_VERSION=='10.8MountainLion') $cmd[]['rsh']='hdiutil mount /tmp/xcode462_cltools_10_86938259a.dmg -mountpoint /Volumes/xcodetools'; //@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'; //todo use sw_vers -productVersion -> shows 10.11.6 for elcapitain etc... if($SERVER_VERSION=='10.8MountainLion') { $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'); $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'; $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").' exit 1 } '; } else if($SERVER_VERSION=='10.10Yosemite') { $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'); $cmd[]['rsh']='installer -package /tmp/MacPorts-2.3.3-10.10-Yosemite.pkg -target "/" -verbose'; } else if($SERVER_VERSION=='10.11-ElCapitan') { $cmd[]['scp']=array($INSTALL_ROOT.'/stuff/MacPorts-2.3.4-10.11-ElCapitan.pkg','/tmp/MacPorts-2.3.4-10.11-ElCapitan.pkg'); $cmd[]['rsh']='installer -package /tmp/MacPorts-2.3.4-10.11-ElCapitan.pkg -target "/" -verbose'; } else if($SERVER_VERSION=='10.12-Sierra') { $cmd[]['scp']=array($INSTALL_ROOT.'/stuff/MacPorts-2.3.5-10.12-Sierra.pkg','/tmp/MacPorts-2.3.5-10.12-Sierra.pkg'); $cmd[]['rsh']='installer -package /tmp/MacPorts-2.3.5-10.12-Sierra.pkg -target "/" -verbose'; } else { $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'); $cmd[]['rsh']='installer -package /tmp/MacPorts-2.3.2-10.9-Mavericks.pkg -target "/" -verbose ';// $cmd[]['rsh']='installer -package /tmp/MacPorts-2.2.0-10.8-MountainLion.pkg -target "'.$SERVER_MOUNT_POINT_ROOT.'" -verbose'; } $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 $cmd[]['rsh']='mysql_ver=`port installed active 2>/dev/null|grep mysql55-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'; $cmd[]['rsh']='port selfupdate || echo OK '; $cmd[]['rsh']='port upgrade outdated || echo "Nothing to upgrade"'; $cmd[]['rsh']='port selfupdate'; if($SERVER_VERSION=='10.10Yosemite') { $cmd[]['rsh']='port install ImageMagick'; $cmd[]['rsh']='port install php55-imagick'; $cmd[]['rsh']='port install php55-imagick'; $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 . '; $cmd[]['rsh']='cat /etc/php.ini |grep "extension=imagick.so" || echo "\nextension=imagick.so\n" >> /etc/php.ini'; } if($SERVER_VERSION=='10.11-ElCapitan') { $cmd[]['rsh']='port install ImageMagick'; $cmd[]['rsh']='port install php55-imagick'; $cmd[]['rsh']='port install php55-imagick'; // $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 . '; $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'; } if($SERVER_VERSION=='10.12-Sierra') { $cmd[]['rsh']='port install ImageMagick'; $cmd[]['rsh']='port install php56-imagick'; $cmd[]['rsh']='port install php56-imagick'; $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'; } // Modul ixed do SourceGuardian 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'; 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'; 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'; 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'; 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'; 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'; if($SERVER_VERSION=='10.12-Sierra') { $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/'); $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'; } $cmd[]['rsh']='serveradmin stop web && serveradmin start web'; //@2015-10-25 bindera: problemy po upgrade portow z niedzialajacym mysql - skip-networking- wykonanie instrukcji czyszczacych ten problem $cmd[]['rsh']='cat /opt/local/etc/mysql55/macports-default.cnf |grep "skip-networking" |grep -v "#" && ( sed -i.bak "s/skip-networking/#skip-networking/" /opt/local/etc/mysql55/macports-default.cnf killall mysqld ) || echo OK'; //EOF TO MOVE TO INSTALL_GETCOMMANDS_COMP_PORT_MYSQL $cmd[]['rsh']='cat /etc/paths |grep "/opt/local/bin" || echo "/opt/local/bin" >>/etc/paths'; $cmd[]['rsh']=' grep "/opt/local/bin" /etc/paths || echo "/opt/local/bin" >>/etc/paths'; //dodanie do sciezek $cmd[]['rsh']=" sed -i.bak \"s/PS1='\\\\\h:/PS1='\\\\\H:/g\" /etc/bashrc"; //zmiana wyswietlania kurosra hosta $cmd[]['rsh']='which wget || port install wget'; $cmd[]['rsh']='which joe || port install joe'; $cmd[]['rsh']='which gnutar || port install gnutar'; $cmd[]['rsh']='which gsed || port install gsed'; $cmd[]['rsh']='which csv2xml || port install csv2xml'; $cmd[]['rsh']='which xlsx2csv || port install xlsx2csv'; $cmd[]['rsh']='ln -s /opt/local/bin/gnutar /usr/sbin/gnutar || echo PASSED'; $cmd[]['rsh']='which apache-ant || port install apache-ant'; $cmd[]['rsh']='which md5sum || port install md5sha1sum'; $cmd[]['rsh']='which makepasswd || port install makepasswd'; return $cmd; } 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) { // ! instalacja mapservera oraz komponentow sluzacych do obslugi spatialnej //stuff/GDAL_Complete-1.11.dmg //stuff/cairo_Framework-1.12.2-1-2.dmg //stuff/FreeType_Framework-2.4.12-1-2.dmg //stuff/MapServer-6.0.3-1.dmg //stuff/mapserver-6.4.1.tar // $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/*','/Library/Server/Web/Data/Sites/Default/SE/'); /* $cmd[]['rsh']='hdiutil mount /Library/Server/Web/Data/Sites/Default/SE/stuff/GDAL_Complete-1.11.dmg -mountpoint /Volumes/GDAL_Complete-1.11'; $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'; $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'; $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'; $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'; $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'; $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'; $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'; */ /* $cmd[]['rsh']='hdiutil mount /Library/Server/Web/Data/Sites/Default/SE/stuff/JavaForOSX2014-001.dmg -mountpoint /Volumes/JavaForOSX2014-001'; $cmd[]['rsh']='installer -package /Volumes/JavaForOSX2014-001/*.pkg -target "/" -verbose';// $cmd[]['rsh']='installer -package /Volumes/xcodetools/Com* -target "'.$SERVER_MOUNT_POINT_ROOT.'" -verbose'; $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?? $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'; $cmd[]['rsh']='port install libpng'; $cmd[]['rsh']='cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs ; jdk=`ls | sort | tail -n 1`; mkdir -p /System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers ; 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 port install mapserver'; //$cmd[]['rsh']='port install mapserver'; */ // postgis by BZYK /* $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/postgis/PostgreSQL-9.3.4-1.dmg','/tmp/PostgreSQL-9.3.4-1.dmg'); $cmd[]['rsh']='hdiutil mount /tmp/PostgreSQL-9.3.4-1.dmg -mountpoint /Volumes/PostgreSQL'; $cmd[]['rsh']='installer -package /Volumes/PostgreSQL/PostgreSQL.pkg -target "/" -verbose'; $cmd[]['rsh']='hdiutil unmount /Volumes/PostgreSQL'; $cmd[]['rsh']='cd /usr/local/pgsql/data'; $cmd[]['rsh']='sudo -u _postgres /usr/local/pgsql/bin/initdb -U postgres -D /usr/local/pgsql/data --encoding=UTF8 --locale=C || echo PASSED'; $cmd[]['rsh']='sed -i ".bak" "s/.*listen_address.*#/listen_addresses = \'0.0.0.0\' #/g" /usr/local/pgsql/data/pg_hba.conf'; $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'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/postgis/GDAL_Complete-1.11.dmg','/tmp/GDAL_Complete-1.11.dmg'); $cmd[]['rsh']='hdiutil mount /tmp/GDAL_Complete-1.11.dmg -mountpoint /Volumes/GDAL_Complete'; $cmd[]['rsh']='installer -package "/Volumes/GDAL_Complete/GDAL Complete.pkg" -target "/" -verbose'; $cmd[]['rsh']='hdiutil unmount /Volumes/GDAL_Complete'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/postgis/PostGIS-2.1.3-2.dmg','/tmp/PostGIS-2.1.3-2.dmg'); $cmd[]['rsh']='hdiutil mount /tmp/PostGIS-2.1.3-2.dmg -mountpoint /Volumes/PostGIS'; $cmd[]['rsh']='installer -package "/Volumes/PostGIS/PostGIS.pkg" -target "/" -verbose'; $cmd[]['rsh']='hdiutil unmount /Volumes/PostGIS'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/postgis/JavaForOSX2014-001.dmg','/tmp/JavaForOSX2014-001.dmg'); $cmd[]['rsh']='hdiutil mount /tmp/JavaForOSX2014-001.dmg -mountpoint /Volumes/JavaForOSX'; $cmd[]['rsh']='installer -package "/Volumes/JavaForOSX/JavaForOSX.pkg" -target "/" -verbose'; $cmd[]['rsh']='hdiutil unmount /Volumes/JavaForOSX'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/postgis/org.postgresql.postgres.plist','/Library/LaunchDaemons/org.postgresql.postgres.plist'); $cmd[]['rsh']='launchctl load /Library/LaunchDaemons/org.postgresql.postgres.plist'; $cmd[]['rsh']='launchctl start org.postgresql.postgres'; $cmd[]['rsh']='/usr/local/pgsql/bin/psql -U postgres -c "create user root with password \''.$ADMIN_USERNAME_PASSWD.'\'" || echo PASSED'; $cmd[]['rsh']='sudo -u _postgres /usr/local/pgsql/bin/createdb -U postgres -O "root" "'.$REMOTE_FOLDER_ROOT.'" || echo PASSED'; $cmd[]['rsh']='/usr/local/pgsql/bin/psql -U postgres -d "'.$REMOTE_FOLDER_ROOT.'" -c "CREATE EXTENSION postgis;" || echo PASSED'; $cmd[]['rsh']='/usr/local/pgsql/bin/psql -U postgres -d "'.$REMOTE_FOLDER_ROOT.'" -c "CREATE EXTENSION postgis_topology;" || echo PASSED'; $cmd[]['rsh']='/usr/local/pgsql/bin/psql -U postgres -d "'.$REMOTE_FOLDER_ROOT.'" -c "CREATE EXTENSION fuzzystrmatch;" || echo PASSED'; $cmd[]['rsh']='/usr/local/pgsql/bin/psql -U postgres -d "'.$REMOTE_FOLDER_ROOT.'" -c "CREATE EXTENSION postgis_tiger_geocoder;" || echo PASSED'; */ // Nowy postgres/postgis by Bzyk @ 2015-06-05 $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/postgis2/Postgres-9.4.2.0.zip','/tmp/Postgres-9.4.2.0.zip'); $cmd[]['rsh']='unzip -o -d /Applications /tmp/Postgres-9.4.2.0.zip'; $cmd[]['rsh']='ls /var/db/postgres || mkdir /var/db/postgres'; $cmd[]['rsh']='chown _postgres /var/db/postgres'; $cmd[]['rsh']='cd /tmp sudo -u _postgres /Applications/Postgres.app/Contents/Versions/9.4/bin/initdb -U postgres -D /var/db/postgres --encoding=UTF8 --locale=C || echo PASSED'; $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'; $cmd[]['rsh']='sed -i ".bak" "s/.*listen_address.*#/listen_addresses = \'0.0.0.0\' #/g" /var/db/postgres/postgresql.conf'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/postgis2/org.postgres.plist','/Library/LaunchDaemons/org.postgres.plist'); $cmd[]['rsh']='launchctl load /Library/LaunchDaemons/org.postgres.plist'; $cmd[]['rsh']='/Applications/Postgres.app/Contents/Versions/9.4/bin/psql -U postgres -c "create user root with password \''.$ADMIN_USERNAME_PASSWD.'\'" || echo PASSED'; $cmd[]['rsh']='sudo -u _postgres /Applications/Postgres.app/Contents/Versions/9.4/bin/createdb -U postgres -O "root" "'.$REMOTE_FOLDER_ROOT.'" || echo PASSED'; $cmd[]['rsh']='/Applications/Postgres.app/Contents/Versions/9.4/bin/psql -U postgres -d "'.$REMOTE_FOLDER_ROOT.'" -c "CREATE EXTENSION postgis;" || echo PASSED'; $cmd[]['rsh']='/Applications/Postgres.app/Contents/Versions/9.4/bin/psql -U postgres -d "'.$REMOTE_FOLDER_ROOT.'" -c "CREATE EXTENSION postgis_topology;" || echo PASSED'; $cmd[]['rsh']='/Applications/Postgres.app/Contents/Versions/9.4/bin/psql -U postgres -d "'.$REMOTE_FOLDER_ROOT.'" -c "CREATE EXTENSION fuzzystrmatch;" || echo PASSED'; $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'; //TODO jakis test dodania bazy danych i czy dziala? $cmd[]['rsh']='rm -Rf /Library/Server/Web/Data/Sites/Default/pg || echo PASSED'; $cmd[]['rsh']='mkdir -p /Library/Server/Web/Data/Sites/Default/pg'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/postgis/phpPgAdmin-5.1.zip','/Library/Server/Web/Data/Sites/Default/pg/phpPgAdmin-5.1.zip'); $cmd[]['rsh']='unzip -o /Library/Server/Web/Data/Sites/Default/pg/phpPgAdmin-5.1.zip -d /Library/Server/Web/Data/Sites/Default/pg'; $cmd[]['rsh']='mv /Library/Server/Web/Data/Sites/Default/pg/phpPgAdmin-5.1/* /Library/Server/Web/Data/Sites/Default/pg'; $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'; //PGADMIN - to nie pg phpmyadmin! //$cmd[]['rsh']='port install wxWidgets-3.0'; //$cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/postgis/pgadmin3-1.18.1.tar.gz','/usr/src/pgadmin3-1.18.1.tar.gz'); //$cmd[]['rsh']='cd /usr/src/ && tar -zxpvf pgadmin3-1.18.1.tar.gz'; //$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'; //$cmd[]['rsh']='port install phppgadmin'; return $cmd; } 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) { $cmd[]['rsh']="cd /Library/Server/Web/Data/Sites/Default/SE/stuff && rm dita-ot-2.3.3.zip || echo PASSED"; $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 "; $cmd[]['rsh']="cd /Library/Server/Web/Data/Sites/Default/SE/stuff && rm dita-ot-2.3.3 || echo PASSED"; $cmd[]['rsh']="cd /Library/Server/Web/Data/Sites/Default/SE/stuff && unzip dita-ot-2.3.3.zip || echo PASSED"; $cmd[]['rsh']="cd /Library/Server/Web/Data/Sites/Default/SE/stuff/dita-ot-2.3.3 && ./startcmd.sh || echo PASSED"; return $cmd; } //@2016-07-17 TODO 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) { $cmd[]['rsh']='which mysqladmin && mysqladmin -f -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' drop '.$REMOTE_FOLDER_ROOT.'_wordpress || echo PASSED '; $cmd[]['rsh']="rm -Rf /Library/Server/Web/Data/Sites/Default/wordpress || echo PASSED"; return $cmd; } 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) { //@2016-05- bindera: dodajemy instalke wordpressa $cmd[]['rsh']="cd /Library/Server/Web/Data/Sites/Default && rm wordpress.tar.gz || echo PASSED"; $cmd[]['rsh']="cd /Library/Server/Web/Data/Sites/Default && wget https://wordpress.org/latest.tar.gz -O wordpress.tar.gz"; $cmd[]['rsh']="cd /Library/Server/Web/Data/Sites/Default && tar -zxpvf wordpress.tar.gz"; //@2016-07-28 watpliwe ustawienie permow dla www dla katalogu wordpress, bo nie daje tam .htaccess przy aktywacji?! $cmd[]['rsh']="cd /Library/Server/Web/Data/Sites/Default && chown -R _www wordpress"; // moved to UNINSTALL $cmd[]['rsh']='which mysqladmin && mysqladmin -f -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' drop '.$REMOTE_FOLDER_ROOT.'_wordpress || echo PASSED '; $cmd[]['rsh']='mysqladmin -h 127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' create '.$REMOTE_FOLDER_ROOT.'_wordpress || echo PASSE'; $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 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\''; $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 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\''; //@2016-07 aktywowany wordpress z cli nie wstawia .htaccess dobrego //teraz wylaczone z uwagi na test wp rewrite structure nizej z CLI /*$cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/wordpress && echo " RewriteEngine On RewriteBase /wordpress/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wordpress/index.php [L] " > .htaccess'; */ $cmd[]['rsh']='echo " /Library/Server/Web/Data/Sites/Default/wordpress/wp-config.php '; $cmd[]['rsh']='chmod -R o+rwx /Library/Server/Web/Data/Sites/Default/wordpress/wp-content'; $cmd[]['rsh']='chmod -R g+rwx /Library/Server/Web/Data/Sites/Default/wordpress/wp-content'; //aktywacja idzie nizej modulem CLI , ale niestety nie dziala, wiec tak aktywujemy //- 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'; //@2016-05-30 add by bzyk@imessage4energo $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"'; $cmd[]['rsh']='echo " web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.' = create web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':Listen:_array_index:0 ="0.0.0.0:80" web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':ServerName = www.'.$SERVER_ADDRESS_SHORT.' web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':ServerAdmin =admin@www.'.$SERVER_ADDRESS_SHORT.' web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':DirectoryIndex:_array_index:0= "index.html" web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':DirectoryIndex:_array_index:1= "index.php" web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':WebMail = yes web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':CustomLog:_array_index:0:Format = "%{User-agent}i" web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':CustomLog:_array_index:0:enabled = yes web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':CustomLog:_array_index:0:ArchiveInterval = 0 web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':CustomLog:_array_index:0:Path = "/private/var/log/httpd/access_log" web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':CustomLog:_array_index:0:Archive = yes web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':Directory:_array_id:/Library/WebServer/Documents:Options:Indexes = yes web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':Directory:_array_id:/Library/WebServer/Documents:Options:ExecCGI = no web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':Directory:_array_id:/Library/WebServer/Documents:AuthName = "Test Site" web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':ErrorLog:ArchiveInterval = 0 web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':ErrorLog:Path = "/private/var/log/httpd/error_log" web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':ErrorLog:Archive = no web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':Include:_array_index:0 = "/etc/httpd/httpd_squirrelmail.conf" web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':enabled = yes web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':ErrorDocument:_array_index:0:StatusCode = 404 web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':ErrorDocument:_array_index:0:Document = "/nwesite_notfound.html" web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':LogLevel = "warn" web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':IfModule:_array_id:mod_ssl.c:SSLEngine = no web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':IfModule:_array_id:mod_ssl.c:SSLPassPhrase = "" 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" web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.':DocumentRoot = "/Library/Server/Web/Data/Sites/Default/wordpress" web:Sites:_array_id:0.0.0.0\:80www.'.$SERVER_ADDRESS_SHORT.' " > addsite_wordpress.in '; //todo add site $cmd[]['rsh']='[ -f /tmp/wp-cli.phar ] && rm /tmp/wp-cli.phar || echo passed'; $cmd[]['rsh']='cd /tmp && wget https://raw.github.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -O wp-cli.phar'; $cmd[]['rsh']='chmod +x /tmp/wp-cli.phar'; $cmd[]['rsh']='mkdir -p /opt/local/wordpress/bin'; $cmd[]['rsh']='[ -f /opt/local/wordpress/bin/wp ] && rm /opt/local/wordpress/bin/wp || echo passed'; $cmd[]['rsh']='mv /tmp/wp-cli.phar /opt/local/wordpress/bin/wp'; //'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'; //aktywacja wordpressa modulem CLI - to nie dziala - aktywacja wget //$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' ; $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'; $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'; $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'; $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'; $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'; $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'; $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'; $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'; //! wordpress procesy5 plugin begin! //@2016-05 TODO póki nie ma danych z clone repo - tutaj wrzucamy wersje aktualna modulu do wordpressa $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/stuff/p5_BeeCtrl.zip || echo PASSED'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/p5_BeeCtrl.zip','/Library/Server/Web/Data/Sites/Default/SE/stuff/'); $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'; //is-installed $cmd[]['rsh']='/opt/local/wordpress/bin/wp plugin activate p5_BeeCtrl --allow-root --path=/Library/Server/Web/Data/Sites/Default/wordpress || echo PASSED'; $cmd[]['rsh']='/opt/local/wordpress/bin/wp plugin activate p5_BeeCtrl --allow-root --path=/Library/Server/Web/Data/Sites/Default/wordpress || echo PASSED'; //dodanie do konfiga tabeli do modulu domyslnych wartosci URL do api-wfs $cmd[]['rsh']='echo "CREATE TABLE IF NOT EXISTS \`wp_p5-BeeCtrl_config\` ( \`id\` int(10) unsigned NOT NULL, \`property\` varchar(255) NOT NULL, \`value\` varchar(255) NOT NULL, \`isActive\` tinyint(1) NOT NULL, \`created_at\` timestamp NULL DEFAULT NULL, \`updated_at\` timestamp NULL DEFAULT NULL ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;" |mysql -h 127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D '.$REMOTE_FOLDER_ROOT.'_wordpress || echo PASSED'; $cmd[]['rsh']='echo "INSERT IGNORE INTO \`wp_p5-BeeCtrl_config\` (\`id\`, \`property\`, \`value\`, \`isActive\`, \`created_at\`, \`updated_at\`) VALUES (1, \'url\', \'https://'.$SERVER_ADDRESS.'/SE/wfs-data.php/default_db/\', 1, NULL, NULL), (2, \'onPage\', \'5\', 1, NULL, NULL); " |mysql -h 127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D '.$REMOTE_FOLDER_ROOT.'_wordpress || echo PASSED'; $cmd[]['rsh']='echo "ALTER TABLE `wp_p5-BeeCtrl_config` ADD PRIMARY KEY (`id`);" |mysql -h 127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D '.$REMOTE_FOLDER_ROOT.'_wordpress || echo PASSED'; $cmd[]['rsh']='echo "ALTER TABLE `wp_p5-BeeCtrl_config` MODIFY `id` int(10) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=3;" |mysql -h 127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D '.$REMOTE_FOLDER_ROOT.'_wordpress || echo PASSED'; return $cmd; } function INSTALL_GETCOMMANDS_MYSQL55($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) { //! MYSQL SERVER INSTALACJA $cmd[]['rsh']='port install mysql55-server'; $cmd[]['rsh']='sudo -u _mysql /opt/local/lib/mysql55/bin/mysql_install_db'; $cmd[]['rsh']='sed -i.bak "s/Disabled<\/key>/Enabled<\/key>/" /Library/LaunchDaemons/org.macports.mysql55-server.plist'; //zmieniam inita do launchctl aby sam z siebie sie odpalal $cmd[]['rsh']='echo "[client] default-character-set = latin2 [mysql] #default-character-set = latin2 [mysqld] log-error=/var/log/mysql.log #default-character-set = utf8 collation-server = latin2_general_ci init-connect=\'SET NAMES latin2\' character-set-server = latin2 max_allowed_packet = 600M " > /etc/my.cnf'; $cmd[]['rsh']='cat /opt/local/etc/mysql55/macports-default.cnf |grep "skip-networking" |grep -v "#" && sed -i.bak "s/skip-networking/#skip-networking/" /opt/local/etc/mysql55/macports-default.cnf || echo OK'; //@2014-09-13 - to jest niepewne i raczej niedziala z LOWER CASE TABLES! //$cmd[]['rsh']='cat /opt/local/etc/mysql55/my.cnf | grep "lower_case_table_names = 0" || echo " // [mysqld] // lower_case_table_names = 0" >> /opt/local/etc/mysql55/my.cnf'; $cmd[]['rsh']='mkdir -p /opt/local/var/run/mysql5/'; $cmd[]['rsh']='launchctl load -w /Library/LaunchDaemons/org.macports.mysql55-server.plist'; $cmd[]['rsh']='echo "/opt/local/lib/mysql55/bin" >>/etc/paths'; //@2013-10-03 tu jest bug : - recznie wyzwolona ta sama komenda ruszyła, a skrypt zwrócił error - sprawdzam z zamiana wykrzyknikow w hasle! $cmd[]['rsh']='sleep 10 && mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -e \'select 1+1;\' || /opt/local/lib/mysql55/bin/mysqladmin password \''.$ADMIN_USERNAME_PASSWD.'\' '; $cmd[]['rsh']='[ -d /var/mysql ] || { mkdir -p /var/mysql && [ -e /var/mysql/mysql.sock ] || ln -s /opt/local/var/run/mysql55/mysqld.sock /var/mysql/mysql.sock }'; $cmd[]['rsh']='/opt/local/lib/mysql55/bin/mysql -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 //! MYSQL SERVER INSTALACJA EOF return $cmd; } 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) { //! pakiet: INSTALL_GETCOMMANDS_WMS @2016-07 maintain bzyk // mapserver $cmd[]['rsh']='port 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! $cmd[]['rsh']='port install mapserver '; // qgis $cmd[]['scp']=array($INSTALL_ROOT.'/stuff/qgis__kyngchaos.com/QGIS-2.18.0-1.dmg','/tmp/QGIS-2.18.0-1.dmg'); $cmd[]['rsh']='hdiutil mount /tmp/QGIS-2.18.0-1.dmg -mountpoint /Volumes/QGIS-2.18.0-1'; $cmd[]['rsh']='installer -package "/Volumes/QGIS-2.18.0-1/1 GDAL Complete.pkg" -target "/" -verbose'; $cmd[]['rsh']='installer -package "/Volumes/QGIS-2.18.0-1/2 NumPy.pkg" -target "/" -verbose'; $cmd[]['rsh']='installer -package "/Volumes/QGIS-2.18.0-1/3 matplotlib.pkg" -target "/" -verbose'; $cmd[]['rsh']='installer -package "/Volumes/QGIS-2.18.0-1/4 Install QGIS.pkg" -target "/" -verbose'; $cmd[]['rsh']='hdiutil unmount /Volumes/QGIS-2.18.0-1'; // WMS files $cmd[]['rsh']='mkdir -p /Library/Server/Web/Data/Sites/Default/wms/qgis'; $cmd[]['rsh']='echo "RewriteEngine on RewriteBase /wms/ RewriteCond %{REQUEST_FILENAME} !-f 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'; $cmd[]['rsh']='echo "RewriteEngine on RewriteBase /wms/qgis/ RewriteCond %{REQUEST_FILENAME} !-f 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'; $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'; $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'; $cmd[]['rsh']='mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' -e "REPLACE INTO \\`CRM_CONFIG\\` (\\`CONF_KEY\\`,\\`CONF_VAL\\`) VALUES (\'module_WMS\',\'on\')"'; return $cmd; } //TODO trzeba inaczej to zainstalowac - bez dropowania- update zrobic 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) { $cmd[]['rsh']='which mysqladmin && mysqladmin -f -uroot -p'.$ADMIN_USERNAME_PASSWD.' drop webmail || echo PASSED '; $cmd[]['rsh']='test -d /Library/Server/Web/Data/Sites/Default/webmail && rm -R /Library/Server/Web/Data/Sites/Default/webmail || echo PASSED'; $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'; //!!!!!!!!! WEBMAIL !!!!!!! $cmd[]['rsh']='echo INSTALUJE WEBMAILA'; $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/ || exit 1 wget http://sourceforge.net/projects/roundcubemail/files/roundcubemail/0.9.1/roundcubemail-0.9.1.tar.gz/download -O roundcube.tar.gz || exit 1'; $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/ || exit 1 tar -zxpvf roundcube.tar.gz || exit 1'; $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/ || exit 1 mv roundcubemail* webmail || exit 1 '; $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/webmail || exit 1 chown _www temp/ || exit 1 chown _www logs/ || exit 1 '; $cmd[]['scp_root']=array('/Library/Server/Web/Data/Sites/Default/webmail/loginFromSE.php',' /Library/Server/Web/Data/Sites/Default/webmail/'); //ustalenie domyslnych identities na webmailu po zalogowaniu wlasciwych dla domeny $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'; $cmd[]['rsh']='test -n "'.$SERVER_ADDRESS.'" && sed -i.bak "s/@DOMAIN_TO_EDIT/@'.$SERVER_ADDRESS.'/" /Library/Server/Web/Data/Sites/Default/webmail/loginFromSE.php'; $cmd[]['rsh']='sed -i.bak "s/\/\/\\$RCMAIL->db->query(/\\$RCMAIL->db->query(/" /Library/Server/Web/Data/Sites/Default/webmail/loginFromSE.php'; // $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff/OfflineIMAP-offlineimap-v6.5.5-0-g8bc2f35.tar',' /Library/Server/Web/Data/Sites/Default/'); // $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/'; $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/'; // $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/OfflineIMAP-offlineimap-8bc2f35/'; // $cmd[]['rsh']='touch /var/root/.offlineimaprc'; // $cmd[]['rsh']='port install db44'; //do icingi/nconfa // $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/isync-1.0.6 && ./configure'; $cmd[]['rsh']='mysqladmin -h 127.0.0.1 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' create webmail'; $cmd[]['rsh']='echo "GRANT ALL PRIVILEGES ON webmail.* to \'webmail\'@\'127.0.0.1\' IDENTIFIED BY \'webmail666\' WITH GRANT OPTION; flush privileges;" |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\''; $cmd[]['rsh']='echo "GRANT ALL PRIVILEGES ON webmail.* to \'webmail\'@\'localhost\' IDENTIFIED BY \'webmail666\' WITH GRANT OPTION; flush privileges;" |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\''; $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/webmail || exit 1 cat ./SQL/mysql.initial.sql | mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -h 127.0.0.1 -Dwebmail || exit 1 '; $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/webmail || exit 1 rm -r installer/ || exit 1'; $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/webmail || exit 1 chown -R _www ../webmail || exit 1'; $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/webmail || exit 1 chown -R _www ../webmail || exit 1'; $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/webmail || exit 1 echo " \'localhost\', \'hosts\' => array(\'127.0.0.1\'), \'port\' => 389, \'base_dn\' => \''.$SERVER_ADDRESS_LDAP_DC.'\', \'search_base_dn\' => \'\', \'required_fields\' => array(\'cn\', \'sn\', \'mail\'), \'filter\' => \'(&(!(uid=_*))(mail=*@*))\', \'search_dn_default\' => \'\', \'LDAP_Object_Classes\' => array(\'top\', \'inetOrgPerson\'), \'search_fields\' => array(\'givenName\',\'cn\',\'sn\',\'mail\'), \'fieldmap\' => array( \'name\' => \'cn\', \'surname\' => \'sn\', \'firstname\' => \'givenName\', \'email\' => \'mail\' ), \'LDAP_rdn\' => \'mail\', \'ldap_version\' => 3, \'scope\' => \'sub\', \'fuzzy_search\' => true ); \$rcmail_config[\'autocomplete_addressbooks\'] = array(\'sql\',\'localhost\'); \$rcmail_config[\'autocomplete_min_length\'] = 1; \$rcmail_config[\'autocomplete_threads\'] = 0; \$rcmail_config[\'autocomplete_max\'] = 15; \$rcmail_config[\'address_template\'] = \'{street}
{locality} {zipcode}
{country} {region}\'; \$rcmail_config[\'addressbook_search_mode\'] = 0; \$rcmail_config[\'default_charset\'] = \'ISO-8859-1\'; \$rcmail_config[\'skin\'] = \'larry\'; \$rcmail_config[\'mail_pagesize\'] = 50; \$rcmail_config[\'addressbook_pagesize\'] = 50; \$rcmail_config[\'addressbook_sort_col\'] = \'surname\'; \$rcmail_config[\'addressbook_name_listing\'] = 0; \$rcmail_config[\'timezone\'] = \'auto\'; \$rcmail_config[\'prefer_html\'] = true; \$rcmail_config[\'show_images\'] = 0; \$rcmail_config[\'message_extwin\'] = false; \$rcmail_config[\'compose_extwin\'] = false; \$rcmail_config[\'htmleditor\'] = 0; \$rcmail_config[\'prettydate\'] = true; \$rcmail_config[\'draft_autosave\'] = 300; \$rcmail_config[\'preview_pane\'] = false; \$rcmail_config[\'preview_pane_mark_read\'] = 0; \$rcmail_config[\'logout_purge\'] = false; \$rcmail_config[\'logout_expunge\'] = false; \$rcmail_config[\'inline_images\'] = true; \$rcmail_config[\'mime_param_folding\'] = 0; \$rcmail_config[\'skip_deleted\'] = false; \$rcmail_config[\'read_when_deleted\'] = true; \$rcmail_config[\'flag_for_deletion\'] = false; \$rcmail_config[\'refresh_interval\'] = 60; \$rcmail_config[\'check_all_folders\'] = false; \$rcmail_config[\'display_next\'] = true; \$rcmail_config[\'autoexpand_threads\'] = 0; \$rcmail_config[\'reply_mode\'] = 0; \$rcmail_config[\'strip_existing_sig\'] = true; \$rcmail_config[\'show_sig\'] = 1; \$rcmail_config[\'force_7bit\'] = false; \$rcmail_config[\'delete_always\'] = false; \$rcmail_config[\'delete_junk\'] = false; \$rcmail_config[\'mdn_requests\'] = 0; \$rcmail_config[\'mdn_default\'] = 0; \$rcmail_config[\'dsn_default\'] = 0; \$rcmail_config[\'reply_same_folder\'] = false; \$rcmail_config[\'forward_attachment\'] = false; \$rcmail_config[\'default_addressbook\'] = null; \$rcmail_config[\'spellcheck_before_send\'] = false; \$rcmail_config[\'autocomplete_single\'] = false; \$rcmail_config[\'default_font\'] = \'\'; " > config/main.inc.php '; $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/webmail || exit 1 echo " config/db.inc.php'; //!!!!!!!!! EOF WEBMAIL !!!!!!! return $cmd; } 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) { //@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'; //!!! Instalacja i generowanie konfiga - kopiowanie $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/SE || echo PASSED '; //zalozenie katalogow $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/'.$REMOTE_FOLDER_ROOT.' || echo PASSED '; //zalozenie katalogow $cmd[]['scp_root']=array($INSTALL_ROOT.'/budynki*','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['scp_root']=array($INSTALL_ROOT.'/favicon.ico','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['scp_root']=array($INSTALL_ROOT.'/icon','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/index* || echo PASSED'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/index*','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/odt2xhtml* || echo PASSED'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/odt2xhtml*','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/procesy5* || echo PASSED'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/procesy5*','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/przypomnij.php || echo PASSED'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/przypomnij.php','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/se-lib || echo PASSED'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/se-lib','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/schema || echo PASSED'; // $cmd[]['rsh']='mkdir -p /Library/Server/Web/Data/Sites/Default/SE/schema'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/schema','/Library/Server/Web/Data/Sites/Default/SE/schema'); //$cmd[]['rsh']='mkdir -p /Library/Server/Web/Data/Sites/Default/SE/schema/wfs'; //$cmd[]['rsh']='mkdir -p /Library/Server/Web/Data/Sites/Default/SE/schema/gml'; //$cmd[]['scp_hidden_files']=array($INSTALL_ROOT.'/schema/.htaccess','/Library/Server/Web/Data/Sites/Default/SE/schema/'); //$cmd[]['scp_root']=array($INSTALL_ROOT.'/schema/wfs','/Library/Server/Web/Data/Sites/Default/SE/schema/'); //$cmd[]['scp_root']=array($INSTALL_ROOT.'/schema/gml','/Library/Server/Web/Data/Sites/Default/SE/schema/'); //$cmd[]['scp_root']=array($INSTALL_ROOT.'/schema/gui/core','/Library/Server/Web/Data/Sites/Default/SE/schema/gui/'); //$cmd[]['scp_root']=array($INSTALL_ROOT.'/schema/gui/company/'.$REMOTE_FOLDER_ROOT,'/Library/Server/Web/Data/Sites/Default/SE/schema/gui/company/'); $cmd[]['rsh']='chown -R _www /Library/Server/Web/Data/Sites/Default/SE/schema || echo PASSED'; $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/session-expire.php || echo PASSED'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/session-expire.php','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/stuff || echo PASSED'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/stuff','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/superedit* || echo PASSED'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/superedit*','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['scp_root']=array($INSTALL_ROOT.'/webdav','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['rsh']='mkdir -p /Library/Server/Web/Data/Sites/Default/SE/config'; $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/config/.config_base_structure* || echo PASSED'; // TODO: 'scp_root' nie działa dla ukrytych plików .* - 'scp_hidden_files' $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 $cmd[]['scp_root']=array($INSTALL_ROOT.'/config/.cnf--column_init*','/Library/Server/Web/Data/Sites/Default/SE/config/'); $cmd[]['scp_root']=array($INSTALL_ROOT.'/config/.cnf--external_ids.ini.php*','/Library/Server/Web/Data/Sites/Default/SE/config/'); $cmd[]['scp_root']=array($INSTALL_ROOT.'/.config.php','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/procesy || echo PASSED'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/procesy','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/static || echo PASSED'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/static','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['rsh']='rm -R /Library/Server/Web/Data/Sites/Default/SE/bash_sync_perms.php || echo PASSED'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/bash_sync_perms.php','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['rsh']='rm /Library/Server/Web/Data/Sites/Default/SE/bash_install_check.php || echo PASSED'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/bash_install_check.php','/Library/Server/Web/Data/Sites/Default/SE/'); //! wfs !? dziala? $cmd[]['rsh']='rm /Library/Server/Web/Data/Sites/Default/SE/wfs-data.php || echo PASSED'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/wfs-data.php','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['rsh']='rm /Library/Server/Web/Data/Sites/Default/SE/wfs-qgis.php || echo PASSED'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/wfs-qgis.php','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['rsh']='rm /Library/Server/Web/Data/Sites/Default/SE/wfs.php || echo PASSED'; $cmd[]['scp_root']=array($INSTALL_ROOT.'/wfs.php','/Library/Server/Web/Data/Sites/Default/SE/'); $cmd[]['scp_root']=array($INSTALL_ROOT.'/VERSION','/Library/Server/Web/Data/Sites/Default/SE/'); /* $cmd[]['rsh']='echo "" > /Library/Server/Web/Data/Sites/Default/index.php'; // TODO @2014-08-11 */ $cmd[]['rsh']='echo "" > /Library/Server/Web/Data/Sites/Default/index.php'; //$cmd[]['rsh']='uruchomic na serwerze open directory i dodac tam konta roota'; //$cmd[]['rsh']='skonfigurowac poczte i wlaczyc'; //$cmd[]['rsh']='skonfigurowac pliki i wlaczyc - razem ze skanami'; //$cmd[]['rsh']='uruchomic i skonfiugorowac kalendarze (haslo do wysylki poczty musi dzialac i byc konto takie dodane)'; $cmd[]['rsh']='sed -i.bak "s/short_open_tag = Off/short_open_tag = On/" /etc/php.ini '; $cmd[]['rsh']='sed -i.bak "s/memory_limit =.*/memory_limit = 428M/" /etc/php.ini '; $cmd[]['rsh']='sed -i.bak "s/post_max_size =.*/post_max_size = 800M/" /etc/php.ini '; $cmd[]['rsh']='sed -i.bak "s/session.gc_maxlifetime =.*/session.gc_maxlifetime = 3600/" /etc/php.ini '; $cmd[]['rsh']='sed -i.bak "s/upload_max_filesize =.*/upload_max_filesize = 120M/" /etc/php.ini '; $cmd[]['rsh']='sed -i.bak "s/allow_url_include = Off/allow_url_include = On/" /etc/php.ini'; $cmd[]['rsh']='sed -i.bak "s/pdo_mysql.cache_size =.*/pdo_mysql.cache_size = 200000/" /etc/php.ini '; $cmd[]['rsh']='sed -i.bak "s/mysql.cache_size =.*/mysql.cache_size = 200000/" /etc/php.ini '; $cmd[]['rsh']='sed -i.bak "s/mysqli.cache_size =.*/mysqli.cache_size = 200000/" /etc/php.ini '; $cmd[]['rsh']='defaults write /Library/Preferences/com.apple.screensaver loginWindowIdleTime 0'; $cmd[]['rsh']='serveradmin settings web:defaultSite:enableServerSideIncludes = yes'; $cmd[]['rsh']='serveradmin settings web:defaultSite:allowAllOverrides = yes'; $cmd[]['rsh']='serveradmin settings web:defaultSecureSite:enableServerSideIncludes = yes'; $cmd[]['rsh']='serveradmin settings web:defaultSecureSite:allowAllOverrides = yes'; $cmd[]['rsh']='serveradmin settings web:defaultSecureSite:allowCGIExecution = yes'; $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'; $cmd[]['rsh']='test -f /Library/Server/Web/Config/Proxy/apache_serviceproxy.conf && launchctl stop com.apple.serviceproxy || exit 0 '; $cmd[]['rsh']='serveradmin start web'; $cmd[]['rsh']=' php /Library/Server/Web/Data/Sites/Default/SE/bash_sync_perms.php '.$SERVER_ADDRESS.' addToLaunchctl'; $cmd[]['rsh']=' launchctl load /Library/LaunchDaemons/pl.biallnet.sync_perms.'.$SERVER_ADDRESS.'.php.plist'; //! #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 //!@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 // nalezy zamienic kolejnosc plikow, gubi pliki konfiguracyjne if($SERVER_VERSION=='10.10Yosemite' or $SERVER_VERSION=='10.11-ElCapitan' or $SERVER_VERSION=='10.12-Sierra') { $cmd[]['rsh']='dseditgroup -o read com.apple.access_mail || dseditgroup -o create com.apple.access_mail'; $cmd[]['rsh']='dseditgroup -o read com.apple.access_addressbook || dseditgroup -o create com.apple.access_addressbook'; $cmd[]['rsh']='dseditgroup -o read com.apple.access_smb || dseditgroup -o create com.apple.access_smb'; $cmd[]['rsh']='dseditgroup -o read com.apple.access_afp || dseditgroup -o create com.apple.access_afp'; $cmd[]['rsh']='dseditgroup -o read com.apple.access_vpn || dseditgroup -o create com.apple.access_vpn'; $cmd[]['rsh']='dseditgroup -o read com.apple.access_chat || dseditgroup -o create com.apple.access_chat'; $cmd[]['rsh']='dseditgroup -o read com.apple.access_calendar || dseditgroup -o create com.apple.access_calendar'; } //odpalenie jabbera dla skroconej domeny servera: $cmd[]['rsh']=' test -n "'.$SERVER_ADDRESS_SHORT.'" && serveradmin settings jabber:hostsCommaDelimitedString = "'.$SERVER_ADDRESS.','.$SERVER_ADDRESS_SHORT.'"'; //odpalenie jabbera:::: $cmd[]['rsh']=' serveradmin start jabber'; //odpalenie poczty dla skroconej domeny servera: $cmd[]['rsh']=' test -n "'.$SERVER_ADDRESS_SHORT.'" && serveradmin settings mail:postfix:virtual_domains:_array_index:0 = "'.$SERVER_ADDRESS_SHORT.'"'; //odpalenie poczty:::: //$cmd[]['rsh']=' serveradmin settings mail:postfix:message_size_limit_enabled = no'; //wylaczenie limitu poczty $cmd[]['rsh']=' serveradmin settings mail:postfix:message_size_limit = 90485760 ' ; //limit 90 mega $cmd[]['rsh']=' serveradmin start mail'; //TODO need to reedit MainConf for virtual domains in /Library/Server/Mail/Config/postfix/main.cf (add hash:) // virtual_alias_domains = $virtual_alias_maps hash:/Library/Server/Mail/Config/postfix/virtual_domains $cmd[]['rsh']=' serveradmin start calendar'; return $cmd; } 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) { //@2016-08-10 jest blad tutaj wyzwolenia w kosmetologii z bomby ktorys error wywala if($ADMIN_USERNAME_PASSWD=='default') { //przypadek biall.com.pl jest inna baza danych i ukryte hasla do zczytania z konfigow - TODO uzyc funkcje czytajaca .cnf-default_db...ini.php $ADMIN_USERNAME_PASSWD=get_user_gui_response('Set/confirm ADMIN_USERNAME_PASSWD',$ADMIN_USERNAME_PASSWD); $REMOTE_FOLDER_ROOT=get_user_gui_response('Set/confirm database name (REMOTE_FOLDER_ROOT) ',$REMOTE_FOLDER_ROOT); } $cmd[]['rsh']='php /Library/Server/Web/Data/Sites/Default/SE/bash_install_check.php '.$SERVER_ADDRESS; //@2016-06 bindera: po aktualizacji sql czesto nie dziala event sheduler np zoompak $cmd[]['rsh']=' echo " SET GLOBAL event_scheduler = \"ON\" " |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap $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 return $cmd; } 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) { //always before install mysql (if option to use) return $cmd; } 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) { //after always should be run INSTALL_GETCOMMANDS_SE $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/SE || echo PASSED '; //zalozenie katalogow //! .cnf--default_db $cmd[]['rsh']=' [ -d /Library/Server/Web/Data/Sites/Default/SE ] && echo PASSED '; //zalozenie katalogow $cmd[]['rsh']=' echo "; /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--default_db-'.$SERVER_ADDRESS.'.ini.php '; //! .cnf--folders $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT; $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/PISMA'; $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/PISMA/index.html'; $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/DEVICES'; $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/DEVICES/index.html'; $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/PROJEKTY'; $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/PROJEKTY/index.html'; $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/SES_PROCESY5_A'; $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/SES_PROCESY5_A/index.html'; $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/CRM_PROCES'; $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/CRM_PROCES/index.html'; $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/DRUKI'; $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/DRUKI/index.html'; $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/ADMIN_USERS'; $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/ADMIN_USERS/index.html'; $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/QUALITY_NOTICES'; $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/QUALITY_NOTICES/index.html'; $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/BUILDINGS'; $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/BUILDINGS/index.html'; $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/CRM_LISTA_ZASOBOW'; $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/CRM_LISTA_ZASOBOW/index.html'; $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/GRAFIK_PRACY'; $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/GRAFIK_PRACY/index.html'; $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/PROBLEMS'; $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/PROBLEMS/index.html'; $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/SKANY'; //@2014-01-18 - should be added $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/SKANY/index.html'; $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/WMS_LAYERS'; $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/WMS_LAYERS/index.html'; $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/WIZJE_LOKALNE'; $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/WIZJE_LOKALNE/index.html'; $cmd[]['rsh']=' mkdir -p /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/MK_Rewiry'; $cmd[]['rsh']=' touch /Library/Server/Web/Data/Sites/Default/PLIKI/'.$REMOTE_FOLDER_ROOT.'/MK_Rewiry/index.html'; $cmd[]['rsh']=' chmod 0755 /Library/Server/Web/Data/Sites/Default/PLIKI/'; $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'; //! TODO te komendy nie działają @2013-10-15 - trzeba ruszyc recznie z GUI $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 $cmd[]['rsh']=' serveradmin start afp' ; //uruchomienie sharingu smb/afp dla udzialu $cmd[]['rsh']=' serveradmin start smb' ; //uruchomienie sharingu smb/afp dla udzialu $cmd[]['rsh']=' serveradmin start sharing' ; //uruchomienie sharingu smb/afp dla udzialu //EOF TODO te komendy nie dzialaja //@2014-01-18 bindera: aktualizacja konfigu do plikow zgodna z zalozeniami korespondencji w podfolderach $cmd[]['rsh']=' echo ";./\" LOOKAT_NEGFILE_VARNAME=\"ID\" LOOKAT_FOLDER_LOOK_REGEX=\"/../\" LOOKAT_FOLDER_VARNAME=\"ID\" DEST_FOLDER_M_DIST_FILES_INDEXNAME=\"ID\" [ADMIN_USERS_COLUMN] mount_point=\"ADMIN_USERS\" share_point=\"ADMIN_USERS\" www_share_point=\"ADMIN_USERS\" LOOKAT_FOLDER_LOOK_GLOB=\".*\" LOOKAT_FOLDER_VARNAME=\"ID\" DEST_FOLDER_FORMAT=\".\" DEST_FOLDER_VARNAME1=\"ID\" DEST_FOLDER_VARNAME2=\"ADM_NAME\" [CRM_LISTA_ZASOBOW_COLUMN] mount_point=\"DRUKI\" share_point=\"DRUKI\" www_share_point=\"DRUKI\" LOOKAT_FOLDER_LOOK_GLOB=\".*\" LOOKAT_FOLDER_VARNAME=\"ID\" DEST_FOLDER_FORMAT=\".\" DEST_FOLDER_VARNAME1=\"ID\" DEST_FOLDER_VARNAME2=\"DESC\" [CRM_LISTA_ZASOBOW_COLUMN] mount_point=\"DRUKI\" share_point=\"DRUKI\" www_share_point=\"DRUKI\" LOOKAT_FOLDER_LOOK_GLOB=\".*\" LOOKAT_FOLDER_VARNAME=\"ID\" DEST_FOLDER_FORMAT=\".\" DEST_FOLDER_VARNAME1=\"ID\" DEST_FOLDER_VARNAME2=\"DESC\" [CRM_PROCES_COLUMN] mount_point=\"CRM_PROCES\" share_point=\"CRM_PROCES\" www_share_point=\"CRM_PROCES\" LOOKAT_FOLDER_LOOK_GLOB=\".*\" LOOKAT_FOLDER_VARNAME=\"ID\" DEST_FOLDER_FORMAT=\".\" DEST_FOLDER_VARNAME1=\"ID\" DEST_FOLDER_VARNAME2=\"DESC\" [QUALITY_NOTICES_COLUMN] mount_point=\"QUALITY_NOTICES\" share_point=\"QUALITY_NOTICES\" www_share_point=\"QUALITY_NOTICES\" LOOKAT_FOLDER_LOOK_GLOB=\".*\" LOOKAT_FOLDER_VARNAME=\"ID\" DEST_FOLDER_FORMAT=\".\" DEST_FOLDER_VARNAME1=\"ID\" DEST_FOLDER_VARNAME2=\"ID_PROCES\" [GRAFIK_PRACY_COLUMN] mount_point=\"GRAFIK_PRACY\" share_point=\"GRAFIK_PRACY\" www_share_point=\"GRAFIK_PRACY\" LOOKAT_FOLDER_LOOK_GLOB=\".*\" LOOKAT_FOLDER_VARNAME=\"ID\" DEST_FOLDER_FORMAT=\".\" DEST_FOLDER_VARNAME1=\"ID\" DEST_FOLDER_VARNAME2=\"DATE\" DEST_FOLDER_VARNAME3=\"L_APPOITMENT_USER\" [PROBLEMS_COLUMN] mount_point=\"PROBLEMS\" share_point=\"PROBLEMS\" www_share_point=\"PROBLEMS\" LOOKAT_FOLDER_LOOK_GLOB=\".*\" LOOKAT_FOLDER_VARNAME=\"ID\" DEST_FOLDER_FORMAT=\".\" DEST_FOLDER_VARNAME1=\"ID\" DEST_FOLDER_VARNAME2=\"A_PROBLEM_DESC\" [BUILDINGS_COLUMN] mount_point=\"BUILDINGS\" share_point=\"BUILDINGS\" www_share_point=\"BUILDINGS\" LOOKAT_FOLDER_LOOK_GLOB=\".*\" LOOKAT_FOLDER_VARNAME=\"ID\" DEST_FOLDER_FORMAT=\".\" DEST_FOLDER_VARNAME1=\"ID\" DEST_FOLDER_VARNAME2=\"S_ADDRESS_STREET\" [IN7_MK_BAZA_DYSTRYBUCJI_COLUMN] mount_point=\"PROJEKTY\" share_point=\"PROJEKTY\" www_share_point=\"PROJEKTY\" LOOKAT_FOLDER_LOOK_GLOB=\".*\" LOOKAT_FOLDER_VARNAME=\"ID\" DEST_FOLDER_FORMAT=\".\" DEST_FOLDER_VARNAME1=\"ID\" DEST_FOLDER_VARNAME2=\"M_DIST_DESC\" [IN7_DZIENNIK_KORESP_COLUMN] mount_point=\"PISMA\" share_point=\"PISMA\" www_share_point=\"PISMA\" LOOKAT_FOLDER_LOOK_GLOB=\".*\" LOOKAT_FOLDER_VARNAME=\"ID\" DEST_FOLDER_FORMAT=\".-\" DEST_FOLDER_VARNAME1=\"ID\" DEST_FOLDER_VARNAME2=\"K_OD_KOGO\" DEST_FOLDER_VARNAME3=\"K_ZAWARTOS\" [DEVICES_COLUMN] mount_point=\"DEVICES\" share_point=\"DEVICES\" www_share_point=\"DEVICES\" LOOKAT_FOLDER_LOOK_GLOB=\".*\" LOOKAT_FOLDER_VARNAME=\"ID\" DEST_FOLDER_FORMAT=\"._\" DEST_FOLDER_VARNAME1=\"ID\" DEST_FOLDER_VARNAME2=\"T_PRODUCER\" DEST_FOLDER_VARNAME3=\"S_HW\" [WIZJE_LOKALNE_COLUMN] mount_point=\"WIZJE_LOKALNE\" share_point=\"WIZJE_LOKALNE\" www_share_point=\"WIZJE_LOKALNE\" LOOKAT_FOLDER_LOOK_GLOB=\".*\" LOOKAT_FOLDER_VARNAME=\"ID\" DEST_FOLDER_FORMAT=\".WIZJE_LOKALNE\" DEST_FOLDER_VARNAME1=\"ID\" DEST_FOLDER_VARNAME2=\"A_RECORD_CREATE_DATE\" [SCANS_COLUMN] mount_point=\"SKANY\" share_point=\"SKANY\" www_share_point=\"SKANY\" [WMS_LAYERS_COLUMN] mount_point=\"WMS_LAYERS\" share_point=\"WMS_LAYERS\" www_share_point=\"WMS_LAYERS\" LOOKAT_FOLDER_LOOK_GLOB=\"\" LOOKAT_FOLDER_VARNAME=\"ID\" DEST_FOLDER_FORMAT=\"\" DEST_FOLDER_VARNAME1=\"ID\" [MK_Rewiry_COLUMN] mount_point=\"MK_Rewiry\" share_point=\"MK_Rewiry\" www_share_point=\"MK_Rewiry\" LOOKAT_FOLDER_LOOK_GLOB=\".*\" LOOKAT_FOLDER_VARNAME=\"ID\" DEST_FOLDER_FORMAT=\".MK_Rewiry_\" DEST_FOLDER_VARNAME1=\"ID\" DEST_FOLDER_VARNAME2=\"NAZWA_REWI\" " > /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--folders-'.$SERVER_ADDRESS.'.ini.php'; //! .config_domena_.php //LDAP $cmd[]['rsh']='echo "; /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--default_ldap-'.$SERVER_ADDRESS.'.ini.php '; $cmd[]['rsh']='echo " /Library/Server/Web/Data/Sites/Default/SE/config/.config-'.$SERVER_ADDRESS.'.php'; $cmd[]['rsh']=' echo "; /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--import_db-'.$SERVER_ADDRESS.'.ini.php '; //todo zmienic to wczesniej $cmd[]['rsh']='which mysqladmin && mysqladmin -f -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' drop '.$REMOTE_FOLDER_ROOT.' || echo PASSED '; $cmd[]['rsh']='mysqladmin -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' create '.$REMOTE_FOLDER_ROOT.' || echo passed' ; //todo przestawic wczesniej $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 //! inicjalizacja bazy SQIX_STRUCTURE_DB_SYNC $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 $cmd[]['rsh']='/opt/local/lib/mysql55/bin/mysql -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! // TODO @2014-06-16 sprawdzic dodawanie struktur DB_STRUCTURES_CREATE - czy jest potrzebne - imho TAK $cmd[]['rsh']='php -r"include(\'/Library/Server/Web/Data/Sites/Default/SE/superedit-DB_PROCEDURES_CREATE.php\') ; DB_PROCEDURES_CREATE(); " '.$SERVER_ADDRESS.' '; $cmd[]['rsh']=' echo " update CRM_LISTA_ZASOBOW set \\`DESC\\`=\''.$SERVER_ADDRESS.'\' where \\`DESC\\`=\'biuro.biall-net.pl\' and \\`TYPE\\`=\'SERWER\' and ID=1 " |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //poprawa danych z referencyjnej bazy BIALL-NET $cmd[]['rsh']=' echo " update CRM_LISTA_ZASOBOW set \\`DESC\\`=\''.$REMOTE_FOLDER_ROOT.'\' where \\`DESC\\`=\'SES_USERS2\' and \\`TYPE\\`=\'BAZA_DANYCH\' and ID=2 " |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //poprawa danych z referencyjnej bazy BIALL-NET $cmd[]['rsh']=' echo " insert ignore into CRM_LISTA_ZASOBOW (ID, \\`DESC\\`, \\`TYPE\\`) VALUES(2, \'BAZA_DANYCH\', \'BAZA_DANYCH\') " |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; // create Zasob ID=2 if missing $cmd[]['rsh']=' echo " delete from ADMIN_USERS where ADM_ACCOUNT=\''.$ADMIN_USERNAME_L1.'\'" |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap $cmd[]['rsh']=' echo " delete from ADMIN_USERS where ADM_ACCOUNT=\''.$ADMIN_USERNAME_DIRECTORY.'\'" |mysql -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap $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 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap $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 -uroot -p\''.$ADMIN_USERNAME_PASSWD.'\' -D'.$REMOTE_FOLDER_ROOT.' '; //zalozenie 1 usera TODO synchronizacja z ldap //dodanie domyslnego uprawnienia admina dla glownego usera na bazie tabeli KONTAKTY_view $cmd[]['rsh']=' echo " insert into CRM_AUTH_PROFILE (ID_ZASOB, REMOTE_TABLE,REMOTE_ID) select czp1.ID , \'ADMIN_USERS\', au.ID from CRM_LISTA_ZASOBOW cz left join CRM_LISTA_ZASOBOW czp on czp.PARENT_ID=cz.ID left join CRM_WSKAZNIK cw on cw.ID_ZASOB=czp.ID left join _CRM_PROCES_STATS_proc_wiev as cpi on cpi.ID=cw.ID_PROCES left join CRM_WSKAZNIK as cw1 on cw1.ID_PROCES=cpi.ID_PROCES_INIT left join CRM_LISTA_ZASOBOW as czp1 on czp1.ID=cw1.ID_ZASOB and czp1.\\`TYPE\\`=\'STANOWISKO\' left join ADMIN_USERS au on au.ADM_ACCOUNT=\''.$ADMIN_USERNAME_DIRECTORY.'\' 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 $cmd[]['rsh']=' echo " insert into CRM_AUTH_PROFILE (ID_ZASOB, REMOTE_TABLE,REMOTE_ID) select czp1.ID , \'ADMIN_USERS\', au.ID from CRM_LISTA_ZASOBOW cz left join CRM_LISTA_ZASOBOW czp on czp.PARENT_ID=cz.ID left join CRM_WSKAZNIK cw on cw.ID_ZASOB=czp.ID left join _CRM_PROCES_STATS_proc_wiev as cpi on cpi.ID=cw.ID_PROCES left join CRM_WSKAZNIK as cw1 on cw1.ID_PROCES=cpi.ID_PROCES_INIT left join CRM_LISTA_ZASOBOW as czp1 on czp1.ID=cw1.ID_ZASOB and czp1.\\`TYPE\\`=\'STANOWISKO\' left join ADMIN_USERS au on au.ADM_ACCOUNT=\''.$ADMIN_USERNAME_L1.'\' 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 /* @2014-03-10 these has been moved to create config_base_structure_dump.sql option - WYKONAJ_REFERENCYJNA_BAZE_DANYCH $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 $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 ? $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 */ // $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 // $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 // $cmd[]='whoami'; //todo po zainstalowaniu bazy danych i zasobow trzeba zmienic nazwe zasobow naszych : //[14]=biuro.biall-net.pl -> $SERVER_ADDRESS //[4803]=vpn.biall-net.pl -> todo(adres IP lokalny w ramach vpn.$SERVER_ADDRESS) //! .cnf--default_db as id 2 $cmd[]['rsh']=' echo "; /Library/Server/Web/Data/Sites/Default/SE/config/.cnf--zasob_2-'.$SERVER_ADDRESS.'.ini.php '; // aliasowanie do localhosta konfigow do testow systemu $domainList = INSTALL_SES_PROCESY_A::fetch_same_domains_for_install($SERVER_ADDRESS_SHORT, $SERVER_ADDRESS);// [ $SERVER_ADDRESS, localhost, 127.0.0.1, ... ] foreach ($domainList as $domain) { if ($SERVER_ADDRESS == $domain) continue;// skip main domain if ('localhost' == $domain) continue;// skip localhost (127.0.0.1) $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'; $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'; $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'; $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'; $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'; } //! dodanie pierwszego usera ADMIN_USERNAME_L1 oraz diradmin //!#1228 2016-04-11 bindera: dodaje to tez tutaj - bo chyba tutaj powinno byc wszystko sprawne i dzialajace $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; //@2016-04-27 jednak to tutaj nie dziala.... //@2016-04-28 piotr dodal aktualizacje congig_check do dodawania tabeli config - i sprawdzamy czy pomoglo w tym etapie return $cmd; } 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) { $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'; $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'; $cmd[]['rsh']='test -f /Library/Server/Web/Data/Sites/Default/phpMyAdmin.tar.gz && rm -R /Library/Server/Web/Data/Sites/Default/phpMyAdmin-4.4.11-all-languages.tar.gz || echo PASSED'; $cmd[]['rsh']='test -d /Library/Server/Web/Data/Sites/Default/garbage && rm -R /Library/Server/Web/Data/Sites/Default/garbage || echo PASSED'; //! phpMyAdmin garbage $cmd[]['scp']=array($INSTALL_ROOT.'/stuff/phpMyAdmin-4.4.11-all-languages.tar.gz','/Library/Server/Web/Data/Sites/Default/phpMyAdmin-4.4.11-all-languages.tar.gz'); $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/ || exit 1 tar -zxpvf phpMyAdmin-4.4.11-all-languages.tar.gz || exit 1'; $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/ || exit 1 mv phpMyAdmin-4.4.11-all-languages garbage || exit 1 '; $cmd[]['rsh']='cd /Library/Server/Web/Data/Sites/Default/garbage || exit 1 echo " " > config.inc.php || exit 1 '; return $cmd; } 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) { return '" AdminUser exists name '.$ADMIN_USERNAME.' password '.$ADMIN_USERNAME_INITIAL_PASSWD.' realname Administrator uid 501 ComputerName '.$SERVER_ADDRESS.' Chapter 2 Installing Server Software and Finishing Basic Setup 23 DS DSClientInfo 2 - NetInfo client - broadcast dhcp static -192.168.42.250 network DSClientType 2 DSType 2 - directory client HostName '.$SERVER_ADDRESS.' InstallLanguage Polish Keyboard DefaultFormat 0 DefaultScript 0 ResID 0 ResName U.S. ScriptID 0 ServicesAutoStart Apache File MacManager Mail Print QTSS WebDAV TimeZone Europe/Warsaw VersionNumber 1 "'; } function tell_user_gui_error($msg) { return 'osascript -e "tell app \"System Events\" to display alert \"'.$msg.'\""'; } function get_user_gui_response($question,$default) { exec("/usr/bin/osascript -e 'set myReply to text returned of (display dialog \"".$question."\" default answer \"".$default."\")'", $output, $exit); return $output; } function MakeCommand($command_id,$command,$installer_tmp,$installer_dir) { $file_sh="install.bash/".$command_id.".bash"; $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"; $file=fopen($installer_dir."/".$file_sh, "w") or die('Cannot open file: '.$installer_dir."/".$file_sh); fwrite($file,"#!/bin/sh\n".$command."\n"); fclose($file); chmod($installer_dir."/".$file_sh, 0755); //$ins_sh.=$command['rsh']."\n\r"; DEBUG_S(-3,$command_id.':out of ',array($command,$file_sh,$out,$exit),__FILE__,__FUNCTION__,__LINE__); return $ins_sh; } function MAKE_PKG_COMPONENT($h,$installer_dir_tar,$installer_url,$installer_tmp,$cmd,$exit_file,$installer_dir_name,$pkg_id,$encrypt=false) { $UID=$h->ID; $installer_dir=$installer_dir_tar."/".$installer_dir_name; //pakowany katalog z instalatorem // $installer_dir_tar="/Library/Server/Web/Data/Sites/Default/PLIKI/SES_PROCESY5_A"; //katalog CWD z ktorego budowana jest instalacja // $installer_url="http://biuro.biall-net.pl/PLIKI/SES_PROCESY5_A/"; //miejsce do sciagania instalatora przez WWW // $installer_tmp="/tmp/pl.procesy5_".$UID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko exec('rm -Rf '.$installer_dir); mkdir($installer_dir,0777); mkdir($installer_dir."/install.bash",0777); mkdir($installer_dir."/install.executed_ok",0777); echo "
I mkdir ".$installer_dir; $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/mysql55/bin/:/Applications/Server.app/Contents/ServerRoot/usr/sbin/\n \n"; foreach($cmd as $command_id=>$command) { if(isset($command['rsh'])) { //$exec=SSH_COMMAND_REMOTE_CREATE($h->ADMIN_USERNAME,$h->SERVER_ADDRESS_IP,$h->ADMIN_USERNAME_PASSWD,$command['rsh']); //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)); //flush(); $out="";$exit=""; //exec($exec,$out,$exit); $file_sh="install.bash/".$command_id.".bash"; $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"; // touch($file_sh); $file=fopen($installer_dir."/".$file_sh, "w") or die('Cannot open file: '.$installer_dir."/".$file_sh); fwrite($file,"#!/bin/sh\n".$command['rsh']."\n"); fclose($file); chmod($installer_dir."/".$file_sh, 0755); //$ins_sh.=$command['rsh']."\n\r"; DEBUG_S(-3,$command_id.':out of ',array($command['rsh'],$installer_dir."/".$file_sh,$out,$exit),__FILE__,__FUNCTION__,__LINE__); flush(); } else if(isset($command['scp'])) { //$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]; //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))); //flush(); mkdir($installer_dir."/".$command_id,0777); exec("cp ".$command['scp'][0]." ".$installer_dir."/".$command_id); $ins_sh.="mv ".$installer_tmp."/".$command_id."/* ".$command['scp'][1]." \n"; } else if(isset($command['scp_hidden_files'])) { mkdir("{$installer_dir}/{$command_id}", 0777); exec("cp {$command['scp_hidden_files'][0]} {$installer_dir}/{$command_id}"); $hidden_files = explode('/', $command['scp_hidden_files'][0]); $hidden_files = end($hidden_files); $ins_sh .= "mv {$installer_tmp}/{$command_id}/{$hidden_files} {$command['scp_hidden_files'][1]} \n"; } else if(isset($command['scp_root'])) { mkdir($installer_dir."/".$command_id,0777); $cmd="cp -r ".$command['scp_root'][0]." ".$installer_dir."/".$command_id; exec($cmd,$out,$exit); //@2014-09 tak bylo, ale sie zle instalowalo wiec dajemy cp -a $ins_sh.="mv ".$installer_tmp."/".$command_id."/* ".$command['scp_root'][1]." \n"; DEBUG_S(-3,$cmd.':out of ',array($command['scp_root'],$installer_dir."/".$file_sh,$command_id,$out,$exit),__FILE__,__FUNCTION__,__LINE__); //$ins_sh.="cp -a ".$installer_tmp."/".$command_id."/* ".$command['scp_root'][1]." \n"; flush(); //set_time_limit(36000); } $last_command_id=$command_id; } if(($encrypt)) { //TODO detect several hosts at the same IP address/domain to make it allow to work. // select SERVER_ADDRESS_IP //$exec='cd '.$installer_dir.' && /Applications/SourceGuardian.app/Contents/MacOS/sgencoder -b- --domain '.$h->SERVER_ADDRESS_SHORT.' -r *.php -x superedit-DB_PROCEDURES_CREATE.php'; /* $skipPhpFiles = array(); $skipPhpFiles[] = 'bash_sync_perms.php'; $skipPhpFiles[] = 'bash_install_check.php'; $skipPhpFiles[] = '.config.php'; $skipPhpFiles[] = '.config_base_structure.php'; $skipPhpFiles[] = 'se-lib/V.php'; $skipPhpFiles[] = 'se-lib/Lib.php'; $skipPhpFiles[] = 'se-lib/DB.php'; $skipPhpFiles[] = 'se-lib/DBG.php'; $skipPhpFiles[] = 'se-lib/User.php'; $skipPhpFiles[] = 'se-lib/UserProfile.php'; $skipPhpFiles[] = 'se-lib/Config.php'; $skipPhpFiles[] = 'se-lib/Config/INI.php'; $skipPhpFiles[] = 'se-lib/FoldersConfig.php'; $skipPhpFiles[] = 'se-lib/FileUploader.php'; $skipPhpFiles[] = 'se-lib/Route/Budget.php'; $skipPhpFiles[] = 'se-lib/Route/FixCrmProcesInitIdx.php'; $skipPhpFiles[] = 'se-lib/Route/FixProjectPath.php'; $skipPhpFiles[] = 'se-lib/Route/FixZasobPath.php'; //$skipPhpFiles[] = 'se-lib/Route/Install.php'; $skipPhpFiles[] = 'se-lib/Route/Msgs.php'; $skipPhpFiles[] = 'se-lib/Route/UrlAction/WmsGenerate.php'; $skipPhpFiles[] = 'superedit-DB_PROCEDURES_CREATE.php'; $skipPhpFiles[] = 'se-lib/DataSourceException.php'; $skipPhpFiles[] = 'se-lib/Core/Pdo.php'; $skipPhpFiles[] = 'se-lib/Cron.php'; $skipPhpFiles[] = 'se-lib/Router.php'; $skipPhpFiles[] = 'se-lib/RouteBase.php'; $skipPhpFiles[] = 'se-lib/HttpException.php'; $skipPhpFiles[] = 'se-lib/DebugExecutionTime.php'; $skipPhpFiles[] = 'WindykacjaZestawienia.php'; $skipPhpFiles[] = 'superedit-DB_PROCEDURES_CREATE.php'; */ $skipPhpFiles = array(); $skipPhpFiles[] = 'bash_sync_perms.php'; $skipPhpFiles[] = 'bash_install_check.php'; $skipPhpFiles[] = '.config.php'; $skipPhpFiles[] = '.config_base_structure.php'; $skipPhpFiles[] = 'V.php'; $skipPhpFiles[] = 'Lib.php'; $skipPhpFiles[] = 'DB.php'; $skipPhpFiles[] = 'DBG.php'; $skipPhpFiles[] = 'User.php'; $skipPhpFiles[] = 'UserProfile.php'; $skipPhpFiles[] = 'Config.php'; $skipPhpFiles[] = 'INI.php'; $skipPhpFiles[] = 'FoldersConfig.php'; $skipPhpFiles[] = 'FileUploader.php'; $skipPhpFiles[] = 'Budget.php'; $skipPhpFiles[] = 'FixCrmProcesInitIdx.php'; $skipPhpFiles[] = 'FixProjectPath.php'; $skipPhpFiles[] = 'FixZasobPath.php'; //$skipPhpFiles[] = 'se-lib/Route/Install.php'; $skipPhpFiles[] = 'Msgs.php'; $skipPhpFiles[] = 'WmsGenerate.php'; $skipPhpFiles[] = 'superedit-DB_PROCEDURES_CREATE.php'; $skipPhpFiles[] = 'DataSourceException.php'; $skipPhpFiles[] = 'Pdo.php'; $skipPhpFiles[] = 'Cron.php'; $skipPhpFiles[] = 'Router.php'; $skipPhpFiles[] = 'RouteBase.php'; $skipPhpFiles[] = 'HttpException.php'; $skipPhpFiles[] = 'DebugExecutionTime.php'; $skipPhpFiles[] = 'WindykacjaZestawienia.php'; $skipPhpFiles[] = 'superedit-DB_PROCEDURES_CREATE.php'; $skipPhpFiles[] = 'UI.php'; $skipPhpFiles[] = 'Request.php'; $skipFilesSgencoder = (!empty($skipPhpFiles)) ? ' -x ' . implode(' -x ', $skipPhpFiles) : ''; $phpVersionsForSgencoder = '--phpversion 5.5 --phpversion 5.6';// encode for PHP 5.x (currently supported PHP 5.0-5.6) $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; exec($exec,$out,$exit);$out="";$exit=""; DEBUG_S(-3,'Zakodowanie kodu php/kompilacja z licencja i kluczem',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__); } //usuniecie musi byc przed instalacja TODO //$last_command_id++; // //$ins_sh.=MakeCommand($command_id,"rm -Rf ".$installer_tmp,$installer_tmp,$installer_dir) ; /* klucz nie potrzebny do kodowania dla domeny $last_command_id++; mkdir($installer_dir."/".$last_command_id,0777); $exec='cd '.$installer_dir."/".$last_command_id.' && /Applications/SourceGuardian.app/Contents/MacOS/licgen --projid '.$h->ID.' --projkey '.$h->ID.' procesylicence_se'; exec($exec,$out,$exit);$out="";$exit=""; DEBUG_S(-3,'Wygenerowanie klucza dla klienta',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__); $ins_sh.="mv ".$last_command_id."/* /Library/Server/Web/Data/Sites/Default/SE/ \n"; */ mkdir($installer_dir."/scripts",0777); $file=fopen($installer_dir."/scripts/postinstall", "w") or die('Cannot open file: '.$installer_dir."/scripts/postinstall"); fwrite($file,$ins_sh."\n"); fclose($file); // die(); chmod($installer_dir."/scripts/"."postinstall", 0755); $out="";$exit=""; // $exit_file=str_replace('.', '_', $UID.".".$h->SERVER_ADDRESS); //$exec="tar -C".$installer_dir_tar." -cz ".$UID.".".$h->SERVER_ADDRESS." > ".$installer_dir_tar."/".$exit_file.".tar.gz"; //exec($exec ,$out,$exit); //DEBUG_S(-3,'Tarowanie ',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__); $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" ; exec($exec ,$out,$exit); DEBUG_S(-3,'Robiebie pkg ',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__); echo "
instalacja pojedynczego komponentu {$exit_file}.pkg - NIE ŚCIĄGAJ JEJ!!!\n"; //echo "
Instalator skrypt TODO : \n".htmlspecialchars($ins_sh)."
"; // return 0; } function INSTALL_SES_PROCESY_A() { $INSTALL_ROOT='/Library/Server/Web/Data/Sites/SE-production-git/SE'; //glowny katalog ze zrodlem SE $OPTIONS->SE_config='/Library/Server/Web/Data/Sites/SE-config'; //glowny katalog z konfigami //DB::query('update SES_PROCESY5_A set INSTALL_COMPLETE_POINT=0 '); //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 // $cmd=INSTALL_GETCOMMANDS(); // $sql="select * from SES_PROCESY5_A where A_STATUS='NORMAL' and INSTALL_COMPLETE_POINT<'".count($cmd)."'"; $sql="select * from SES_PROCESY5_A where A_STATUS='NORMAL' "; if(!empty($_REQUEST['ID'])) $sql.=" and ID='{$_REQUEST['ID']}'"; else { $sql.=" and 1=2 "; echo "Musisz wyzwolic instalacje konkretnego serwera z parametrem"; } DB::query('set global max_allowed_packet=1000000000;'); $res=DB::query($sql); //if(DB::num_rows==0) echo "brak rekordow"; while($h=DB::fetch($res)) { $REMOTE_FOLDER_ROOT=str_replace(array(".","-"),'_',$h->SERVER_ADDRESS); //also database name! /* $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); //! FORMULARZ MENU */ echo "
"; /* Ustal instalacje
Ustal poczatek
Ustal koniec */ echo "


"; // $ldap_dc_generated=implode(',dc=',explode("",$h->SERVER_ADDRESS)); $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); foreach($needed as $ind=>$need) { if(empty($need)) { echo 'Brak ustalonej jednej z wymaganych zmiennych w ustawieniach instalacyjnych serwera ('.$ind.')' ; die(); }; } //! POBIERZ_XML_AUTOCONFIG_USB if(!empty($_REQUEST['POBIERZ_XML_AUTOCONFIG_USB'])) { //if(empty($h->ADMIN_USERNAME_INITIAL_PASSWD)) die('Brak ADMIN_USERNAME_INITIAL_PASSWD'); $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); echo "
\n".htmlspecialchars($xml)."
"; return 0; } //! WYKONAJ_REFERENCYJNA_BAZE_DANYCH if(!empty($_REQUEST['WYKONAJ_REFERENCYJNA_BAZE_DANYCH'])) { DEBUG_S(-3,'cmd WYKONAJ_REFERENCYJNA_BAZE_DANYCH params: INSTALL_ROOT ',array($INSTALL_ROOT),__FILE__,__FUNCTION__,__LINE__); set_time_limit(36000); $CONNTEST = DB::getDB('test_db'); $CONNTEST->query('drop database test'); $CONNTEST->query('create database test'); $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 exec($exec,$out,$exit); DEBUG_S(-3,$command_id.':out of CREATE_ZASOBY_STRUCTURES_CONFIG',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__); //zainstalowanie struktur w tabeli test etc $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 $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 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=""; $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 ? 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=""; $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%'; //import procesow z tagami PISMO 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=""; //tutaj bedzie TODO mysqldump do katalogu installera i komendy z tym zwiazane musza byc jakies - przekopiuj dumpa, odpal go w bazie glownej $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 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=""; $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 exec($exec,$out,$exit); DEBUG_S(-3,$command_id.':out of4/4 mysqldump',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__);$out="";$exit=""; } //! POBIERZ_INSTALATOR_SH else if(!empty($_REQUEST['POBIERZ_INSTALATOR_SH'])) { $installer_url="http://biuro.biall-net.pl/PLIKI/SES_PROCESY5_A/"; //miejsce do sciagania instalatora przez WWW $installer_dir_tar="/Library/Server/Web/Data/Sites/Default/PLIKI/SES_PROCESY5_A"; //katalog CWD z ktorego budowana jest instalacja $h->VERSION_GIT='version-git' ; //TODO @2015-03-12 do poprawy w GUI zwracanie wlasciwego repozytorium if(!empty($h->VERSION_GIT)) { //Bzyk @ 2016-11-24 //Automatyczne dodanie rekordu dns do serwera w domenie procesy5.pl try { Lib::loadClass('ServeradminParser'); $serveradmin = new ServeradminParser(); if (preg_match('/^(.*)\.procesy5\.pl$/',$h->SERVER_ADDRESS,$matches)) { // Jezeli nazwa serwera jest w domenie procesy5.pl, dodajemy rekord DNS dla samej danej nazwy (np. test.procesy5.pl) if ($serveradmin->dnsAddIpAddress("procesy5.pl", $matches[1], $h->SERVER_ADDRESS_IP, true)) { $serveradmin->applyConf(); DEBUG_S(-3,'Dodano wpis DNS',$h->SERVER_ADDRESS.' IN A '.$h->SERVER_ADDRESS_IP); } else DEBUG_S(-3,'Wpis DNS już istnieje',$h->SERVER_ADDRESS.' IN A '.$h->SERVER_ADDRESS_IP); } else { // W przeciwnym wypadku dodajemy wpis z doklejeniem do nazwy serwera domeny procesy5.pl (np. biuro.biall-net.pl.procesy5.pl) if ($serveradmin->dnsAddIpAddress("procesy5.pl", $h->SERVER_ADDRESS, $h->SERVER_ADDRESS_IP, true)) { $serveradmin->applyConf(); DEBUG_S(-3,'Dodano wpis DNS',$h->SERVER_ADDRESS.'.procesy5.pl IN A '.$h->SERVER_ADDRESS_IP); } else DEBUG_S(-3,'Wpis DNS już istnieje',$h->SERVER_ADDRESS.'.procesy5.pl IN A '.$h->SERVER_ADDRESS_IP); } } catch (Exception $e) { DEBUG_S(-3,"Wystąpił błąd podczas próby dodania wpisu DNS",$e->getMessage()); } //@2014-09-17 od Piotr Labudda //dodałem nową komórkę [19169] VERSION_GIT z typespecialem, listę wersji //odczytuje z repozytorium w katalogu: ///Library/Server/Web/Data/Sites/SE-production-git/ //polecenia do gita: //$ git clone /Library/Server/Web/Data/Sites/SE-production-git/ NOWY_KATALOG $cmd=' rm -Rf '.$installer_dir_tar.'/'.$h->ID.'.'.$REMOTE_FOLDER_ROOT.'.git'; exec($cmd,$out,$exit); DEBUG_S(-3,'Usuwam stare pliki git ',$cmd,__FILE__,__FUNCTION__,__LINE__); {// @2016-04-06 fetch source from git and make VERSION file $cmd='cd '.$installer_dir_tar.' && git clone ssh://git@biuro.biall-net.pl:2222/plabudda/se.git '.$h->ID.'.'.$REMOTE_FOLDER_ROOT.'.git' ; exec($cmd,$out,$exit); DEBUG_S(-3,'Klonowanie aktualnego GIT ',array($cmd,$out,$exit),__FILE__,__FUNCTION__,__LINE__); $cmd = "cd {$installer_dir_tar}/{$h->ID}.{$REMOTE_FOLDER_ROOT}.git/ && echo `git show-ref --head|head -1|head -c 8` > SE/VERSION"; exec($cmd,$out,$exit); DEBUG_S(-3,'Klonowanie aktualnego GIT - create VERSION file ',array($cmd,$out,$exit),__FILE__,__FUNCTION__,__LINE__); //@2016-05 klonowanie modulu wordpressa do wspolnej paczki instalacji ; poki nie dziala - korzystamy z stuff/p5_BeeCtrl.zip $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 ' ; exec($cmd,$out,$exit); DEBUG_S(-3,'Klonowanie z aktualnego GIT modul wordpress ',array($cmd,$out,$exit),__FILE__,__FUNCTION__,__LINE__); } /* if (1==0) { //@2015-01-27 - proba zrobienia zwyklego clone $cmd='git clone /Library/Server/Web/Data/Sites/SE-production-git/ '.$installer_dir_tar.'/'.$h->ID.'.'.$REMOTE_FOLDER_ROOT.'.git'; DEBUG_S(-3,'Running command',$cmd,__FILE__,__FUNCTION__,__LINE__); exec($cmd,$out,$exit); //$ cd NOWY_KATALOG //$ git checkout v3.9.4 $cmd='cd '.$h->ID.'.'.$REMOTE_FOLDER_ROOT.'.git && git checkout '.$h->VERSION_GIT; exec($cmd,$out,$exit); DEBUG_S(-3,'Running command',array($cmd,$out,$exit),__FILE__,__FUNCTION__,__LINE__); } */ //w taki sposób w katalogu NOWY_KATALOG pojawi się katalog SE z podaną wersją //brakuje tylko katalogu SE/config/ //Można potem usunąć ukryty katalog NOWY_KATALOG/.git bo nie przyda się //do tworzenia paczek i znajdują się w nim dane z plików. $INSTALL_ROOT=$installer_dir_tar.'/'.$h->ID.'.'.$REMOTE_FOLDER_ROOT.'.git/SE'; //nadpisuje nazwe katalogu zrodlowego skad beda kopiowane pliki przez instalatora DEBUG_S(-3,'We make INSTALL_ROOT='.$INSTALL_ROOT,null,__FILE__,__FUNCTION__,__LINE__); { //@2015-03-21 dogranie konfigow z repozytorium konfigow $cmd='mkdir '.$INSTALL_ROOT.'/config' ; exec($cmd,$out,$exit); DEBUG_S(-3,'We mkdir Install Root ',array($cmd,$out,$exit),__FILE__,__FUNCTION__,__LINE__); $cmd='cp '.$OPTIONS->SE_config.'/config/.cnf--column_init* '.$INSTALL_ROOT.'/config/' ; exec($cmd,$out,$exit); DEBUG_S(-3,'We copy Install Root ',array($cmd,$out,$exit),__FILE__,__FUNCTION__,__LINE__); $cmd='cp '.$OPTIONS->SE_config.'/config/.cnf--external_ids.ini.php* '.$INSTALL_ROOT.'/config/' ; exec($cmd,$out,$exit); DEBUG_S(-3,'We copy Install Root ',array($cmd,$out,$exit),__FILE__,__FUNCTION__,__LINE__); $cmd='cp '.$OPTIONS->SE_config.'/config/.config_base_structure* '.$INSTALL_ROOT.'/config/' ; exec($cmd,$out,$exit); DEBUG_S(-3,'We copy config_base_structure*',array($cmd,$out,$exit),__FILE__,__FUNCTION__,__LINE__); } } //! pakiet : INSTALL_GETCOMMANDS $packages['pl.procesy5']['exit_file']=str_replace('.', '_', $h->ID.".".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg $packages['pl.procesy5']['installer_dir_name']=$h->ID.".".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg $packages['pl.procesy5']['installer_tmp']="/tmp/pl.procesy5_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5']['CMD_FUNCTION']="INSTALL_GETCOMMANDS"; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5']['xml_choice']['visible']='true'; $packages['pl.procesy5']['xml_choice']['title']='(I)Procesy5'; $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'; $packages['pl.procesy5']['xml_choice']['start_selected']='true'; //! pakiet : INSTALL_GETCOMMANDS_COMP_PORT $packages['pl.procesy5.COMP_PORT']['exit_file']=str_replace('.', '_', $h->ID.".COMP_PORT_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg $packages['pl.procesy5.COMP_PORT']['installer_dir_name']=$h->ID.".COMP_PORT_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg $packages['pl.procesy5.COMP_PORT']['installer_tmp']="/tmp/pl.procesy5_COMP_PORT_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.COMP_PORT']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_COMP_PORT"; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.COMP_PORT']['xml_choice']['visible']='true'; $packages['pl.procesy5.COMP_PORT']['xml_choice']['title']='(I+U)MacPorts,Xcode,Licence(decrypt)'; $packages['pl.procesy5.COMP_PORT']['xml_choice']['description']='(install and update) Needed utilities and libraries to install Procesy5 and Database, decrypt'; $packages['pl.procesy5.COMP_PORT']['xml_choice']['start_selected']='true'; //! pakiet : INSTALL_GETCOMMANDS_XSL_ENGINES $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 $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 $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 $packages['pl.procesy5.INSTALL_GETCOMMANDS_XSL_ENGINES']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_XSL_ENGINES"; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.INSTALL_GETCOMMANDS_XSL_ENGINES']['xml_choice']['visible']='true'; $packages['pl.procesy5.INSTALL_GETCOMMANDS_XSL_ENGINES']['xml_choice']['title']='(I+U)XSL Engines'; $packages['pl.procesy5.INSTALL_GETCOMMANDS_XSL_ENGINES']['xml_choice']['description']='(install and update) Needed tools tools like saxon '; $packages['pl.procesy5.INSTALL_GETCOMMANDS_XSL_ENGINES']['xml_choice']['start_selected']='true'; //! pakiet: INSTALL_GETCOMMANDS_MYSQL55 $packages['pl.procesy5.MYSQL55']['exit_file']=str_replace('.', '_', $h->ID.".MYSQL55_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg $packages['pl.procesy5.MYSQL55']['installer_dir_name']=$h->ID.".MYSQL55_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg $packages['pl.procesy5.MYSQL55']['installer_tmp']="/tmp/pl.procesy5_MYSQL55_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.MYSQL55']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_MYSQL55"; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.MYSQL55']['xml_choice']['visible']='true'; $packages['pl.procesy5.MYSQL55']['xml_choice']['title']='(I)Mysql-55'; $packages['pl.procesy5.MYSQL55']['xml_choice']['description']='(use for install only) Required Mysql55 database from MacPorts'; $packages['pl.procesy5.MYSQL55']['xml_choice']['start_selected']='true'; //! pakiet: INSTALL_GETCOMMANDS_POSTGIS $packages['pl.procesy5.POSTGIS']['exit_file']=str_replace('.', '_', $h->ID.".POSTGIS_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg $packages['pl.procesy5.POSTGIS']['installer_dir_name']=$h->ID.".POSTGIS_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg $packages['pl.procesy5.POSTGIS']['installer_tmp']="/tmp/pl.procesy5_POSTGIS_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.POSTGIS']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_POSTGIS"; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.POSTGIS']['xml_choice']['visible']='true'; $packages['pl.procesy5.POSTGIS']['xml_choice']['title']='(I)Postgres-postgis'; $packages['pl.procesy5.POSTGIS']['xml_choice']['description']='Required Postgis database for qGIS (Use for install)'; $packages['pl.procesy5.POSTGIS']['xml_choice']['start_selected']='true'; //! pakiet: INSTALL_GETCOMMANDS_WEBMAIL $packages['pl.procesy5.WEBMAIL']['exit_file']=str_replace('.', '_', $h->ID.".WEBMAIL_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg $packages['pl.procesy5.WEBMAIL']['installer_dir_name']=$h->ID.".WEBMAIL_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg $packages['pl.procesy5.WEBMAIL']['installer_tmp']="/tmp/pl.procesy5_WEBMAIL_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.WEBMAIL']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_WEBMAIL"; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.WEBMAIL']['xml_choice']['visible']='true'; $packages['pl.procesy5.WEBMAIL']['xml_choice']['title']='(U+I)Webmail RoundCube'; $packages['pl.procesy5.WEBMAIL']['xml_choice']['description']='Additional webmail from roundcube (Use for upgrade and install)'; $packages['pl.procesy5.WEBMAIL']['xml_choice']['start_selected']='true'; //! pakiet: INSTALL_GETCOMMANDS_SE $packages['pl.procesy5.SE']['exit_file']=str_replace('.', '_', $h->ID.".SE_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg $packages['pl.procesy5.SE']['installer_dir_name']=$h->ID.".SE_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg $packages['pl.procesy5.SE']['installer_tmp']="/tmp/pl.procesy5_SE_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.SE']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_SE"; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.SE']['xml_choice']['visible']='true'; $packages['pl.procesy5.SE']['xml_choice']['title']='(U+I)Procesy5 main application'; $packages['pl.procesy5.SE']['xml_choice']['description']='Main application and install scripts for Procesy5 (Use for upgrade and install)'; $packages['pl.procesy5.SE']['xml_choice']['start_selected']='true'; $packages['pl.procesy5.SE']['encrypt']=true; //! pakiet: INSTALL_GETCOMMANDS_SE_DB_DOMAIN $packages['pl.procesy5.SE_DB_DOMAIN']['exit_file']=str_replace('.', '_', $h->ID.".SE_DB_DOMAIN_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg $packages['pl.procesy5.SE_DB_DOMAIN']['installer_dir_name']=$h->ID.".SE_DB_DOMAIN_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg $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 $packages['pl.procesy5.SE_DB_DOMAIN']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_SE_DB_DOMAIN"; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.SE_DB_DOMAIN']['xml_choice']['visible']='true'; $packages['pl.procesy5.SE_DB_DOMAIN']['xml_choice']['title']='(I)Procesy5 install db and config for domain one '; $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)'; $packages['pl.procesy5.SE_DB_DOMAIN']['xml_choice']['start_selected']='true'; $packages['pl.procesy5.SE_DB_DOMAIN']['encrypt']=true; //! pakiet: INSTALL_GETCOMMANDS_MYADMIN $packages['pl.procesy5.MYADMIN']['exit_file']=str_replace('.', '_', $h->ID.".MYADMIN_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg $packages['pl.procesy5.MYADMIN']['installer_dir_name']=$h->ID.".MYADMIN_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg $packages['pl.procesy5.MYADMIN']['installer_tmp']="/tmp/pl.procesy5_MYADMIN_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.MYADMIN']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_MYADMIN"; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.MYADMIN']['xml_choice']['visible']='true'; $packages['pl.procesy5.MYADMIN']['xml_choice']['title']='(I+U)php MyAdmin'; $packages['pl.procesy5.MYADMIN']['xml_choice']['description']='Component located at /garbage URL, to manage database(Upgrade/Install)'; $packages['pl.procesy5.MYADMIN']['xml_choice']['start_selected']='true'; //! pakiet : INSTALL_GETCOMMANDS_DITA $packages['pl.procesy5.DITA']['exit_file']=str_replace('.', '_', $h->ID.".DITA_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg $packages['pl.procesy5.DITA']['installer_dir_name']=$h->ID.".DITA_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg $packages['pl.procesy5.DITA']['installer_tmp']="/tmp/pl.procesy5_DITA_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.DITA']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_DITA"; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.DITA']['xml_choice']['visible']='true'; $packages['pl.procesy5.DITA']['xml_choice']['title']='(I+U)DITA components'; $packages['pl.procesy5.DITA']['xml_choice']['description']='Needed utilities and libraries use DITA docs'; $packages['pl.procesy5.DITA']['xml_choice']['start_selected']='true'; //! pakiet: INSTALL_GETCOMMANDS_UNINSTALL_WORDPRESS $packages['pl.procesy5.UNINSTALL_WORDPRESS']['exit_file']=str_replace('.', '_', $h->ID.".UNINSTALL_WORDPRESS".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg $packages['pl.procesy5.UNINSTALL_WORDPRESS']['installer_dir_name']=$h->ID.".UNINSTALL_WORDPRESS".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg $packages['pl.procesy5.UNINSTALL_WORDPRESS']['installer_tmp']="/tmp/pl.procesy5_UNINSTALL_WORDPRESS".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.UNINSTALL_WORDPRESS']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_UNINSTALL_WORDPRESS"; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.UNINSTALL_WORDPRESS']['xml_choice']['visible']='true'; $packages['pl.procesy5.UNINSTALL_WORDPRESS']['xml_choice']['title']='(U)uninstall wordpress current'; $packages['pl.procesy5.UNINSTALL_WORDPRESS']['xml_choice']['description']='Warning - it drops database for Wordpress- do not use for upgrade!'; $packages['pl.procesy5.UNINSTALL_WORDPRESS']['xml_choice']['start_selected']='false'; //! pakiet: INSTALL_GETCOMMANDS_WORDPRESS $packages['pl.procesy5.WORDPRESS']['exit_file']=str_replace('.', '_', $h->ID.".WORDPRESS_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg $packages['pl.procesy5.WORDPRESS']['installer_dir_name']=$h->ID.".WORDPRESS_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg $packages['pl.procesy5.WORDPRESS']['installer_tmp']="/tmp/pl.procesy5_WORDPRESS_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.WORDPRESS']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_WORDPRESS"; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.WORDPRESS']['xml_choice']['visible']='true'; $packages['pl.procesy5.WORDPRESS']['xml_choice']['title']='(U+I)wordpress current'; $packages['pl.procesy5.WORDPRESS']['xml_choice']['description']='Wordpress configured site with admin access. Warning - it drops database - do not use for upgrade!'; $packages['pl.procesy5.WORDPRESS']['xml_choice']['start_selected']='true'; //! pakiet: INSTALL_GETCOMMANDS_WMS @2016-07 maintain bzyk $packages['pl.procesy5.INSTALL_GETCOMMANDS_WMS']['exit_file']=str_replace('.', '_', $h->ID.".WMS_".$h->SERVER_ADDRESS); //czesc nazwy wynikowego pliku .pkg $packages['pl.procesy5.INSTALL_GETCOMMANDS_WMS']['installer_dir_name']=$h->ID.".WMS_".$h->SERVER_ADDRESS; //nazwa katalogu w jakim jest przygotowywany pkg $packages['pl.procesy5.INSTALL_GETCOMMANDS_WMS']['installer_tmp']="/tmp/pl.procesy5_WMS_".$h->ID.".".$h->SERVER_ADDRESS; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.INSTALL_GETCOMMANDS_WMS']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_WMS"; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.INSTALL_GETCOMMANDS_WMS']['xml_choice']['visible']='true'; $packages['pl.procesy5.INSTALL_GETCOMMANDS_WMS']['xml_choice']['title']='(U+I)WMS server and utilities'; $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)'; $packages['pl.procesy5.INSTALL_GETCOMMANDS_WMS']['xml_choice']['start_selected']='true'; //! pakiet: INSTALL_GETCOMMANDS_SE_LAST_UPDATE - koncowe skrypty $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 $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 $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 $packages['pl.procesy5.INSTALL_GETCOMMANDS_SE_LAST_UPDATE']['CMD_FUNCTION']="INSTALL_GETCOMMANDS_SE_LAST_UPDATE"; //miejsce do ktorego installer odpakuje wszystko instalator $packages['pl.procesy5.INSTALL_GETCOMMANDS_SE_LAST_UPDATE']['xml_choice']['visible']='true'; $packages['pl.procesy5.INSTALL_GETCOMMANDS_SE_LAST_UPDATE']['xml_choice']['title']='(U+I)Procesy5 last check scirpts - must run always '; $packages['pl.procesy5.INSTALL_GETCOMMANDS_SE_LAST_UPDATE']['xml_choice']['description']='run update scripts and bash_install_check'; $packages['pl.procesy5.INSTALL_GETCOMMANDS_SE_LAST_UPDATE']['xml_choice']['start_selected']='true'; $packages['pl.procesy5.INSTALL_GETCOMMANDS_SE_LAST_UPDATE']['encrypt']=true; DEBUG_S(-3,'Dane komponentow instalacji',$packages,__FILE__,__FUNCTION__,__LINE__); foreach($packages as $pkg_id=>$pkg_info) { $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); DEBUG_S(-3,'Robie pkg '.$pkg_info['CMD_FUNCTION'],null,__FILE__,__FUNCTION__,__LINE__); 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']); $package_xml['pkg-ref'].=''; $package_xml['choices-outline'].=' '; $package_xml['choice'].=' '.$pkg_info['exit_file'].'.pkg'; } DEBUG_S(-3,'Dane xml package',$package_xml,__FILE__,__FUNCTION__,__LINE__); $product['xml']=' Procesy5 system installer pl.procesy5 '.$package_xml['pkg-ref'].' '.$package_xml['choices-outline'].' '; //$product['xml'].=$package_xml['pkg-ref']; $product['xml'].=$package_xml['choice']; $product['xml'].=''; echo "
Product XML
".$product['xml']; mkdir($installer_dir_tar."/".$h->ID.".resources",0777); $file=fopen($installer_dir_tar."/".$h->ID.".distribution.xml", "w") or die('Cannot open file: '.$installer_dir_tar.'.'.$h->ID.".distribution.xml"); fwrite($file,$product['xml']."\n"); fclose($file); //copy logo exec("cp ".$INSTALL_ROOT."/icon/procesy5.png ".$installer_dir_tar."/".$h->ID.".resources/installerImage.png"); $exec="cd ".$installer_dir_tar." && productbuild --distribution ".$h->ID.".distribution.xml --resources ".$h->ID.".resources ".$h->ID."_Procesy5_".str_replace('.','_',$h->SERVER_ADDRESS).".pkg" ; exec($exec ,$out,$exit); DEBUG_S(-3,'Robie glownego instalatora pkg',array($exec,$out,$exit),__FILE__,__FUNCTION__,__LINE__); echo "

SERVER_ADDRESS).".pkg'> ściągnij glowną instalacje Procesy5 ".$h->ID."_Procesy5_".str_replace('.','_',$h->SERVER_ADDRESS).".pkg

\n"; } else if(!empty($_REQUEST['ZAINSTALUJ_NA_PARALLELS'])) { try { $subnets["94.158.130.224"] = array( "mask" => "255.255.255.224", "gw" => "94.158.130.225", "dns" => "94.158.130.225"); $subnets["94.158.132.0"] = array( "mask" => "255.255.255.0", "gw" => "94.158.132.1", "dns" => "94.158.132.1"); foreach ($subnets as $network => $values) $availableSubnetsArr[] = $network . "/" . $values["mask"]; $availableSubnets = implode(", ",$availableSubnetsArr); $installer_dir_tar ="/Library/Server/Web/Data/Sites/Default/PLIKI/SES_PROCESY5_A"; //katalog CWD z ktorego budowana jest instalacja $package = $h->ID."_Procesy5_".str_replace('.','_',$h->SERVER_ADDRESS).".pkg"; $file = $installer_dir_tar.'/'.$package; echo "
Weryfikacja poprawności danych konfiguracyjnych"; 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ć)."); DEBUG_S(-3, 'Plik instalatora', 'OK'); 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".'); DEBUG_S(-3, 'Poprawność Adresu LDAP DC', 'OK'); 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.'); DEBUG_S(-3, 'Poprawność Adresu IP serwera', 'OK'); unset($subnet); foreach ($subnets as $network => $values) { if ((ip2long($h->SERVER_ADDRESS_IP) & ip2long($values["mask"])) == ip2long($network)) $subnet = $network; } if (!isset($subnet)) throw new Exception("Adres IP ".$h->SERVER_ADDRESS_IP." nie należy do żadnej znanej puli adresów.
Dostępne pule: ".$availableSubnets); 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.
Dostępne pule: ".$availableSubnets); 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.
Dostępne pule: ".$availableSubnets); 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.
Dostępne pule: ".$availableSubnets); DEBUG_S(-3, 'Adres IP serwera należy do znanej puli adresów', 'OK'); V::exec("ping ".$h->SERVER_ADDRESS_IP." -c 10 -i 0.2 -t 2", $output, $exit); if (!$exit) throw new Exception('Błąd - maszyna o adresie IP '.$h->SERVER_ADDRESS_IP.' już istnieje (odpowiada na "pingi").'); DEBUG_S(-3, 'Brak maszyny w sieci o adresie IP '.$h->SERVER_ADDRESS_IP, 'OK'); $result = execOnParallels('prlctl status "'.$h->SERVER_ADDRESS.'"'); if ($result) throw new Exception("Maszyna wirtualna o nazwie ".$h->SERVER_ADDRESS." już istnieje!"); DEBUG_S(-3, 'Brak wirtualnej maszyny Parallels o nazwie '.$h->SERVER_ADDRESS, 'OK'); $result = execOnParallels('[ -f "Parallels/.current_autoinstall_'.$h->SERVER_VERSION.'" ] && echo 1'); if (!$result) throw new Exception("Brak definicji szablonu wirtualnej maszyny Parallels dla systemu macOS ".$h->SERVER_VERSION); DEBUG_S(-3, 'Definicja szablonu wirtualnej maszyny Parallels dla systemu macOS '.$h->SERVER_VERSION, 'OK'); $result = execOnParallels('prlctl list -t "\$(SERVER_VERSION.')" >/dev/null 2>&1 && echo 1'); if (!$result) throw new Exception("Wystąpił problem z szablonem wirtualnej maszyny Parallels dla systemu macOS ".$h->SERVER_VERSION); DEBUG_S(-3, 'Szablon wirtualnej maszyny Parallels dla systemu macOS '.$h->SERVER_VERSION, 'OK'); echo "
Tworzenie maszyny wirtualnej"; $result = execOnParallels('prlctl clone "\$(SERVER_VERSION.')" --name "'.$h->SERVER_ADDRESS.'"'); DEBUG_S(-3, 'Tworzenie maszyny wirtualnej', $result); $result = execOnParallels('prlctl status "'.$h->SERVER_ADDRESS.'"'); if (!$result) throw new Exception("Błąd tworzenia maszyny wirtualnej Parallels o nazwie ".$h->SERVER_ADDRESS); DEBUG_S(-3, 'Poprawność utworzenia maszyny wirtualnej Parallels o nazwie '.$h->SERVER_ADDRESS, 'OK'); $plist = ' Disabled KeepAlive Labelparallels.'.$h->SERVER_ADDRESS.' ProgramArguments /usr/local/bin/prlctl start '.$h->SERVER_ADDRESS.' UserNamearkadiuszbinder RunAtLoad AbandonProcessGroup '; $result = execOnParallels('sudo -n su - echo \''.$plist.'\' > /Library/LaunchDaemons/parallels.'.$h->SERVER_ADDRESS.'.plist'); DEBUG_S(-3, 'Utworzenie pliku plist do LaunchDaemona', 'OK'); echo "
Uruchomienie maszyny wirtualnej"; execOnParallels('sudo launchctl load /Library/LaunchDaemons/parallels.'.$h->SERVER_ADDRESS.'.plist'); $i = 0; do { sleep(10); echo "."; $result = execOnParallels('prlctl list -i -j '.$h->SERVER_ADDRESS); $result_jdecoded = json_decode($result); $state = $result_jdecoded[0]->GuestTools->state; if ($i++>18) { execOnParallels('sudo launchctl unload /Library/LaunchDaemons/parallels.'.$h->SERVER_ADDRESS.'.plist'); execOnParallels('sudo rm -f /Library/LaunchDaemons/parallels.'.$h->SERVER_ADDRESS.'.plist'); execOnParallels('prlctl stop "'.$h->SERVER_ADDRESS.'" --kill'); execOnParallels('prlctl delete "'.$h->SERVER_ADDRESS.'"'); throw new Exception("Wystąpił problem z uruchomieniem maszyny wirtualnej, usuwam maszynę i przerywam..."); } } while ($state == "not_installed"); DEBUG_S(-3, 'Uruchomienie maszyny wirtualnej Parallels', 'OK'); echo "
Konfiguracja maszyny wirtualnej"; $result = execOnParallels('prlctl exec "'.$h->SERVER_ADDRESS.'" "networksetup -setmanual Ethernet '.$h->SERVER_ADDRESS_IP.' '.$subnets[$subnet]["mask"].' '.$subnets[$subnet]["gw"].'"'); DEBUG_S(-3, 'Ustawienie adresu IP/maskę oraz bramy domyślnej', $result); sleep(2); $result = execOnParallels('prlctl exec "'.$h->SERVER_ADDRESS.'" "networksetup -setdnsservers Ethernet '.$subnets[$subnet]["dns"].'"'); DEBUG_S(-3, 'Ustawienie serwera DNS', $result); sleep(2); V::exec("ping ".$h->SERVER_ADDRESS_IP." -c 5 -t 20", $output, $exit); DEBUG_S(-3, 'Weryfikacja czy maszyna wirtualna odpowiada na "pingi"', $output); if ($exit) { execOnParallels('sudo launchctl unload /Library/LaunchDaemons/parallels.'.$h->SERVER_ADDRESS.'.plist'); execOnParallels('sudo rm -f /Library/LaunchDaemons/parallels.'.$h->SERVER_ADDRESS.'.plist'); execOnParallels('prlctl stop "'.$h->SERVER_ADDRESS.'" --kill'); execOnParallels('prlctl delete "'.$h->SERVER_ADDRESS.'"'); throw new Exception('Błąd - maszyna wirtualna nie odpowiada na pingi, usuwam maszynę i przerywam...'); } $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'printf "'.$h->SERVER_ADDRESS_IP.'\t'.$h->SERVER_ADDRESS.'\n" >> /etc/hosts\''; $result = execOnParallels($cmd); DEBUG_S(-3, $cmd, $result); $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'/Applications/Server.app/Contents/ServerRoot/usr/sbin/changeip '.$h->SERVER_ADDRESS_IP.' procesy5 "'.$h->SERVER_ADDRESS.'"\''; $result = execOnParallels($cmd); DEBUG_S(-3, $cmd, $result); sleep(2); $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'scutil --set HostName "'.$h->SERVER_ADDRESS.'"\''; $result = execOnParallels($cmd); DEBUG_S(-3, $cmd, $result); sleep(2); $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'scutil --set ComputerName "'.$h->SERVER_ADDRESS.'"\''; $result = execOnParallels($cmd); DEBUG_S(-3, $cmd, $result); sleep(2); $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'scutil --set LocalHostName "'.str_replace('.','-',$h->SERVER_ADDRESS).'"\''; $result = execOnParallels($cmd); DEBUG_S(-3, $cmd, $result); sleep(2); $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'dscl . passwd /Users/server "'.str_replace('!','\!',$h->ADMIN_USERNAME_PASSWD).'"\''; $result = execOnParallels($cmd); DEBUG_S(-3, $cmd, $result); sleep(2); $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\''; $result = execOnParallels($cmd); DEBUG_S(-3, $cmd, $result); sleep(2); echo "
Kopiowanie pliku instalatora Procesy5"; $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.'"'; $result = shell_exec($cmd); DEBUG_S(-3, $cmd, $result); echo "
Aktualizacja certyfikatu"; $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"'; $result = execOnParallels($cmd); DEBUG_S(-3, $cmd, $result); if (!$result) throw new Exception("Wystąpił bląd instalacji certyfikatu, przerywam..."); echo "
Instalowanie Procesy5"; $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'mkdir /var/root/.procesy5_install; touch /var/root/.procesy5_install/started\''; $result = execOnParallels($cmd); $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\''; $result = execOnParallels($cmd); DEBUG_S(-3, $cmd, $result); echo "
Uruchomiono w tle instalację Procesy5 na maszynie wirtualnej ".$h->SERVER_ADDRESS.".
Aby sprawdzić status instalacji, kliknij na \"4. STATUS_INSTALACJI_NA_PARALLELS\"


"; } catch (Exception $e) { echo "
".$e->getMessage()."

"; } } else if(!empty($_REQUEST['STATUS_INSTALACJI_NA_PARALLELS'])) { try { $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'[ -f "/var/root/.procesy5_install/started" ] && echo 1\' 2>/dev/null'; $result = execOnParallels($cmd); if (!$result) throw new Exception("Błąd - automatyczna instalacja Procesy5 na wirtualnej maszynie ".$h->SERVER_ADDRESS." nie została uruchomiona."); $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'[ -f "/var/root/.procesy5_install/completed" ] && echo 1\''; $result = execOnParallels($cmd); if ($result) { echo "
Potencjalnie zainstalowano Procesy5 na ".$h->SERVER_ADDRESS."
"; echo "Przetestuj na https://".$h->SERVER_ADDRESS.""; if (!preg_match('/^(.*)\.procesy5\.pl$/',$h->SERVER_ADDRESS,$matches)) { echo " lub https://".$h->SERVER_ADDRESS.".procesy5.pl"; } echo "


"; } else { $cmd = 'prlctl exec '.$h->SERVER_ADDRESS.' \'ps ax|egrep "[i]nstaller.*_Procesy5|install\.bash"\''; $result = execOnParallels($cmd); if ($result) { echo "
Instalacja Procesy5 na ".$h->SERVER_ADDRESS." w trakcie. Odśwież stronę celem ponownej weryfikacji stanu instalacji.

"; DEBUG_S(-3, "Uruchomione procesy", "
".$result."
"); $script = trim(substr($result, strrpos($result, " "))); if (preg_match("/^\/tmp\/.*$/", $script)) { $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'[ -f "'.$script.'" ] && cat "'.$script.'"\''; $result = execOnParallels($cmd); if ($result) DEBUG_S(-3, "Aktualnie wyzwolony skrypt", "
".$script.":\n\n".$result."
"); } } else echo "
Instalacja Procesy5 na ".$h->SERVER_ADDRESS." zakończyła się niepowodzeniem.

"; } $cmd = 'prlctl exec "'.$h->SERVER_ADDRESS.'" \'cat /var/root/.procesy5_install/log\''; $result = execOnParallels($cmd); DEBUG_S(-3, "Log z instalatora", "
".$result."
"); echo "
"; } catch (Exception $e) { echo "
".$e->getMessage()."

"; } } else { if(!isset($_REQUEST['START'])||!isset($_REQUEST['STOP'])||empty($_REQUEST['ID'])) return 0; if(!empty($_REQUEST['TEST'])) { DEBUG_S(-3,'Komendy',$cmd); } else { foreach($cmd as $command_id=>$command) { //if ($command_id==48) die("przerywam na $command_id"); if(!empty($_REQUEST['START'])) { if($command_id<$_REQUEST['START']) continue; } if(!empty($_REQUEST['STOP'])) { if($command_id>$_REQUEST['STOP']) die('Wymuszony stop na '.$_REQUEST['STOP']); } if($h->INSTALL_COMPLETE_POINT>$command_id-1) { echo ",{$command_id}"; continue; //ignorujemy wykonane z powodzeniem dzialania } //! command['rsh'] if(isset($command['rsh'])) { $exec=SSH_COMMAND_REMOTE_CREATE($h->ADMIN_USERNAME,$h->SERVER_ADDRESS_IP,$h->ADMIN_USERNAME_PASSWD,$command['rsh']); 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)); flush(); $out="";$exit=""; exec($exec,$out,$exit); DEBUG_S(-3,$command_id.':out of ',array($out,$exit)); flush(); } else if(isset($command['scp'])) { $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]; 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))); flush(); exec($command_out,$out,$exit); DEBUG_S(-3,$command_id.':out ',array($out,$exit)); flush(); } else if(isset($command['scp_root'])) { $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 '); exec($exec,$out,$exit); $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/'; exec($command_out,$out,$exit); 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)); if($exit==0) { flush(); $out="";$exit=""; $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 '); exec($exec,$out,$exit); 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)); } flush(); set_time_limit(36000); } if($exit==0) { array_slice($out, 0, 1000); $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
',$out) )."' where ID='".$h->ID."' "; DB::query($sql); $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."' "; DB::query($sql); $command_id++; } else { $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
',$out) )."' where ID='".$h->ID."' "; DB::query($sql); $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."' "; DB::query($sql); die('error at '.$command_id); } } } } } }