====== MOBIS ====== * mobis: [[http://shop.epos.cz/mobis/mobis.php]] * ctecka: [[http://shop.epos.cz/mobis/sklad_terminal.php]] * pokud nejde odhlasit: https://server/mobis/mobis.php?WebManagerCommand=Close * Chrome+selfsigned certifikaty - pridat https://server do: [[chrome://flags/#unsafely-treat-insecure-origin-as-secure]] pro localhost verze chrome >=119 [[chrome://flags/#temporary-unexpire-flags-m118]] a verze <119 [[chrome://flags/#allow-insecure-localhost]] * refresh mobis android chrome: Nastaveni - Ochrana soukromi - Vymazat udaje o prohlizeni - Poslednich 24 hodin * testování mobil chrome: CTRL+SHIFT+I (Prozkoumat) CTRL+SHIFT+M (Toggle device) + F5 Refresh * pokud se dlouho načítá úvodní login v Chrome - pak Nastavení - Vymazat údaje o prohlížení - Obrázky a soubory v mezipaměti (od začátku) * parametry pro login: ''Data=data&User=username&Password='' * ulozeni hesla do local storage: ''?SavePassword'' (zruseni ''?ClearPassword'') * spusteni chrome jako app + jiny profile: chrome --user-data-dir="c:\users\jmeno\AppData\Roaming\obis\chrome" --app="https://user:pass@mobis.domain.cz/mobis/mobis.php" * Command Startmenu: ''Command=StartMenu&Name=MenuItemName'' (např. plancalendar) - MOBIS musí být přepnutý v Startmenu * {{:progs:epos_root_ca1.cer|aktuální certifikát autority epos_root_ca1.cer}}, {{:progs:epos_root_ca1.crt|aktuální certifikát autority epos_root_ca1.crt}}, pro android {{:progs:d5c3f7ce.0|d5c3f7ce.0}} (ID: 00:B3:CD:0E:7D:B0:68:84:D0 platnost do 7.7.2024) * pro android nahrat d5c3f7ce.0 do /system/etc/security/cacerts/ , chmod 644 viz. [[http://wiki.cacert.org/FAQ/ImportRootCert#CAcert_system_trusted_certificates_.28without_lockscreen.29]] (aktualizace v obis-v5.0/user.obis-demo/) ===== Změny menu, rozhraní ===== ==== phpserver.ini ==== * lze vytvořit soubor $OBISROOT/html/etc/jmeno.ini (pro mobis/jmeno.php) * DesktopMode zapína explicitní chování jako v browseru na PC (záložky, detail atd) * Landscape - explicitně zobrazení naležato/nastojato (grid jako tabulka) [javascript] DesktopMode=1 Landscape=0 ==== obis5/uzivatele/Admin/mobis_menu.xml ==== LuaConsole+Uzivatele+Skupiny pro Admin: na web serveru soubor Uživatelé @cf.ShowForm("UZIVATELE") 67 Skupiny @cf.ShowForm("SKUPINY") 78 O programu @LuaForm.MainLoop("AboutForm") 61 Zobrazení adresářů systému @LuaForm.MainLoop("ShowPathsForm", nil, nil, nil, nil) 66 LuaConsole @cf.ShowForm("LuaConsoleForm") 21 **rename-mobilemenu.sh** #!/bin/sh for FILEN in `find uzivatele -name mobilemenu.xml` `find user -name mobilemenu.xml`; do DIRN=`dirname $FILEN` echo rename $DIRN/mobilemenu.xml to $DIRN/mobis_menu.xml mv $DIRN/mobilemenu.xml $DIRN/mobis_menu.xml done ===== Příkazy XMLRPCSERVER ===== * telnet localhost serviceport * LIST * DUMP * QUIT ===== XMLRPC, OBISCSERVER ===== Windows: [[https://www.virtualbox.org/wiki/Downloads|virtualbox pro windows]] + (0vypalit/linux/distros/terminaly-obis/virtualbox-server-debian-obis.ova) - importovat applianci + [[http://www.windows-noob.com/forums/index.php?/topic/4931-have-virtualbox-vms-start-as-a-service-on-a-windows-host/|run virtualbox as service]] nebo po spusteni: VBoxManage.exe startvm "obis" (Nefunkční VirtualBox viz. [[windows:index|windows faq]]) Debian/Ubuntu apt-get install lighttpd php5-cgi php5-intl php5-xmlrpc CentOS 6.* (neobsahuje lighttpd [[http://www.cyberciti.biz/faq/centos-install-lighttpd-web-server-with-yum-command/]]) wget http://epel.mirror.net.in/epel/6/i386/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm yum install lighttpd php-cgi php-intl php-xmlrpc lighttpd-fastcgi vim /etc/php5/cgi/php.ini : cgi.fix_pathinfo = 1 echo 'obiscserver_uri = "tcp://localhost:9401"' > etc/phpserver.ini #port kde posloucha xmlrpc * pro mobis je nutny firebird alespon 2.1.5 (pouziti asci_char v list) * je nutne PHP 5.3 (squeezy) * rozbalit obis4-utils.tar.gz (soubory v bin, html, http) * otestovat pomoci: BINDIR=bin64; cd $BINDIR; IPV6=0 BASE_PORT=9400 ./obisxmlrpcserver.sh start; cd ..; HTTP_PORT=8080 http/lighttpd.sh start; w3m http://localhost:8080/mobis.php ==== XMLRPCSERVER ==== * predpokladem je uzivatel obis a xinetd **Nastavení pro následující skripty** export OBISHOME=/home/obis/obis5 export BINDIR=bin64 === SystemD === mkdir $OBISHOME/service cat << EOF > $OBISHOME/service/xmlrpcserver.service [Unit] Description=Obis XMLRPC server #az po zamontovani z fstabu After=remote-fs.target [Service] Type=simple User=obis #pri ukonceni service je log smazan RuntimeDirectory=xmlrpcserver ExecStart=$OBISHOME/$BINDIR/xmlrpcserver.bin -listenport 9401 -serviceport 9402 -serverport 9400 -debug 3 -log %t/xmlrpcserver/log -readycon 2 -maxttl 86400 -maxcon 20 -noconsolelog Restart=always [Install] WantedBy=multi-user.target EOF sudo cp $OBISHOME/service/xmlrpcserver.service /etc/systemd/system sudo systemctl enable xmlrpcserver.service sudo systemctl start xmlrpcserver.service === DaemonTools === Debian/Ubuntu sudo apt-get install daemontools daemontools-run CentOS [[http://www.lowfatgeek.com/linux/how-to-install-daemontools-on-centos-6-4/335/]] yum install gcc mkdir -p /package chmod 1755 /package cd /package wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz tar -xzvf daemontools-0.76.tar.gz rm daemontools-0.76.tar.gz cd /package/admin/daemontools-0.76 echo gcc -O2 -include /usr/include/errno.h > src/conf-cc ./package/install echo "start on runlevel [12345]" > /etc/init/svscan.conf echo "respawn" >> /etc/init/svscan.conf echo "exec /command/svscanboot" >> /etc/init/svscan.conf initctl reload-configuration initctl start svscan mkdir service mkdir service/xmlrpcserver mkdir service/xmlrpcserver/supervise mkfifo service/xmlrpcserver/supervise/control mkfifo service/xmlrpcserver/supervise/ok cat << EOF > service/xmlrpcserver/run #!/bin/sh cd $OBISHOME export LANG=cs_CZ.utf8 TMP_DIR=/tmp/obis mkdir -p \$TMP_DIR -m 777 LOG_DIR=\$TMP_DIR/log mkdir -p \$LOG_DIR -m 777 exec setuidgid obis ./$BINDIR/xmlrpcserver.bin -listenport 9401 -serviceport 9402 -serverport 9400 \\ -savepid \$LOG_DIR/../xmlrpcserver.pid -debug 3 -log \$LOG_DIR/xmlrpcserver.log \\ -readycon 1 \\ -maxttl 86400 2>/dev/null EOF chmod +x service/xmlrpcserver/run sudo ln -s $OBISHOME/service/xmlrpcserver /etc/service/ nohup /usr/bin/svscanboot & ==== OBISCSERVER ==== === SystemD === **obis5/service/obiscserver-mobis.socket** [Unit] Description=Obis %j server socket [Socket] ListenStream=9400 Accept=yes [Install] WantedBy=sockets.target **obis5/service/obiscserver-mobis@.service** [Unit] Description=Obis %j server spousteny pres socket [Service] User=obis Environment=LOG_DIR=/tmp/obis5/log ExecStartPre=mkdir -p $LOG_DIR -m 777 UMask=002 ExecStartPre=/bin/bash -c 'sleep $((RANDOM%%2)).$((RANDOM%%100))' ExecStart=/home/common/obis5/bin64/obiscserver.bin -stdin -noconsolelog -notrigger -jsonrpc \ -dofile system/lua/server/web/obis.lua \ -documentdir /home/common/data/obisdoc/ \ -log ${LOG_DIR}/log-%j.%i -sqllog ${LOG_DIR}/log-%j.%i -sqlplan \ -debug 3 -warninglevel 2 StandardInput=socket StandardError=journal cd /etc/systemd/system ln -s /home/common/obis5/service/obiscserver-mobis.socket ln -s /home/common/obis5/service/obiscserver-mobis@.service systemctl enable obiscserver-mobis.socket systemctl start obiscserver-mobis.socket === pres xinetd === mkdir service/obiscserver cat << EOF > service/obiscserver/run #!/bin/bash cd $OBISHOME export LD_LIBRARY_PATH=./$BINDIR/lib export LANG="cs_CZ.utf8" TMP_DIR=/tmp/obis mkdir -p \$TMP_DIR -m 777 LOG_DIR=\$TMP_DIR/log mkdir -p \$LOG_DIR -m 777 #Port 9400 pres xinetd exec ./$BINDIR/obiscserver -stdin -notrigger \\ -log \$LOG_DIR/log.\$$ -sqllog \$LOG_DIR/sql.\$$ -sqlplan \\ -dofile ./system/lua/server/web/obis.lua \\ -debug 3 2>/dev/null EOF chmod +x service/obiscserver/run sudo cat << EOF > /etc/xinetd.d/mobiscserver service mobiscserver { type = UNLISTED port = 9400 flags = REUSE KEEPALIVE socket_type = stream wait = no user = obis server = $OBISHOME/service/obiscserver/run disable = no } EOF sudo service xinetd restart ==== fonty ==== * prohledavaji se vsechy *.ttf v /usr/share/fonts/truetype/msttcorefonts/ * RPM: sudo rpm -i http://sourceforge.net/projects/mscorefonts2/files/rpms/msttcore-fonts-installer-2.2-1.noarch.rpm (+ udelat odpovidajici linku) * DEB: sudo apt-get install ttf-mscorefonts-installer (v apt/sources.list musi byt contrib) ===== APACHE2 ==== * testovano na debian 8 apt-get install apache2 apt-get install libapache2-mod-php7.0 php7.0-intl php7.0-xmlrpc php7.0-xml a2enmod ssl a2enmod auth_digest a2enmod expires #hlaska: Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP. a2dismod mpm_event; a2dismod mpm_worker; a2enmod mpm_prefork apache2ctl configtest apache2ctl -S #kontrola virtualhosts settings apache2ctl -M #musi byt mpm_prefork_module ==== /etc/apache2/sites-enabled/mobis ==== * htdigest -c .passwd obis loginname * na MIS vygenerovat a podepsat certifikat, nahrat na server do /etc/ssl ServerAdmin root DocumentRoot /home/mobis/html ErrorLog /home/mobis/log/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /home/mobis/log/access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/mobis.domain.cz.pem SSLCertificateKeyFile /etc/ssl/private/mobis.domain.cz.key AuthType Digest AuthName "obis" AuthDigestDomain / AuthDigestProvider file AuthUserFile "/home/mobis/.passwd" Require valid-user ExpiresActive On ExpiresByType text/css "access plus 1 weeks" ExpiresByType application/javascript "access plus 1 weeks" ExpiresByType image/png "access plus 1 weeks" ExpiresByType image/jpeg "access plus 1 weeks" ExpiresByType image/gif "access plus 1 weeks" ==== /etc/apache2/sites-enabled/shop ==== ServerAdmin root DocumentRoot /home/obis/html ErrorLog /home/obis/log/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /home/obis/log/access.log combined ExpiresActive On ExpiresByType text/css "access plus 1 weeks" ExpiresByType application/javascript "access plus 1 weeks" ExpiresByType image/png "access plus 1 weeks" ExpiresByType image/jpeg "access plus 1 weeks" ExpiresByType image/gif "access plus 1 weeks" ===== init.d launchtool metoda ===== ==== /etc/init.d/xmlrpcserver ==== #!/bin/sh # Source function library. #. /etc/rc.d/init.d/functions NAME="xmlrpcserver" RUNAS="epos" LAUNCHTOOL=/usr/bin/launchtool ROOTDIR=/home/obis/obis4 LOG_DIR=/tmp/obis4/log LISTENPORT=19400 SERVICEPORT=19450 SERVERPORT=19300 READYCON=5 #DEBUGLAUNCH="--verbose --debug" #DEBUGOBIS="-debug 5 -log $LOG_DIR/$NAME.log" start() { echo -n $"Starting $NAME: " export LANG=cs_CZ.utf8 mkdir -p $LOG_DIR -m 777 chown $RUNAS $LOG_DIR/.. $LAUNCHTOOL -t $NAME -d $DEBUG --user=$RUNAS --wait-times=1,1,1,3,3,3,10,10,10 \ --chdir=$ROOTDIR --no-restrict-environment \ --forwarded-signals=1,9,15 \ --log-launchtool-errors=syslog:$NAME,LOG_DAEMON,LOG_ERR \ --log-launchtool-output=syslog:$NAME,LOG_DAEMON,LOG_ERR \ --log-child-output=syslog:$NAME,LOG_DAEMON,LOG_ERR \ --log-child-errors=syslog:$NAME,LOG_DAEMON,LOG_ERR \ "./bin/xmlrpcserver.bin -listenport $LISTENPORT -serviceport $SERVICEPORT -serverport $SERVERPORT \ -savepid $LOG_DIR/../$NAME.pid $DEBUGOBIS \ -readycon $READYCON maxttl 86400" echo } stop() { echo -n $"Shutting down $NAME: " kill `cat $LOG_DIR/../$NAME.pid` #$LAUNCHTOOL -t $NAME --kill=15 echo } status() ( $LAUNCHTOOL -t $NAME --check ) # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status ;; restart|reload) stop echo sleep 5 sleep 5 start ;; *) echo $"Usage: $0 {start|stop|restart|status}" exit 1 esac exit 0 ==== user/scripts/obiscserver-webshop.sh ==== #!/bin/sh NAME=obiscserver-webshop ROOTDIR=/mnt/raid/obis/obis4 LOG_DIR=/tmp/obis4/log #DEBUGOBIS="-debug 5 -log $LOG_DIR/$NAME-$$.log -sqllog $LOG_DIR/$NAME-$$" cd $ROOTDIR export LANG=cs_CZ.utf8 export LC_ALL=cs_CZ.utf8 export LD_LIBRARY_PATH=bin/lib exec ./bin/obiscserver.bin -stdin $DEBUGOBIS \ -model model-webshop -dofile ./system/lua/server/web/shop.lua -user webshop -pass "" -data data \ -notrigger -documentdir $ROOTDIR/obisdoc/ 2>/dev/null ==== user/scripts/obiscserver-mobis.sh ==== #!/bin/sh NAME=obiscserver-mobis ROOTDIR=/home/obis/obis4 LOG_DIR=/tmp/obis4/log DEBUGOBIS="-debug 5 -log $LOG_DIR/$NAME-$$.log -sqllog $LOG_DIR/$NAME-$$" cd $ROOTDIR export LANG=cs_CZ.utf8 export LC_ALL=cs_CZ.utf8 export LD_LIBRARY_PATH=bin/lib exec ./bin/obiscserver.bin -stdin $DEBUGOBIS \ -dofile ./system/lua/server/web/obis.lua \ -notrigger -documentdir $ROOTDIR/obisdoc/ 2>/dev/null ==== /etc/xinetd.d/obiscserver-webshop ==== * pokud hlasi chybu libwrap je treba povolit v /etc/hosts.allow service obiscserver-webshop { type = UNLISTED port = 19300 flags = REUSE KEEPALIVE socket_type = stream wait = no user = epos server = /mnt/obis/obis4/user/scripts/obiscserver-webshop.sh disable = no } service obiscserver-mobis { type = UNLISTED port = 19301 flags = REUSE KEEPALIVE socket_type = stream wait = no user = epos server = /mnt/obis/obis4/user/scripts/obiscserver-mobis.sh disable = no } ===== Kontrola kódování češtiny v helpu ===== Spustit v LuaConsoli common_help.CheckHelpEncoding() nebo následující skript. Musí končit hláškou "OK kontrola v poradku" (error v obiscserver není vidět). #!/bin/bash cat < Program "common_help.CheckHelpEncoding()" Exit EOF ===== Firefox ===== Telefonovani z desktopoveho prohlizece - protokol tel: about:config network.protocol-handler.expose.tel = false po clicku na tel: odkaz lze zvolit aplikaci na telefonovani * [[https://addons.mozilla.org/en-US/firefox/addon/auto-reload/?src=api|autoreload plugin]] pro automatické načtení kalendáře vygenerovaném na serveru v HTML po změně souboru ===== Chrome app ===== * C:\Users...\AppData\Local\Google\Chrome\User Data\Default\Preferences - nastavit ReadOnly (jinak chrome po takkill zobrazuje okno Obnovit stranky) * xmlrpcserver -maxttl 36000 (10hod) * v planovaci spustet v 5:00 skript: taskkill /F /IM chrome.exe /T timeout 10 "c:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --start-fullscreen --app="http://mobis.epos.cz/mobis/start.php?Data=data&User=username&Password="