Community
    • Categories
    • Recent
    • Popular
    • Users
    • Search
    • Register
    • Login

    QRCodes funktionieren nicht nach Update

    Scheduled Pinned Locked Moved Entwicklung
    12 Posts 4 Posters 1.5k Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • F Offline
      franknagel
      last edited by

      Bei Debian Stretch ist anscheinend das Paket php5-gd nicht mehr vorhanden. Ich sehe drei Möglichkeiten:
      1. Das Paket selber erstellen
      2. Umstieg auf php7
      3. Zurückgehen auf Debian Jessie

      1 Reply Last reply Reply Quote 0
      • B Offline
        beneblack
        last edited by

        Vielen Dank für die schnelle und präzise Antwort.
        zu Punkt 1: Gibt es da irgendwo detaillierte Schritt-für-Schritt-Anleitungen dafür, in denen jeder benötigte Befehl genannt und am Besten erklärt ist? Ich habe keine Idee, wie ich das angehen sollte.
        zu Punkt 2: würde ich testen, wenn Punkt 1 fehlschlägt. Habe aber Bedenken wegen Posts wie diesem: https://forum.i-doit.org/index.php?topic=5039.0.
        zu Punkt 3: würde ich nur ungern machen. Ich weiß nicht ob mir ein Downgrade überhaupt sauber gelingen würde. Der Snapshot ist mittlerweile gelöscht und ich bin schon froh, dass ich das System auf Stretch bekommen habe…
        ... Linux ist nicht so meine Welt ...

        1 Reply Last reply Reply Quote 0
        • F Offline
          franknagel
          last edited by

          Ich sehe gerade, dass Debian Stretch eigentlich gar kein PHP5 mehr mitbringt. Selber kompilieren ist unter den Vorausetzungen sicher nichts für den Linux-Neuling.
          Schauen wir doch erst mal, wo Sie  wirklich stehen: Was sind denn die Ausgaben von

          lsb_release -a || uname -a

          php -v

          mysqld –version

          1 Reply Last reply Reply Quote 0
          • B Offline
            beneblack
            last edited by

            :~# lsb_release -a || uname -a
            No LSB modules are available.
            Distributor ID: Debian
            Description:    Debian GNU/Linux 9.0 (stretch)
            Release:        9.0
            Codename:      stretch
            :~# php -v
            PHP 5.6.30-0+deb8u1 (cli) (built: Feb  8 2017 09:49:20)
            Copyright © 1997-2016 The PHP Group
            Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
                with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
            :~# mysqld --version
            2017-07-03 14:32:27 3070601216 [Note] Using unique option prefix 'key_buffer' is error-prone and can break in the future. Please use the full name 'key_buffer_size' instead.
            mysqld  Ver 10.1.23-MariaDB-9+deb9u1 for debian-linux-gnu on i686 (Debian 9.0)
            :~#

            Danke vorab für die Mühe.

            1 Reply Last reply Reply Quote 0
            • F Offline
              franknagel
              last edited by

              Sie haben also tatsächlich einen Zwitter aus Debian 8 und 9 auf der Platte. Das halte ich auf mittlere Sicht für eine schlechte Grundlage, da diese Kombination ziemlich einzigartig sein dürfte und auch nicht getestet werden wird. Mein Rat lautet deshalb: Gehen Sie auf PHP7.

              1 Reply Last reply Reply Quote 0
              • dkirstenD Offline
                dkirsten administrators
                last edited by

                Hallo,

                ggf. würde ich einfach einen Umstieg auf eine neue Plattform umziehen, dann bist Du sicher, dass Du keine "verbastelete" Plattform hast. Im einfachsten Falle die virtuelle Appliance (gibt es bei uns im Eval Download Prozess auf der www.i-doit.com) als Basis nutzen. Die haben wir gerade auf Debian 9 geupdated und sollte als stabile Basis gut sein.

                Die Datenbanken idoit_data und idoit_system können einfach per mysqldump exportiert und importiert werden.

                Viele Grüße,

                Daniel

                1 Reply Last reply Reply Quote 0
                • B Offline
                  beneblack
                  last edited by

                  @dkirsten hört sich auch toll an, werde ich definitiv in Erwägung ziehen, wenn das hier keinen Erfolg hat.

                  PHP habe ich nun auf php7 geupdatet:

                  :~# php -v
                  PHP 7.0.20-1~dotdeb+8.2 (cli) ( NTS )
                  Copyright (c) 1997-2017 The PHP Group
                  Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
                      with Zend OPcache v7.0.20-1~dotdeb+8.2, Copyright (c) 1999-2017, by Zend Technologies
                  :~#  mysqld --version
                  2017-07-04 10:47:32 3070588928 [Note] Using unique option prefix 'key_buffer' is error-prone and can break in the future. Please use the full name 'key_buffer_size' instead.
                  mysqld  Ver 10.1.23-MariaDB-9+deb9u1 for debian-linux-gnu on i686 (Debian 9.0)
                  

                  leider ist jetzt anstelle meiner i-doit-Anmeldemaske folgendes zu lesen:

                  " . $p_message . "\n"; die(); } // function if ((int) ini_get("memory_limit") < 128) { ini_set("memory_limit", "128M"); } // if if ((int) ini_get("upload_max_filesize") < 8) { ini_set("upload_max_filesize", "8M"); } // if // Check configuration parameters of php.ini // Allow FOPEN Wrapper for URLs. ini_set("allow_url_fopen", "1"); try { // Initialize framework. if (file_exists("src/config.inc.php") && include_once("src/config.inc.php")) { // Bootstrap. if (!include_once "src/bootstrap.inc.php") { startup_die("Could not find bootstrap.inc.php"); } // if // Include caching implementation. if (!include_once "src/caching.inc.php") { startup_die("Could not find caching.inc.php"); } // if global $g_dirs; // Temp cleanup. if (isset($_GET["IDOIT_DELETE_TEMPLATES_C"])) { $g_clear_temp = true; $l_directory = $g_dirs["smarty"] . "templates_c/"; } if (isset($_GET["IDOIT_DELETE_TEMP"])) { $g_clear_temp = true; $l_directory = $g_dirs["temp"]; } else { if (isset($_POST["IDOIT_DELETE_TEMP"])) { isys_glob_delete_recursive($g_dirs["temp"], $l_deleted, $l_undeleted); } } // if if ($g_clear_temp && isset($l_directory)) { echo "Deleting temporary files ...
                  \n"; $l_deleted = 0; $l_undeleted = 0; isys_glob_delete_recursive($l_directory, $l_deleted, $l_undeleted, (ENVIRONMENT === 'development')); echo "Success: $l_deleted files - Failure: $l_undeleted files!
                  \n"; unset($l_directory); if (isset($_GET["ajax"])) { die(); } // if } // if } else { if (!require_once "setup/install.inc.php") { startup_die("Could not start installer. Setup files not found."); } // if } // if } catch (Exception $e) { if (isset($_SERVER)) { isys_glob_display_error( stripslashes(nl2br($e->getMessage())) ); } else { printf($e->getMessage()); } die(); } // try try { // Process ajax requests. if (isset($_GET["ajax"])) { if (isys_application::instance()->session->is_logged_in()) { require_once("src/ajax.inc.php"); } } // if } catch (Exception $e) { if (isset($g_error) && $g_error) { isys_notify::error($g_error); } isys_notify::error($e->getMessage() . ' (' . $e->getFile() . ':' . $e->getLine() . ')'); die; } try { // Process api requests. if (isset($_GET['api'])) { try { switch ($_GET['api']) { case 'jsonrpc': include_once('src/jsonrpc.php'); break; } // switch } catch (Exception $e) { echo $e->getMessage(); } // try die; } // if // Main request handler. switch ($_GET["load"]) { /* case "test": if (isset($_GET['type'])) { $_GET['type'] = str_replace(chr(0), '', addslashes($_GET['type'])); if (file_exists("src/tests/i-doit/" . strtolower($_GET['type']) . ".php")) { global $g_comp_session; $g_comp_session->include_mandator_cache(); include_once("src/tests/i-doit/" . strtolower($_GET['type']) . ".php"); } } break; */ case "api_properties": include_once("src/tools/php/properties.inc.php"); break; case "property_infos": include_once("src/tools/php/property_infos.inc.php"); break; case "css": include_once("src/tools/css/css.php"); break; case "mod-css": include_once("src/tools/css/mod-css.php"); break; case "update": default: // The hypergate is the i-doit-internal entrypoint, in which all i-doit internal requests are running. include_once "src/hypergate.inc.php"; break; } // switch // Get PHP processing time. if (isset($g_config["show_proc_time"])) { if ($g_config["show_proc_time"] == true) { echo "\n"; } // if } // if } catch (SmartyException $e) { try { \idoit\View\ExceptionView::factory() ->setDi(isys_application::instance()->container) ->draw($e); } catch (Exception $e) { isys_glob_display_error($e->getMessage()); die(); } } catch (Exception $e) { isys_glob_display_error($e->getMessage()); die(); } 
                  

                  Beim Update habe ich mich an folgende Anleitung gehalten:
                  https://ansas-meyer.de/programmierung/php/php-7-unter-debian-jessie-installieren/

                  leider ergeben sich beim abschließenden Test unendlich viele Fehler - hier der Anfang:

                  :~# cd /var/www/html/i-doit
                  :/var/www/html/i-doit# find . -name "*.php" -exec php -l {} \; 1>/dev/null
                  PHP Fatal error:  Cannot redeclare random_int() in ./vendor/paragonie/random_compat/lib/random_int.php on line 191
                  PHP Fatal error:  Cannot declare class ArithmeticError, because the name is already in use in ./vendor/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php on line 5
                  PHP Fatal error:  Cannot declare class DivisionByZeroError, because the name is already in use in ./vendor/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php on line 5
                  PHP Fatal error:  Cannot declare class ParseError, because the name is already in use in ./vendor/symfony/polyfill-php70/Resources/stubs/ParseError.php on line 5
                  PHP Fatal error:  Cannot declare class AssertionError, because the name is already in use in ./vendor/symfony/polyfill-php70/Resources/stubs/AssertionError.php on line 5
                  PHP Fatal error:  Cannot declare class TypeError, because the name is already in use in ./vendor/symfony/polyfill-php70/Resources/stubs/TypeError.php on line 5
                  PHP Fatal error:  Cannot declare class Error, because the name is already in use in ./vendor/symfony/polyfill-php70/Resources/stubs/Error.php on line 5
                  PHP Parse error:  syntax error, unexpected 'new' (T_NEW) in ./updates/versions/v1.4/files/src/classes/libraries/nusoap/nusoap.php on line 7381
                  PHP Parse error:  syntax error, unexpected 'new' (T_NEW) in ./updates/versions/v1.5.2/files/src/classes/libraries/nusoap/nusoap.php on line 7381
                  PHP Fatal error:  Cannot redeclare random_int() in ./updates/versions/v1.9.1/files/vendor/paragonie/random_compat/lib/random_int.php on line 191
                  PHP Fatal error:  Cannot declare class ArithmeticError, because the name is already in use in ./updates/versions/v1.9.1/files/vendor/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php on line 5
                  PHP Fatal error:  Cannot declare class DivisionByZeroError, because the name is already in use in ./updates/versions/v1.9.1/files/vendor/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php on line 5
                  PHP Fatal error:  Cannot declare class ParseError, because the name is already in use in ./updates/versions/v1.9.1/files/vendor/symfony/polyfill-php70/Resources/stubs/ParseError.php on line 5
                  PHP Fatal error:  Cannot declare class AssertionError, because the name is already in use in ./updates/versions/v1.9.1/files/vendor/symfony/polyfill-php70/Resources/stubs/AssertionError.php on line 5
                  PHP Fatal error:  Cannot declare class TypeError, because the name is already in use in ./updates/versions/v1.9.1/files/vendor/symfony/polyfill-php70/Resources/stubs/TypeError.php on line 5
                  PHP Fatal error:  Cannot declare class Error, because the name is already in use in ./updates/versions/v1.9.1/files/vendor/symfony/polyfill-php70/Resources/stubs/Error.php on line 5
                  PHP Fatal error:  Cannot redeclare random_int() in ./updates/versions/v1.9/files/vendor/paragonie/random_compat/lib/random_int.php on line 191
                  PHP Fatal error:  Cannot declare class ArithmeticError, because the name is already in use in ./updates/versions/v1.9/files/vendor/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php on line 5
                  PHP Fatal error:  Cannot declare class DivisionByZeroError, because the name is already in use in ./updates/versions/v1.9/files/vendor/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php on line 5
                  PHP Fatal error:  Cannot declare class ParseError, because the name is already in use in ./updates/versions/v1.9/files/vendor/symfony/polyfill-php70/Resources/stubs/ParseError.php on line 5
                  PHP Fatal error:  Cannot declare class AssertionError, because the name is already in use in ./updates/versions/v1.9/files/vendor/symfony/polyfill-php70/Resources/stubs/AssertionError.php on line 5
                  PHP Fatal error:  Cannot declare class TypeError, because the name is already in use in ./updates/versions/v1.9/files/vendor/symfony/polyfill-php70/Resources/stubs/TypeError.php on line 5
                  PHP Fatal error:  Cannot declare class Error, because the name is already in use in ./updates/versions/v1.9/files/vendor/symfony/polyfill-php70/Resources/stubs/Error.php on line 5
                  PHP Parse error:  syntax error, unexpected 'new' (T_NEW) in ./updates/versions/v1.5/files/src/classes/libraries/nusoap/nusoap.php on line 7381
                  PHP Parse error:  syntax error, unexpected 'new' (T_NEW) in ./updates/versions/v1.6/files/src/classes/libraries/nusoap/nusoap.php on line 7381
                  PHP Fatal error:  Redefinition of parameter $p_status in ./updates/versions/v1.8/files/src/classes/modules/cmdb/dao/category/global/isys_cmdb_dao_category_g_its_type.class.php on line 217
                  PHP Fatal error:  Redefinition of parameter $deprecated in ./updates/versions/v1.8/files/src/classes/modules/report/dao/isys_report_dao.class.php on line 200
                  
                  

                  vielleicht gibt es ja eine einfach Lösung dafür - wie so oft. Zur Not habe ich einen Snapshot. Bin etwas ratlos, ob der vielen Fehler.

                  1 Reply Last reply Reply Quote 0
                  • F Offline
                    franknagel
                    last edited by

                    Das war nicht zielführend: Eine veraltete Anleitung zu nehmen, wo Sie bereits auf Debian Stretch geupdated haben.
                    Also zurückgehen auf den alten snapshot und:

                    apt-get update

                    apt-get install php libapache2-mod-php php-bcmath php-cli php-common php-curl php-gd php-imagick php-json php-ldap php-mcrypt php-memcached php-mysql php-pgsql php-xml php-zip

                    Falls das fehlschlägt, vorher

                    apt-get remove php5

                    ausführen und noch einmal

                    apt-get install php libapache2-mod-php php-bcmath php-cli php-common php-curl php-gd php-imagick php-json php-ldap php-mcrypt php-memcached php-mysql php-pgsql php-xml php-zip

                    Die Fehler in den polyfills sind übrigens irrelevant.

                    1 Reply Last reply Reply Quote 0
                    • B Offline
                      beneblack
                      last edited by

                      Danke! Das hat sofort funktioniert.

                      :~# php -v
                      PHP 7.0.19-1 (cli) (built: May 11 2017 14:04:47) ( NTS )
                      Copyright (c) 1997-2017 The PHP Group
                      Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
                          with Zend OPcache v7.0.19-1, Copyright (c) 1999-2017, by Zend Technologies
                      
                      

                      Allerdings hat i-doit von der Veränderung trotz reboot und Apache-restart nichts gemerkt. Dort wurde fröhlich weiter die 5.6 angezeigt und die QR-Codes blieben verschwunden.
                      Deshalb habe ich noch folgendes gemacht:

                      a2dismod php5
                      a2enmod php7.0
                      service apache2 restart
                      

                      nun erhalte ich beim Aufruf der Webseite folgenden Fehler:

                      Database error : php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution
                      

                      Dieser sah dem bereits erwähnten Fehler aus https://forum.i-doit.org/index.php/topic,5039.0.html so sehr ähnlich, dass ich in der /etc/php/7.0/cli die php.ini angepasst habe und den Eintrag mysqli.default_socket = /var/run/mysqld/mysqld.sock gesetzt habe.

                      Das hat leider nicht geholfen. Wie mache ich nun weiter?

                      Edit meint:
                      Ich habe einen Ordner in /var/WWW/html parallel zu i-doit angelegt und test genannt. Darin eine index.php mit

                      
                         phpinfo();
                      ?>
                      
                      

                      angelegt. Diese Seite funktioniert.

                      Edit2 meint:
                      GENAIL!
                      Die phpinfo() meint, dass

                      Loaded Configuration File:  /etc/php/7.0/apache2/php.ini  
                      

                      die php.ini gar nicht im Ordner cli liegt. Deshalb habe ich die php.ini im apache2-Ordner genau so abgewandelt wie zuvor die andere. Nun funktioniert alles. PHP-Version in i-doit wird mit 7.0.19-1 angezeigt und die QR-Codes funktionieren wieder.

                      DANKE für die Unterstützung!

                      1 Reply Last reply Reply Quote 0
                      • F Offline
                        franknagel
                        last edited by

                        Schauen Sie doch mal, was unter "src/config.inc.php" in der "Database configuration" unter "host" eingetragen ist. Wenn der Eintrag problematisch erscheint, dann sollten Sie hier "localhost" eintragen und noch mal gucken, ob es funktioniert.

                        1 Reply Last reply Reply Quote 0
                        • bheisigB Offline
                          bheisig i-doit Team
                          last edited by

                          Hallo,

                          wir haben letzte Woche unsere Knowledge Base für PHP 7 und Debian 9 angepasst:

                          • Debian GNU/Linux: Schritt für Schritt ein Debian 9 auf i-doit vorbereiten

                          • Upgrade der i-doit Eval Appliance auf Debian GNU/Linux 9 "Stretch": Hier haben wir detailliert beschrieben, wie wir ein Debian von 8 auf 9 aktualisiert haben. Einige der oben genannten Fehler konnten so umgegangen werden.

                          Zum Datenbank-Fehler haben wir vor einiger Zeit einen FAQ-Artikel geschrieben: Wenn unter src/config.inc.php ein "localhost" als Hostname eingetragen ist, wird der Unix Socket von MySQL/MariaDB verwendet. Das ist auch gut so, weil performant. Nur leider kann PHP damit nicht viel anfangen, weswegen PHP angepasst und Apache neu gestartet werden muss.

                          Ich hoffe, das alles hilft schnell und einfach weiter 🙂

                          Viele Grüße
                          Benjamin

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post