Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme beim Umstieg PHP 5.4.20 auf 7.3

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme beim Umstieg PHP 5.4.20 auf 7.3

    Hallo. Bin neu hier, absoluter Anfänger in PHP - bitte Nachsicht.

    Ich betreibe seit vielen Jahren einen SuSE-Linux Webserver (zu 99% nur für interne Zwecke). Darauf läuft als wichtigste Anwendung eine Gallery ( http://galleryproject.org/ ), in der unsere sämtlichen (sehr sehr vielen) Fotos enthalten sind. Das Ganze läuft über PHP-Scripte. Die Daten (Fotos, Verwaltungsinformationen, Beschreibungstexte) liegen auf einem QNAP-NAS mit RAID-5 und 5TB nutzbar.

    Dieses "Rechenzentrum" kostet mich monatlich 25 EUR an Strom. Ich habe daher beschlossen, ein neues System aufzubauen. Ich verwende einen RaspberryPi-4B und ein RAID-5 mit 6TB. Läuft alles Super und schneller. Das NAS für die Windows-PCs läuft, der Mediaserver läuft, fehlt nur noch die Gallery, dann kann ich die Umstellung abschließen und das QNAP-NAS und den Webserver-PC abschalten.. Das neue System verbraucht in Ruhe 5W, sind die Platten aktiv 20W.

    Es ist dieselbe Gallery-Version wie auf dem alten Webserver. Bei der Konfiguration tritt laut Apache Errorlog nun folgender Fehler auf::

    Code:
    [Tue Oct 13 10:22:27.810103 2020] [php7:error] [pid 14162] [client 192.168.178.25:2152] PHP Parse error:  syntax error, unexpected 'new' (T_NEW) in /var/www/html/gallery1/lib/content.php on line 1805
    Der Bereich um die Zeile 1805 sieht so aus:

    Code:
           if (empty($safehtml)) {
                    $safehtml =& new HTML_Safe();
            }
    Was kann ich tun??

  • #2
    eine Gallery ( http://galleryproject.org/ ),
    Zitat von Website
    He and his team have made progress over the past year and have a stable version of Gallery 3 that is PHP 7+ compatible
    (Auch) ein Update von der Software machen?
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Dein Script muss ja uralt sein. Denn selbst unter PHP 5 solltest du schon Fehlermeldungen bekommen. Siehe auch PHP 5 and “& new”. Also dringend überarbeiten dein Script.

      Kommentar


      • #4
        Zitat von jspit Beitrag anzeigen
        Dein Script muss ja uralt sein. Denn selbst unter PHP 5 solltest du schon Fehlermeldungen bekommen.
        Richtig, aber noch keinen Parse Error, den gibt es erst seit PHP 7. Wie hausl schon schrieb: das einzig sinnvolle ist ein Update des Scriptes.

        Zitat von hajoko Beitrag anzeigen
        Ich betreibe seit vielen Jahren einen SuSE-Linux Webserver (zu 99% nur für interne Zwecke). Darauf läuft als wichtigste Anwendung eine Gallery ( http://galleryproject.org/ ), in der unsere sämtlichen (sehr sehr vielen) Fotos enthalten sind. Das Ganze läuft über PHP-Scripte. Die Daten (Fotos, Verwaltungsinformationen, Beschreibungstexte) liegen auf einem QNAP-NAS mit RAID-5 und 5TB nutzbar.
        Der Vollständigkeit halber: dir ist bewusst dass ein Raid nur die Datenverfügbarkeit erhöht, nicht aber die Datensicherheit, oder? Die Daten sind hoffentlich auf (mindestens) einem weiteren System gesichert! Zumal bei QNAP-Geräten mit 4 Festplatten gerne der 3. Slot ausfällt und jede Festplatte als defekt erkannt wird - welche Geräte genau betroffen sind weiß ich nicht aber wohl nur etwas aktuellere, wenn dein Gerät schon älter ist bist du wohl nicht betroffen mir ist aber dieses Jahr ein Gerät durch diesen Fehler ausgefallen, das war das letzte QNAP-Gerät das ich gekauft habe. Aber wozu eigentlich der Webserver-PC? Auf QNAP-Geräten kann (wie bei Synology auch) ein Webserver oder eine virtuelle Maschine drauf laufen.
        Aber wenn du auf ein Raspberry umsteigst kannst du das NAS gleich als Sicherung verwenden und regelmäßig dort Sicherungen hinschreiben.

        Kommentar


        • #5
          Zitat von tk1234 Beitrag anzeigen
          dir ist bewusst dass ein Raid nur die Datenverfügbarkeit erhöht, nicht aber die Datensicherheit, oder?
          Nja:
          Zitat von Wikipedia
          Im RAID-Level 5 sind drei oder mehr Festplatten so zu einem logischen Laufwerk miteinander kombiniert, dass die Lesegeschwindigkeit erhöht ist und gleichzeitig der Ausfall einer Festplatte aus dem Verbund ohne Datenverlust abgefangen wird.
          Oder du meintest ein "echtes" Backup. Dann ok.
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            Zitat von hausl Beitrag anzeigen
            Nja:
            .
            Die Aussage stimmt schon:
            Datenverfügbarkeit: Die Daten sind auch weiterhin erreichbar wenn eine Platte ausfällt.
            Datensicherheit: Man kommt auch noch an die Daten, wenn sie aus versehen gelöst worden sind oder das Haus abbrennt.

            Kommentar


            • #7
              Zitat von hausl Beitrag anzeigen
              Oder du meintest ein "echtes" Backup. Dann ok.
              Ja.. Dann bin ich auch dabei. Lass uns davon ausgehen das sowas selbstverstänldich sein sollte.
              The string "()()" is not palindrom but the String "())(" is.

              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar


              • #8
                Wow! So viele Antworten. Danke.

                @hausl: Gallery3 (G3) erfordert gewaltige Umstellungen, Mysql usw. Auf dem Qnap kann man es direkt installieren, läuft nur nicht und außerdem gibt es keinen Migrationspfad. Händischer Übergang scheidet aufgrund der Menge und Bildertexte aus. Wenn G1 auf dem RPi läuft, wollte ich den Übergang zu G3 versuchen. Zwei Wege, die beide gleich unsicher sind: G1 zu G2, G2 zu G3. Angeblich gibt es neuerdings ein G1 zu G3 Plugin in G3. Aber dazu muss erstmal G1 auf der RPi laufen.

                @jspit: Ja, ist uralt. Nicht alles Alte muss schlecht sein. Es ist nicht "mein" Script, sondern eine riesige Menge von Scripten aus der G1-Installation. Überarbeiten ist gut! Wie denn? Hast Du Vorschläge? Fehlermeldungen im alten System gibt es nicht.

                @tk1234: Ein Raid-5 erhöht durchaus die Datensicherheit, es sei denn, es fallen mehrere Platten auf einmal aus. Zusätzlich habe ich aber das QNAP-NAS jede Nacht gesichert und das habe ich auch beim RPi vor. Das alte NAS werde ich ganz sicher nicht weiter verwenden, auch nicht zur Datensicherung. Dann wäre der "Verschlankungs-" und "Stromspareffekt" ja weg. Der Webserver unter QNAP ist nicht besonders toll. Und außerdem läuft dort G1 nicht und damit entfallen auch alle Versuche des Upgrades. QNAP-Datensicherheit bis jetzt prima (toi, toi), System langsam, Stromfresser und Sachen die unter meinen anderen Linux-Versionen (SuSE, Linux-Mint) laufen, sind hier kaum hinzukriegen. Beispiel auch Mediaserver am QNAP: ich lade mit MediathekView Spielfilme, Krimis usw. runter und streame die zum Fernseher. Von einem zum anderen Tag lief der DLNA-Server am QNAP nicht mehr, nicht hinzukriegen. Habe dann unter SuSE den Mediatomb installiert, läuft einfach. Und jetzt am RPi den minidlna, läuft super und schnell.

                Kleine Anmerkung zu mir. Ich bin kein Anfänger, sondern habe 40 Jahre in der IT gearbeitet, programmiert, Großsysteme aufgesetzt usw. Aber: was PHP betrifft, bin ich eine abolute Null und hatte deshalb hier auf Hilfe gehofft. Wie kann man diese (jetzt unter PHP7) fehlerhafte Stelle abändern, dass es wieder läuft?

                Danke für eure Hilfe.

                Kommentar


                • #9
                  Zitat von hajoko Beitrag anzeigen
                  @jspit: Ja, ist uralt. Nicht alles Alte muss schlecht sein. Es ist nicht "mein" Script, sondern eine riesige Menge von Scripten aus der G1-Installation. Überarbeiten ist gut! Wie denn? Hast Du Vorschläge? Fehlermeldungen im alten System gibt es nicht.

                  Kleine Anmerkung zu mir. Ich bin kein Anfänger, sondern habe 40 Jahre in der IT gearbeitet, programmiert, Großsysteme aufgesetzt usw. Aber: was PHP betrifft, bin ich eine abolute Null und hatte deshalb hier auf Hilfe gehofft. Wie kann man diese (jetzt unter PHP7) fehlerhafte Stelle abändern, dass es wieder läuft?
                  Mal auf den Link in #3 geklickt? Da steht schonmal die Lösung für deinen ersten Fehler.

                  Kommentar


                  • #10
                    Und wenn du dein Error Reporting mal auf "E_ALL" setzt solltest du gaanz viele Notices und Warnings bekommen (im ErrorLog) .. Da kannst dann sehen was dir dann künftig Probleme bereiten wird. Grad als Info.
                    The string "()()" is not palindrom but the String "())(" is.

                    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                    PHP.de Wissenssammlung | Kein Support per PN

                    Kommentar


                    • #11
                      Zitat von hajoko Beitrag anzeigen
                      ...Nicht alles Alte muss schlecht sein. Es ist nicht "mein" Script, sondern eine riesige Menge von Scripten aus der G1-Installation. Überarbeiten ist gut! Wie denn? Hast Du Vorschläge? Fehlermeldungen im alten System gibt es nicht.
                      Das Teil ist nicht schlecht, sondern tot. In der Version 2 stecken so viele PHP-4-ismen drin, da würdest du Wochen damit verbringen, alle für (wenigstens) PHP 5.6 oder neuer hinzubiegen. Alleine der Unfug mit dem überflüssigen '&' vor 'new' mag zwar trivial zu fixen sein, aber er tritt mehrfach auch. Jedes einzelne '&' wird zu einen Parsing-Error führen und die schon laufenden Teile des Scripts beenden. Dann kommen die falschen Namen für die Konstruktor-Methoden (im PHP-4-Stil) usw. usf.

                      Zitat von hajoko Beitrag anzeigen
                      Gallery3 (G3) erfordert gewaltige Umstellungen, Mysql usw. Auf dem Qnap kann man es direkt installieren, läuft nur nicht und außerdem gibt es keinen Migrationspfad. Händischer Übergang scheidet aufgrund der Menge und Bildertexte aus. Wenn G1 auf dem RPi läuft, wollte ich den Übergang zu G3 versuchen. Zwei Wege, die beide gleich unsicher sind: G1 zu G2, G2 zu G3. Angeblich gibt es neuerdings ein G1 zu G3 Plugin in G3. Aber dazu muss erstmal G1 auf der RPi laufen.
                      Gallery Version 3 wird seit 2014 nicht mehr weiterentwickelt. Seit 2019 fixt jemand anderes lediglich ab und zu ein paar Bugs.

                      Deine beste Option dürfte sein, eine aktuelle Gallery-Applikation zu finden und deine Bildersammlung dahin zu migrieren.
                      Piwigo wäre da eine Möglichkeit. Dafür gibt es ein Gallery-2-Import-Plugin (mit einigen Fallstricken) und eine aktive Community, die bei Problemen helfen könnte. Das Suchstichwort lautet "menalto2piwigo". ("Menalto" ist wohl der Name des ursprünglichen Anbieters)
                      Wenn man die Wurst schräg anschneidet, hält sie länger, weil die Scheiben größer sind.

                      Kommentar


                      • #12
                        Danke für eure Bemühungen!

                        @jspit: Ja, danke, habe ich. Löst sicher das Problem an dieser einzigen Stelle, 1000 weitere werden folgen.

                        @hausl: Wenn ich wüßte wo, würde ich das probieren, allerdings habe ich wenig Hoffung, dass es mit dieser einen Stelle getan ist.

                        @firewaesel: Ich weiß, dass das ganze System uralt ist, der PC, das SuSE-Linux, die Gallery. Aber: die Alben haben einen Gesamtumfang von ziemlich genau 1 TB, das möchte ich wegen der vielen Unterverzeichnisse und Beschreibungstexte nicht neu eingeben. Die Files an sich wären nicht das Poblem. Dein Hinweis auf Piwigo ist gut, nur importiert das nur von G2 und nicht von G1. Voraussetzung wäre also, auf dem alten Webserver erstmal G2 zum laufen zu bringen und einen Übergang G1 zu G2 zu machen. Allerdings habe ich G2 dort in früheren Versuchen nicht zum laufen gebracht.

                        Da ich den alten Webserver lieber heute als morgen abschalten würde - hat jemand die zündende Idee, wie ich irgendwie aus dieser PHP5 Falle herauskomme?

                        Kommentar


                        • #13
                          Zitat von hajoko Beitrag anzeigen
                          wie ich irgendwie aus dieser PHP5 Falle herauskomme?
                          Mit 40 Jahren in der IT muss man dir doch nicht erklären was es heißt tote Software zu verwenden?! Die Lösung die langfristig funktioniert ist eine Migration. Und wenn du keine Lust hast, so eine System zu pflegen, gibts sicherlich auch genügend Lösungen in der Cloud.

                          Ansonsten, wenn das eigentlich alles wurst ist, kannst du dir auch ein php 5 auf den Raspberry installieren. Das sollte heute zu tage noch realtiv Problemlos gehen. Eventuell gibts auch fertige docker container mit php5 und fpm.

                          Kommentar


                          • #14
                            @fireweasel: Komme gerade von einem Ausflug zum Piwigo-Forum zurück. Habe mich registriert, die Frage eingegeben, erste Fehlermeldung. Wollte dann die Frage abschicken, geht nicht, neue Fehlermeldung. Wollte das dann über den Kontakt-Link verfolgen - die Seite gibts nicht. Ich glaube nicht, dass das eine ernst zu nehmende Software ist, wenn noch nicht einmal das Forum funktioniert.

                            @erc: Danke für den Hinweis. Aber wie ich bereits schrieb, bin ich mit Raspberry am Anfang und in PHP eine absolute Null. Es ist mir nicht alles wurst und ich würde auch gern auf ein anderes System migrieren, nur habe ich bisher keins gefunden, das G1 lesen kann. G1 geht wegen PHP nicht am RPi, G2 geht unter SuSE nicht... Neueingabe in neues System scheitert an der Datenmenge von 1 TB. Bei Piwogo läuft nicht einmal das Forum.

                            Zu Deinem guten Vorschlag PHP5: wie installiere ich das? Beisst sich das dann nicht mit PHP7, was andere Anwendungen vielleicht brauchen? Was ist ein docker container? Was ist fpm? Ich bewundere eure Erfahrung, aber sorry, mit solchen hingeworfenen Brocken kann ich nichts anfangen.

                            Kommentar


                            • #15
                              Was ist ein docker container? Was ist fpm? Ich bewundere eure Erfahrung, aber sorry, mit solchen hingeworfenen Brocken kann ich nichts anfangen.
                              Das sind doch alles Begriffe, welche man mit 2 Minuten googlen finden kann.

                              Mehrere PHP Versionen auf einem Server ist kein Problem, du musst deinem Webserver dann nur z.B. im vHost mitteilen welche Version er nutzen soll. Hier eine kurze Anleitung welche auch auf dem Raspberry relativ ähnlich funktioniert:
                              https://www.digitalocean.com/communi...m-on-debian-10

                              Kommentar

                              Lädt...
                              X