Community

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

    Idoit Open 1.9 und php7.0

    Betrieb
    4
    7
    1619
    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.
    • P
      pladmin last edited by

      Hallo zusammen,

      heute habe ich ein Update von Idoit 1.8.3 auf Idoit 1.9 gemacht. Im selben Schritt habe ich dann von php 5.6 auf php 7.0 umgestellt, bekommen nach dem einloggen aber immer folgenden Fehler: Database error : php_network_getaddresses: getaddrinfo failed: Name or service not known

      Im error.log vom apachen finde ich dann folgende Einträge:

      [Thu Jun 01 14:46:05.357596 2017] [:error] [pid 18713] [client xxx.xxx.xxx.xxx:53478] PHP Warning:  mysqli_connect(): (HY000/2002): No such file or directory in /var/www/src/classes/components/isys_component_database_mysqli.class.php on line 714, referer: https://xxx.xxx.xxx.xxx/?
      [Thu Jun 01 14:46:05.358443 2017] [:error] [pid 18713] [client xxx.xxx.xxx.xxx:53478] PHP Warning:  mysqli_connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/src/classes/components/isys_component_database_mysqli.class.php on line 617, referer: https://xxx.xxx.xxx.xxx/?
      [Thu Jun 01 14:46:05.358556 2017] [:error] [pid 18713] [client xxx.xxx.xxx.xxx:53478] PHP Warning:  mysqli_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/src/classes/components/isys_component_database_mysqli.class.php on line 617, referer: https://xxx.xxx.xxx.xxx/?

      Stelle ich wieder auf php 5.6 um funktioniert alles wunderbar.

      Habe die selben Module für php7 installiert wie für php5.6.

      Gruß
      Steffen

      1 Reply Last reply Reply Quote 0
      • S
        Sven_L last edited by

        Hallo,

        also entweder könnte das was mit den mysql-Treibern von PHP zu tun haben - mysqli bzw mysqlnd - oder mit dem Zugriff auf die DB über localhost bzw. 127.0.0.1, wo einmal wohl ein Socket verwendet wird bzw. eine TCP-Connection.
        Wenn Du localhost verwenden solltest, dann versuche einfach mal 127.0.0.1.
        Wir mussten seinerzeit mysqlnd nachinstallieren, damit das funktioniert, das war aber mit PHP 5.4. Ich kann auch nicht mehr wirklich sagen, ob das exakt dieser Fehler war.

        Vielleicht bringt Dich das auf die richtige Spur.

        Bei uns steht demnächst auch die Umstellung auf PHP 7 an. Insofern verfolge ich das mit Interesse. 🙂

        Ciao

        Sven

        1 Reply Last reply Reply Quote 0
        • P
          pladmin last edited by

          Hallo Sven,

          danke für deine Antwort. Ja habe bisher localhost genutzt, bin aber schon selbst auf die Idee gekommen das mal durch 127.0.0.1 zu ersetzen. Hat leider keine Besserung gebracht. Der Fehler bleibt der selbe 😞

          Hatte bevor ich meinen Post veröffentlicht hatte die Userrechte in MySQL geprüft. Die sind aber auch sauber. Die entsprechenden php-Module (mysqli und mysqlnd) sind laut phpinfo auch geladen. Entweder sehe ich den Wald vor Bäumen gerade nicht, oder es ist ein Bug in Idoit / php 7.0.19.

          Gruß
          Steffen

          1 Reply Last reply Reply Quote 0
          • dkirsten
            dkirsten last edited by

            Hallo,

            die Problematik hatte ich selber auch schon, aber o richtig habe ich auch noch nicht verstanden, in welcher Konstellation das auftritt.
            Hast Du auch in der idoit_system Datenbank in Tabelle isys_mandators die DB Einstellungen von localhost auf 127.0.0.1 geändert?
            Der Eintrag in der config.inc.php bezieht sich ja nur auf den initialen Zugriff auf die Systemdatenbank, um die Mandantenliste etc. auszulesen. Danach benutzt er die mandantenspezifischen Datenbankuser und einstellungen, um darauf zuzugreifen.

            Alles in allem muss ich dem Problem mal genauer auf den Grund gehen. Es kann ja nicht sein, dass PHP7 "localhost" Als Socket nicht mehr unterstützt.

            Viele Grüße,

            Daniel

            1 Reply Last reply Reply Quote 0
            • P
              pladmin last edited by

              Hallo dkirsten,

              nein den Eintrag hatte ich bisher nicht abgepasst. Nur den Eintrag in der config.inc.php.

              Ich habe den DB-Eintrag jetzt angepasst und auf php7 umgestellt - und voila es geht 🙂 Danke dir für den Tipp !!

              Dann scheint es eindeutig am "localhost" zu liegen.

              Gruß
              Steffen

              1 Reply Last reply Reply Quote 0
              • bheisig
                bheisig i-doIT Team last edited by

                Hallo,

                wir haben das Problem näher analysiert: Wer auf "localhost" setzt, benutzt zwangsweise den Unix Socket von MySQL bzw. MariaDB. Wer auf "127.0.0.1" setzt, verwendet eine TCP/IP-Verbindung zu MySQL/MariaDB. Soweit so klar.

                Auf einem frisch installierten Debian 9 RC4 Stretch ist aufgefallen, dass die PHP-Einstellung "mysqli.default_socket" nicht gesetzt ist. i-doit verlässt sich allerdings auf diese Einstellung. Falls sie nicht verhanden ist, versucht sie i-doit zu "erraten" – vergeblich. Daher kommt das Fehlerbild zustande.

                Wir empfehlen aus Performance-Gründen, weiterhin auf den Unix Socket statt auf die TCP/IP-Verbindung zu setzen. Daher muss die PHP-Einstellung "mysqli.default_socket" gesetzt werden. Unter Debian 9 und Ubuntu 16.04 LTS ist es "/var/run/mysqld/mysqld.sock". Für andere Betriebssysteme haben wir das noch nicht überprüft.

                Wir werden in den kommenden Tagen unsere FAQ und KB dementsprechend ergänzen.

                Viele Grüße
                Benjamin

                1 Reply Last reply Reply Quote 0
                • bheisig
                  bheisig i-doIT Team last edited by

                  Hier ist der Eintrag in unserer FAQ:

                  https://help.i-doit.com/hc/de/articles/115003627245-Keine-Datenbankverbindung-nach-Upgrade-auf-PHP-7

                  tl;dr: Als Workaround bitte die PHP-Einstellung "mysqli.default_socket" setzen.

                  Viele Grüße
                  Benjamin

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