altRobots
/robotigs/icons/actuator.pngActuatoren
/robotigs/icons/printboards.pngAlgemeen
/robotigs/icons/chassis.pngChassis
/robotigs/icons/florigs.pngFlorigs
/robotigs/icons/interfacing.gifInterfacing
/robotigs/icons/microphone_icon.pngMuziek
/robotigs/icons/musicKey_icon.pngMuzikanten
/robotigs/icons/shield.pngSchildjes
/sys/icons/sensors.pngSensors
/robotigs/icons/languages.pngTalen
/robotigs/icons/battery.pngVoedingen
/sys/icons/microController.pngµControllers
altContact
PgAdmin4-4.10"); echo ("  "); } ?>  "); /* echo (""); echo (" "); //Show pencil as button */ ?> alt  

Deze pagina is verouderd. Ga naar de vernieuwde pagina.

"); $counter = 0; $aantal = str_word_count($pict_list, 0, "0123456789"); $lijst = str_word_count($pict_list, 1, "0123456789"); while($counter < $aantal){ $pictkey = $lijst[$counter]; $qryy1 = ("SELECT * FROM illustrations WHERE ill_id = $pictkey ;"); $resulty1 = pg_query($con1, $qryy1); while($row = pg_fetch_array($resulty1)){ //Fields accesible by their name foreach( $row AS $key => $val ){ $$key = stripslashes( $val ); } } $image = ("/robotigs/documentatie/plaatjes/$ill_name"); $pictfull = str_replace('_small', '', $image); //Pictfull=biggest version $alt = ("Just wait till your 57...."); $txtname = get_txt($con1, 18, $koekje[2], $ill_id); //Robot illustrations subtitles echo (""); echo (''. $alt .'
'); $nummer = $counter + 1; $txtAfb = get_txt($con1, 9, $koekje[2], 3865); //Pic Afb if ($koekje[0]>0 and $koekje[3]>0){ //User is logged in and translates echo ("$txtAfb $nummer: "); echo ("$txtname"); echo ("
"); echo ("Ontkoppelen "); if ($counter==0){ echo ("Up "); }else{ echo ("Up "); } if ($nummer == $aantal){ echo ("Down"); }else{ echo ("Down"); } }else{ //Else of if Meaning the current useer is logged in echo ("$txtAfb $nummer: $txtname"); } echo ('

'); //End of this picture $counter++; //Prepair for next picture } echo (''); //All pictures are printed } //End of if there are 1 or more pictures to be printed ---------------------- ?>

Vorige: Python3 Home Volgende: Ftp

PgAdmin3 wordt niet langer ondersteund. PgAdmin4 kan worden geïnstalleerd via het software menu. Het grote voordeel van PgAdmin4 is dat het als mod onder Apache kan worden geïnstalleerd zodat cliënten enkel een browser nodig hebben om in de database te kunnen wroeten. Dit biedt veel veiligheidsvoordelen. Nadeel is de ingewikkelde installatie.

  • Update PgAdmin 4
  • Reeds een week nadat PgAdmin4 was geïnstalleerd kreeg ik tijdens het opstarten een melding dat de geïnstalleerde versie 4.1 niet meer actueel was en dat 4.2 moest worden geïnstalleerd. En nog 3 weken later zelfs 4.3. Kennelijk moesten er nog enkele bugs worden weggepoetst. Met een beetje hulp van Mark:
    1. Download het installatiebestand
    2. Het installatie bestand (Phyton wheel) kan worden gedownload van pgadmin.org. Kies de meest recente versie en open de directory. Download daar de pgadmin4-4.22-py3-none-any.whl of iets dergelijks naar de map downloads o.i.d.
    3. cd /home/richard
    4. Open een terminal naar je persoonlijke home directory.
    5. virtualenv -p python3 pgadmin4.22
    6. Maak in de terminal een virtuele werkomgeving voor de nieuwe versie. Let op dat de versienummers kloppen in het commando.
    7. cd pgadmin4.22
    8. Ga deze virtuele werkomgeving binnen.
    9. source bin/activate
    10. En activeer de virtuele werkomgeving. Verplaats vervolgens het zojuist gedownloade installatie bestand naar de geactiveerde directory.
    11. pip3 install ./pgadmin4-4.22-py3-none-any.whl
    12. Voert de update uit
    13. sudo python3 /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.py
    14. Nu kunt lokaal op de server in uw browser pgAdmin4 gebruiken. Sudo is nodig om later in de gebruikers database te kunnen komen. Werkte bij de installatie van 22 niet correct maar werd pas uitgevoerd va de deactivate. Probeer het nu dus ervoor.
    15. deactivate
    16. Zet de virtuele omgeving uit.
    17. sudo chown -R www-data:www-data /var/lib/pgadmin4/
    18. Nu kan straks het programma bij de data komen.
    19. sudo python3 /home/richard/pgadmin4.22/lib/python3.6/site-packages/pgadmin4/pgAdmin4.py
    20. Start de nieuwe versie van PgAdmin.

  • Voordat de installatie begint
  • Daar waar ik tot eind 2018 phppgadmin gebruikte moet dat nu worden vervangen omdat het niet meer wordt onderhouden sinds 2013. Toentertijd is er voor gekozen omdat dit aan de cliënt kant vanuit een browser kon worden bekeken en dus platform onafhankelijk was. Tegelijkertijd gebruikten we ook PgAdminIII. Dit was echter een applicatie die op iedere cliënt opnieuw moest worden geïnstalleerd. PgAdmin3 kan worden geïnstalleerd via het software menu. Deze versie (3) loopt echter flink achter bij dat wat wordt geadviseerd door PgSql(4). Wij volgen deze handleiding van DigitalOcean. Onderstaand specifiek voor onze situatie samengevat. Er wordt verondersteld dat de volgende onderdelen al zijn geïnstalleerd:
    1. Ubuntu
    2. Er wordt verondersteld dat de installatie van Ubuntu is uitgevoerd. Zie ook LAMP. Voor de geïnstalleerde release kijk met:
      lsb_release -a
      Deze handleiding is enkel geschikt voor 18.04.
    3. Firewall ufw
    4. Er wordt verondersteld dat als firewall ufw wordt gebruikt. Voor de geïnstalleerde release kijk met:
      ufw version
      ufw 0.35 Copyright 2008-2015 Canonical Ltd.
    5. Apache
    6. Er wordt verondersteld dat de installatie van Apache2 is uitgevoerd. Zie ook LAMP Voor de geïnstalleerde release kijk met:
      apache2 -V
      Server version: Apache/2.4.29 (Ubuntu) Server built: 2018-10-10T18:59:25 (meest actuele in februari 2019: 2.4.37)
    7. PostgreSQL
    8. Er wordt verondersteld dat de installatie van PostgreSQL is uitgevoerd. Kijk op de homepage van PgSQL voor de laatste release. Zie ook LAMP Voor de geïnstalleerde release kijk met:
      psql -V
      (PostgreSQL) 11.1 (Ubuntu 11.1-3.pgdg18.04+1) feb 2019
    9. Python
    10. Er wordt verondersteld dat de installatie van python is uitgevoerd. Zie ook python. Voor de geïnstalleerde release kijk met:
      python3 -V
      Let op want dit zal een ander resultaat geven dan: python -V

  • Installatie
  • Dit is de installatie volgens askUbuntu. Nadat ik diverse andere handleidingen had gevolgd bleek deze beschrijving het gewenste resultaat te geven (nou ja: min of meer: Moet wel bijv ook de setup.py invoegen etc). De onderstaande handleiding voor een installatie is een uitgebreidere versie.

    1. sudo apt update
    2. Voor de zekerheid. Indien nodig doe een: sudo apt upgrade.

    3. sudo apt-get install build-essential libssl-dev libffi-dev python-dev libgmp3-dev libpq-dev libapache2-mod-wsgi-py3
    4. Installeer algemene pgadmin4 ondersteunende pakketten.

    5. sudo mkdir -p /var/lib/pgadmin4/sessions
    6. Directory aanmaken, wordt later tijdens installatie gebruikt.

    7. sudo mkdir /var/lib/pgadmin4/storage
    8. Directory aanmaken, wordt later tijdens installatie gebruikt.

    9. sudo mkdir /var/log/pgadmin4
    10. Directory aanmaken, wordt later tijdens installatie gebruikt.

    11. sudo chown -R richard:staff /var/lib/pgadmin4
    12. Zet de rechten voor tijdens de installatie op jezelf omdat je onder je eigennaam de installatie gaat uitvoeren.

    13. sudo chown -R richard:staff /var/log/pgadmin4
    14. Zet de rechten voor tijdens de installatie op jezelf omdat je onder je eigennaam de installatie gaat uitvoeren.

    15. pip3 install --user --upgrade pip
    16. Eerst wat systeem onderhoud.

    17. cd ~
    18. Een virtual environment moet worden aangemaakt op de plek waar je hem wilt hebben.

    19. python3 -m venv pgadmin
    20. Dit creëert een nieuwe virtual environment met de naam pgadmin.

    21. cd pgadmin
    22. Een virtual environment is aangemaakt en ga er nu in.

    23. source bin/activate
    24. De virtual environment moet worden geactiveerd. Let op je cursor in de monitor.

    25. pip3 install --user cryptography pyopenssl ndg-httpsclient pyasn1
    26. Installeer pakketten nodig om wheel te kunnen installeren.

    27. python3 -m pip install wheel
    28. Installeer wheel in de virtuele omgeving (Successfully installed wheel-0.32.3).

    29. wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v4.1/pip/pgadmin4-4.1-py2.py3-none-any.whl
    30. Download het pakket.

    31. python3 -m pip install pgadmin4-4.1-py2.py3-none-any.whl
    32. Installeer het pakket.

    33. deactivate
    34. Zet de virtuele omgeving uit.

    35. sudo chown -R www-data:www-data /var/lib/pgadmin4/
    36. Nu kan starks het programma bij de data komen.

    37. sudo chown -R www-data:www-data /var/log/pgadmin4/
    38. Nu kan starks het programma bij de data komen.

    39. sudo python3 /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.py
    40. Nu kunt lokaal op de server in uw browser pgAdmin4 gebruiken. Sudo is nodig om later in de gebruikers database te kunnen komen.

  • Configuratie Apache
    1. sudo gedit /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/config.py
    2. Systeem is niet te bereiken via: http://192.186.2.1:5050/, maar wel via localhost of 127.0.0.1?
      # This option allows the user to host the application on a LAN
      # Default hosting is on localhost (DEFAULT_SERVER=`localhost`).
      # To host pgAdmin4 over LAN set DEFAULT_SERVER=`0.0.0.0` (or a specific
      # adaptor address.
      #
      # NOTE: This is NOT recommended for production use, only for debugging
      # or testing. Production installations should be run as a WSGI application
      # behind Apache HTTPD.
      DEFAULT_SERVER = `192.168.2.1`
      
      Nu kunt lokaal op uw gehele netwerk in uw browser pgAdmin4 gebruiken.

    3. apachectl -?
    4. Een handige tool om te onderzoeken op welke manier Apache geconfigureerd is. Het blijkt met apachectl -M dat de wsgi_module (shared) gestart is.

      En dan enkel als ik handmatig eerst het programma pgadmin4.py start in een terminal. Het lijkt er op dat Apache nog niets serveert of dat er een firewall aan de gang is. Op Postgress alles open gezet. Wij beginnen met de Quick start om te controleren of onze mod correct werkt. WSGI is a specification of a generic API for mapping between an underlying web server and a Python web application.

    5. sudo gedit /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/config.py
    6. How to run Python Scripts with Apache and mod_wsgi on Ubuntu 18.04 Howtoforge. 145.132.86.92 is ons eigen adres van buitenaf. sudo service postgresql restart en sudo systemctl restart apache2. Ik ben bang dat ik nu last heb van een firewall. Maar sudo python3 /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.py start niet en eindigt met de foutmelding: (, OSError(99, `Cannot assign requested address`).

    7. Router firewall
    8. Port Mapping
      
      You can configure the router as a virtual server so that remote users accessing services such as the Web or FTP at your
      local site via public IP addresses can be automatically redirected to local devices configured with private IP addresses.
      In other words, depending on the requested service (TCP/UDP port number), the router redirects the external service 
      request to the appropriate devices (located at another internal IP address). This tool can support both port ranges, 
      multiple ports, and combinations of the two.
      
      For example:
      
      Port Ranges: ex. 100-150
      Multiple Ports: ex. 25,110,80
      Combination: ex. 25-100,80
      No. 	LAN IP 	Protocol Type 	LAN Port 	Public Port 	Enable 	Configure
      1	192.168.2.1	TCP	80	80		Edit  Delete
      2	192.168.2.1	TCP	21	21		Edit  Delete
      3	192.168.2.1	TCP	5050	5050		Edit  Delete
       	Add

  • Configuratie
  • Nu kunt lokaal op de server in uw browser pgAdmin4 gebruiken. Wij willen bereiken dat dit als Apache module wordt geserveerd en dat dit overal ter wereld met een browser kan worden gebruikt. Het moet vanzelf opstarten als de server start.
    Dit is ingewikkeld en wordt nergens helder uitgelegd. We hebben de officiële handleiding maar ook 1 van DigitalOcean. Dit is de installatie volgens askUbuntu die ons tot nu toe nog het beste heeft geholpen.
    1. cd /home/richard/pgadmin
    2. Stap in de root van de virtual environment.
    3. source bin/activate
    4. De virtual environment moet worden geactiveerd. Let op je cursor in de monitor.
    5. sudo python3 /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/setup.py
    6. Maak eerst de directories aan en de rechten omzetten naar de gebruiker. Dan de setup draaien en vervolgens de rechten naar www-data zetten. Dit maakt de 4 bestanden aan. ?
    7. cp /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/config.py /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/config_local.py
    8. De config_local.py mag worden weggelaten indien hij hetzelfde is als het config.py bestand. Anders heeft u met dit commando een leuk beginnetje.
    9. sudo gedit /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/config_local.py
    10. De inhoud moet worden gewijzigd. Let op de verkeerde aanhalingstekens.
      LOG_FILE = `/var/log/pgadmin4/pgadmin4.log`
      SQLITE_PATH = `/var/lib/pgadmin4/pgadmin4.db`
      SESSION_DB_PATH = `/var/lib/pgadmin4/sessions`
      STORAGE_DIR = `/var/lib/pgadmin4/storage`
      SERVER_MODE = True
    11. sudo gedit /etc/apache2/sites-available/pgadmin4.conf
    12. Let op: deze inhoud wordt niet juiste weergegeven.
      VirtualHost *>
          ServerName 127.0.0.1
      
          WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/home/richard/pgadmin
          WSGIScriptAlias / /home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi
      
          Directory "/home/richard/pgadmin/lib/python3.6/site-packages/pgadmin4/">
              WSGIProcessGroup pgadmin
              WSGIApplicationGroup %{GLOBAL}
              Require all granted
          /Directory>
      /VirtualHost>
    13. sudo a2dissite 000-default.conf
    14. Wijzig de basis configuratie van Apache.
    15. sudo a2ensite pgadmin4.conf
    16. Wijzig de basis configuratie van Apache.
    17. apachectl configtest
    18. Wijzig de basis configuratie van Apache.
    19. sudo systemctl restart apache2
    20. Activeer nieuwe virtual host file,

  • Installatie
    1. Maak een backup
    2. Maak een backup van de PostgreSQL database. Dit is niet noodzakelijk maar altijd verstandig. PgAdmin4 kan worden geïnstalleerd met deze how-to site. De originele how-to bevat direct ook een update van PostgreSQL.
      sudo -u postgres pg_dumpall -p 5432 > /var/www/html/login/backup/pgsqldatabu
    3. Voorbereiding
    4. Voordat een upgrade wordt uitgevoerd moet de database tijdelijk worden stopgezet.
      sudo service apache2 stop
      sudo apt update
      sudo apt install libgmp3-dev libpq-dev libapache2-mod-wsgi-py3

      sudo apt-get install pgadmin4
      sudo service apache2 start
    5. Installatie
    6. Ga in terminal naar: cd /var/www/html/venvs
      source richard/bin/activate
      Let op het scherm. Vanuit deze geactiveerde directory (cd richard):
      Installeer vanuit deze directory.
      deactivate en alles is weer normaal.

      wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v4.1/pip/pgadmin4-4.1-py2.py3-none-any.whl
      python -m pip install wheel
      python -m pip install pgadmin4-4.1-py2.py3-none-any.whl

      configuratie:
      python /home/richard/pgadmin4.15/lib/python3.6/site-packages/pgadmin4/setup.py
      sudo gedit /etc/apache2/sites-available/pgadmin4.conf

  • PgAdmin3
  • Het blijkt voor mij bepaald ingewikkeld om PgAdmin4 lopend te krijgen. Omdat PgAdmin3 ook loopt op de server eerst deze ook maar geïnstalleerd op een cliënt om dan toch in ieder geval zeker te weten dat de rechten kloppen.
    1. Installatie
    2. De installatie kan vanuit het Ubuntu softwarecentrum gebeuren.

Vorige: Python3 Home Volgende: Ftp

$val ){ $$key = stripslashes( $val ); } $jaar = substr($changeddate,0,4); $maand = substr($changeddate,5,2); $dag = substr($changeddate,8,2); $lastupdate = ("$jaar $maand $dag"); $prtsrttxt = get_txt($con1, 26, 1, $idsrtodd); $jaar = substr($createddate,0,4); $maand = substr($createddate,5,2); $dag = substr($createddate,8,2); $create_stamp = ("$dag $maand $jaar"); //GENERAL INFO FOR EVERY USER ************************************************** echo ("

"); echo (""); if ($codetext) { //Code like KY-026 or NA-41 echo (""); } //End of if ($codetext) $tmp = get_txt($con1, 9, $koekje[2], 3741); //Fieldname at screen if ($prijseurinclbtw > 0){ //Show price indication $prijs_formatted = number_format($prijseurinclbtw / 100, 2, ',', '.'); echo (""); echo (""); } //End of if ($prijseurinclbtw > 0) if ($sketchtext) { //Link to OWN SOFTWARE $tmp = get_txt($con1, 9, $koekje[2], 3738); //Fieldname at screen echo (""); } //End of if ($sketchtext) $tmp = get_txt($con1, 9, $koekje[2], 3744); //Fieldname at screen if ($pinouttext) { //Pinout echo (""); } $tmp = get_txt($con1, 9, 1, 3735); //Fieldname at screen $tmp2 = get_txt($con1, 26, 1, $row4[16]); //Group name in its language echo (""); if ($koekje[0]>0 and $koekje[3]>0){ //User is logged in and translates $tmp = get_txt($con1, 9, $koekje[2], 3918); //Fieldname at screen LANGUAGE if ($row4[26] == 1) {$imgname = "nederland.png";} if ($row4[26] == 2) {$imgname = "deutschland.png";} if ($row4[26] == 3) {$imgname = "uk.png";} if ($row4[26] == 4) {$imgname = "france.png";} echo (""); $tmp = get_txt($con1, 9, $row4[27], 3919); //Fieldname at screen $statuskey = get_status_key($con1, $status); $tmp2 = get_txt($con1, 61, $koekje[2], $statuskey); //Fieldname at screen echo (""); } $tmp = get_txt($con1, 9, 1, 3966); //Fieldname at screen echo (""); echo ("
"); //Header $tmp = get_txt($con1, 9, $koekje[2], 3923); //Fieldname at screen if ($koekje[3]=="1") { //If this user wants to translate then echo ("$tmp"); //If desired }else{ echo ("$tmp"); } //Else just show if no need to translate if ($koekje[0]>0 and $koekje[3]>0){ //User is logged in and translates echo (" (edit)"); } echo ("Algemene informatie test
"); $tmp = get_txt($con1, 9, $koekje[2], 3739); //Fieldname at screen if ($koekje[3]=="1") { //If this user wants to translate then echo ("$tmp"); //Class for colour }else{ //So you are not allowed to translate echo $tmp; //Show screenname of this field in user language } //End of If you want to translate this fieldname at screen echo (" "); if ($codelink) { echo ("$codetext"); }else{ echo ("$codetext"); } //End of if ($pinoutlink) echo ("
$tmp  "); if ($urlprijs){ echo ("€  $prijs_formatted"); }else{ echo ("€  $prijs_formatted"); } //End of if ($urlprijs > "") echo ("
$tmp  "); if ($sketchlink) { echo ("$sketchtext"); }else{ echo ("$sketchtext"); } //End of if ($sketchlink) echo ("
$tmp  "); if ($pinoutlink) { echo ("$pinouttext"); }else{ echo ("$pinouttext"); } //End of if ($pinoutlink) echo ("
$tmp  "); //MENU GROUP echo (""); echo ("$tmp2
$tmp"); echo ("flag.gif"); echo ("
$tmp  "); //STATUS echo ("$status $tmp2
$tmp  "); //LAST CHANGED $tmp = substr($changeddate, 0, 10); echo ("$tmp

"); return; //////////////////////////////////////////////////////////////////////////////// function get_status_key($con, $num){ $qry = ("SELECT id FROM status WHERE nr = $num ;"); $result = pg_query($con, $qry); $row = pg_fetch_array($result); return ("$row[0]"); } 0 AND software.rstid = 2 AND tblsystext.lanid = $koekje[2] AND tblsystext.txlid = 19 ORDER BY sftname ASC , controller ASC ;"); $result = pg_query($con1, $qry2); if (pg_num_rows($result)>0) { //Only if at least 1 program exists echo ('

'); echo (""); while($col = pg_fetch_array($result)){ $col[0] = ("$col[0]"); echo (""); echo (""); echo (""); if ($koekje[0] > 0 and $koekje[3]>0){ //User is logged in and translates echo (""); } echo (''); } echo ('
"); //Header $tmp = get_txt($con1, 9, $koekje[2], 3922); //Fieldname at screen if ($koekje[3]=="1") { //If this user wants to translate then echo ("$tmp"); //If desired }else{ echo ("$tmp"); } //Else just show if no need to translate echo ("
$col[2]  $col[0]"); echo ("(Edit)
'); } ?> 0){ if ($header == 0) { echo ("

"); echo (""); $header++; } //End of if ($header == 0) echo (""); echo (""); } } if ($header > 0){ echo ("
"); //Header $tmp = get_txt($con1, 9, $koekje[2], 3879); //Fieldname at screen if ($koekje[3]=="1") { //If this user wants to translate then echo ("$tmp"); //If desired }else{ echo ("$tmp"); } //Else just show if no need to translate echo ("
$colbpp[2]"); //Show software van deze bot $qry=("SELECT software_basedir FROM farmbotversie WHERE id = $colbpp[0];"); $result = pg_query($con1, $qry); $col = pg_fetch_array ($result ,0); $dir1 = "/var/www/html/robotigs/software/$col[0]"; $arr1 = glob($dir1, GLOB_ONLYDIR); if (isset($arr1[0])){ $folder = $arr1[0]; $countertmp = 0; echo ("
    "); foreach (scandir($folder, 1) as $filename) { if ($filename<>"." AND $filename <>".."){ if ($countertmp == 0){ $countertmp++; } //End of if ($countertmp == 0) $tmp = "/"; $dir = substr($folder, 14) ."/"; $link = $tmp .$dir .$filename; $showname = substr($filename, 0 ,-4); echo ("
  • "); echo "$showname"; echo ("
  • "); } //End of if ($filename<>"." AND $filename <>".."){ } //End of foreach (scandir($folder, 1) as $filename) echo ("
      "); } //End of if (isset($arr1[0])) echo ("
"); } ?>
Warning: include(/var/www/html/robotigs/includes/wishlistperpart.php): Failed to open stream: No such file or directory in /var/www/html/robotigs/includes/parts_header.php on line 128

Warning: include(): Failed opening '/var/www/html/robotigs/includes/wishlistperpart.php' for inclusion (include_path='.:/usr/share/php') in /var/www/html/robotigs/includes/parts_header.php on line 128