WebsiteBaker Community Forum

WebsiteBaker Support (2.12.x) => General Help & Support => Topic started by: LudwigSt on September 17, 2021, 05:34:52 PM

Title: Call to undefined method bin\WbAdaptor::getRequester()
Post by: LudwigSt on September 17, 2021, 05:34:52 PM
Hallo zusammen,

habe gerade versucht, eine vorhandene Installation (WB-Version 2.12.2 r379) in ein neues Testverzeichnis umzuziehen, da ich dort testen will, wie das Upgrade auf die aktuelle Version durchgeht, oder auch nicht.

Habe die Dateien manuell per FTP hochgeladen.
Dann habe ich eine neue Datenbank angelegt und von der vorhandenen Installation die Daten dort eingespielt. Die config.php habe ich entsprechend angepasst.

Das Backend läuft, aber beim Frontend Aufruf kommt folgende Fehlermeldung:
Quote
There was an uncatched exception
Call to undefined method bin\WbAdaptor::getRequester()
in line (52) of (/index.php):

Woran mag das liegen, bzw. wie lässt es sich reparieren?
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: hgs on September 17, 2021, 05:53:12 PM
Läuft deine Originalseite noch?
Gerne kann ich mir das mit den Entsprechenden Zugangsdaten mal an.
Oder du packst mir deine Originalseite und die DB in ein zip und ich schaue auf meinem Testserver mal nach.
Zugangsdaten kommen bei BEdarf per pm


Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: LudwigSt on September 18, 2021, 11:10:22 AM
Bin der Sache schon selber auf die Spur gekommen. Aber bei der Installation der für 2.13 angepassten Version von PHP-Mailer hänge ich grade fest.
Moin, du hast WB 2.13 und den Inhalt des ZIPs in dein WB Root Verzeichnis geladen (da wo die config.php liegt)?

Alternativ:
  • das ZIP hochladen in WB Root,
  • zur Anmeldeseite gehen
  • unten den gelben Link zu unzip.php klicken (falls unzip.php vorhanden, ansonsten unzip.php auch hochladen)
  • ZIP entpacken und löschen lassen
  • Link zum Backend klicken
  • Anmelden
  • Upgrade Link klicken
Punkt 1 ist erledigt.
Unzip.php ist im Unterordner /install/ vorhanden.
Ich habe aber unten keinen gelben Link. Wo soll der sein? Auf der Anmeldeseite, oder auf der Startseite nach dem Login?

Alternative mit selber entpacken und FTP Upload? In welches Verzeichnis?
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: hgs on September 18, 2021, 12:37:07 PM

Unzip.php ist im Unterordner /install/ vorhanden.
Ich habe aber unten keinen gelben Link. Wo soll der sein? Auf der Anmeldeseite, oder auf der Startseite nach dem Login?

Alternative mit selber entpacken und FTP Upload? In welches Verzeichnis?

Die unzip.php gehört auch in das Wurzelverzeichnis, so wie die Zip-Datei von WB2.13
Schau mal hier:
https://www.youtube.com/watch?v=2Vi5v7vhKx8 (https://www.youtube.com/watch?v=2Vi5v7vhKx8)
Das Video erklärt es von einer WB 2.8.3 Das ganze geht aber mit jeder anderen Version ab 2.8.3
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: LudwigSt on September 18, 2021, 02:26:29 PM
Wenn beides im Root liegt, dann klappt das auch. Nachdem das dann ohne Fehler durchgelaufen ist, erhalte ich diesen Fehler beim Aufruf der Login-Seite:
Quote
There was an uncatched exception
Class 'vendor\phplib\Template' not found
in line (284) of (/framework/Login.php):
In meinem vendor Verzeichnis befindet sich auch nur eine Datei autoload_classmap.p hp
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: Luisehahne on September 18, 2021, 08:38:55 PM
Wenn beides im Root liegt, dann klappt das auch. Nachdem das dann ohne Fehler durchgelaufen ist, erhalte ich diesen Fehler beim Aufruf der Login-Seite:
Quote
There was an uncatched exception
Class 'vendor\phplib\Template' not found
in line (284) of (/framework/Login.php):
In meinem vendor Verzeichnis befindet sich auch nur eine Datei autoload_classmap.p hp

Das ist korrekt. vendor\phplib ist ein namespace und verweist auf den Ordner include/phplib/ und darin muss sich die Datei Template.php befinden. Wir stellen immer mehr auf OOP um.

Dietmar
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: LudwigSt on September 19, 2021, 11:42:54 AM
Ausser dem Verzeichnis phpmailer war in meinem include Verzeichnis überhaupt nichts vorhanden. Kein Wunder also, diese Fehlermeldungen. Nachdem ich jetzt alle Ordner, die fehlten dorthin übertrage habe, scheinen jetzt Front- und Backend zu laufen.

Eine Liste mit allen Verzeichnissen und Dateien, die vorhanden sein sollten, gibt es nicht zufällig?
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: Luisehahne on September 19, 2021, 12:09:32 PM
Deswegen immer jedes Paket mit unzip.php entpacken, dann sollte nichts fehlen.

Quote
Eine Liste mit allen Verzeichnissen und Dateien, die vorhanden sein sollten, gibt es nicht zufällig?
Ich lasse etwas einfallen. Kommt dann ab WB 2.13.1.

Dietmar
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: LudwigSt on September 19, 2021, 12:30:57 PM
Ist denn das unzip-Problem bei S t r a t o beseitigt?

 
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: Luisehahne on September 19, 2021, 08:30:43 PM
Ist denn das unzip-Problem bei S t r a t o beseitigt?

Wir konnten bislang keine Probleme mehr feststellen

Dietmar
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: LudwigSt on September 25, 2021, 10:15:39 AM
Bei mir klappt das unzip bei dem Provider aber immer noch nicht. Die Installation liegt nicht im root und wenn man die www.example.com/verzeichnis/unzip.php aus dem Unterverzeichnis aufruft, erscheint oben in der Browserzeile www.example.com/unzip.php und es gibt einen 404.
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: hgs on September 25, 2021, 10:44:15 AM
Bei mir klappt das unzip bei dem Provider aber immer noch nicht. Die Installation liegt nicht im root und wenn man die www.example.com/verzeichnis/unzip.php (http://www.example.com/verzeichnis/unzip.php) aus dem Unterverzeichnis aufruft, erscheint oben in der Browserzeile www.example.com/unzip.php (http://www.example.com/unzip.php) und es gibt einen 404.

unzip.php wird nicht in ein Unterordner kopiert und dort aufgerufen. unzip gehört ins Dokumentenroot (da wo die config.php ist)
Der Aufruf ist also
Code: [Select]
www.example.com/unzip.php
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: LudwigSt on September 25, 2021, 11:10:21 AM
Die config.php ist aber auch in dem Unterverzeichnis.
example.com wird weitergeleitet auf example.com/verzeichnis/
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: dbs on September 25, 2021, 11:17:27 AM
Es ist etwas unklar was genau du machst.
Wenn WB in einem Unterordner installiert ist, also auch der Unterordner in der config steht, dann brauchts keine Weiterleitung.
Adresse ist dann domain.de/unterordner/
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: LudwigSt on September 25, 2021, 11:20:46 AM
Natürlich braucht es eine Weiterleitung. Wie sollte der Besucher, der www.exampel.com aufruft, denn sonst zu www.exampel.com/verzeichnis/ gelangen?
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: dbs on September 25, 2021, 11:26:29 AM
Du schriebst was von Test. Also unabhängig von der Hauptdomain.
Wenn dein Unterordner aber nun die Hauptdomain ist, dann gehört der Unterordner nicht in die config.
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: LudwigSt on September 25, 2021, 11:39:27 AM
Das läuft schon seit Jahrzehnten so einwandfrei (mit dem Unterordner in der config).

Die aktuelle Installation ist z. B. auf example.com/aktuell/ mit einem 301 redirect vom root auf /aktuell/.
Die Testinstallation ist auf example.com/test/. Dorthin muss man dann manuell navigieren z. B. zu example.com/test/admin/, um sich dort in WB einzuloggen.

Die verschiedenen Domains bei diesem Provider sind ja alle auf irgendeinen Ordner im Root intern (also Hoster-seitig) weitergeleitet. Domain1 leitet auf example.com/domain1/ und Domain2 leitet auf example.com/domain2/. Domain3 ist aber nicht Hoster-seitig umgeleitet, sondern per .htaccess mit einer 301-Weiterleitung auf domain3/verzeichnisMitWB/

Ist etwas unelegant gelöst, ist aber nunmal so.

Ich vermute, wenn ich das Unterverzeichnis aus der config rausnehme, entpackt die unzip.php mir alles in das Root-Verzeichnis. Das wäre dort dann falsch, da alles in das entsprechende Unterverzeichnis muss.
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: dbs on September 25, 2021, 11:47:45 AM
Ich beziehe mich auf
Quote
example.com wird weitergeleitet auf example.com/verzeichnis/

das bedeutet normalerweise, dass dieses Unterverzeichnis dann der WB-Root ist (und würde deshalb nicht in der config stehen).
Aber wir reden scheinbar aneinander vorbei. Irgendjemand wird dich schon verstehen.
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: LudwigSt on September 25, 2021, 12:00:55 PM
Ja, scheint so, daß wir uns nicht verstehen, oder mißverstehen.

Als ich die aktuelle Version von dem php-mailer mit der unzip.php im Unterverzeichnis entpackt habe, hat das problemlos funktioniert. Warum geht es mit dem php-mailer, und nicht mit der WB Installation. Warum springt die unzip ins Root, anstatt im Unterverzeichnis zu bleiben, wenn ich die WB Installation entpacken will?
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: hgs on September 25, 2021, 12:36:48 PM
Bei mir klappt das unzip bei dem Provider aber immer noch nicht. Die Installation liegt nicht im root und wenn man die www.example.com/verzeichnis/unzip.php (http://www.example.com/verzeichnis/unzip.php) aus dem Unterverzeichnis aufruft, erscheint oben in der Browserzeile www.example.com/unzip.php (http://www.example.com/unzip.php) und es gibt einen 404.

Ich hab noch mal unten angefangen zu lesen.
Die altuelle unzip.php macht ja nichts ohne dein "go" Was passiert wenn du es ohne "/unterverzeichnis" aufrufst? Deine Weiterleitung sollte es dann doch richtig machen, oder bin ich auf dem Holzweg.
Nachtrag
Ok, der ParallelPost sagt ja, dass es mit phpMailer funtioniert hat. Sehr komisch
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: LudwigSt on September 25, 2021, 12:39:46 PM
Bevor alles durcheinander gerät, wovn @dbs spricht, ist die aktuelle Installation, die hat die 301-Weiterleitung,
dass Problem, um das es eigentlich geht, liegt bei der Testversion vor. Die ist in einem Unterverzeichnis und ist auch nicht weitergeleitet.
Dann ist es doch korrekt, daß in der config das Unterverzeichnis angegeben ist, oder nicht?

Also config, unzip etc sind alle in diesem Unterverzeichnis.
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: hgs on September 25, 2021, 12:43:35 PM
Dann sollte es mit

Code: [Select]
www.example.com/test/unzip.php funktionieren. Der Meinung bin ich auch.
Da ich aber durch unendliche Subdomämen noch nie in einem Unterverzeichnis gearbeitet habe, kann ich es nicht mit Sicherheit sagen.

@Dietmar
Was sagt der Chef?
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: LudwigSt on September 25, 2021, 12:46:43 PM
Ich habe jetzt noch ein weiteres neues Testverzeichnis angelegt. Die WB.zip und die unzip.php dorthin kopiert und dann aufgerufen.
Auf dem Bildschirm steht ganz unten rechts diese Fehlermeldung: Error::Missing Backend Login /admin/

Da es ja noch kein Backend gibt, verstehe ich die Meldung nicht?
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: LudwigSt on September 25, 2021, 12:49:32 PM
Da ich aber durch unendliche Subdomämen noch nie in einem Unterverzeichnis gearbeitet habe, kann ich es nicht mit Sicherheit sagen.

Mit Subdomänen kann ich leider nicht arbeiten. Wenn ich eine anlege, dann läuft die nur mit http://, da ich aber in der .htaccess vom Root alles von http:// auf https:// umleite, kann ich damit nicht arbeiten, da streiken die Browser.
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: hgs on September 25, 2021, 08:54:37 PM
Auf dem Bildschirm steht ganz unten rechts diese Fehlermeldung: Error::Missing Backend Login /admin/
Diese Meldung verschwindet nach dem Entpacken und du kommst mit dem Button der dann erscheint zum Installer von WB
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: LudwigSt on September 26, 2021, 11:19:34 AM
Wenn es denn ein „nach dem Entpacken“ gäbe.
Soweit komme ich ja nicht, weil die unzip.php vom Unterverzeichnis ins Root springt.
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: LudwigSt on September 26, 2021, 12:43:58 PM
Der Code in der unzip.php ab Zeile 100 scheint mir für den Wechsel von /verzeichnis/ ins Root verantwortlich zu sein:

Code: [Select]
// create absolute/relative paths
    $sAddonName     = \basename(__DIR__);
    $sScriptPath    = dirname($_SERVER["SCRIPT_FILENAME"]);
    $sAppDir        = str_replace(['\\\\','//'], '/',__DIR__);
    $sDocRoot       = str_replace(['\\','//'],'/',realpath($_SERVER["DOCUMENT_ROOT"]));
    $sScriptName    = str_replace(['\\','//'],'/',realpath($_SERVER["SCRIPT_FILENAME"]));
    $iSharedHosting = ($isWindows ? 0 : (strcmp(md5($sScriptPath),md5($sAppDir)))); // ist leer
    $sPathPattern   = "/^(.*?\/)admin\/.*$/";
    $sLink      = \str_replace(['\\','//'],'/',__DIR__).'/admin/';
    $sAppRel    = \str_replace($sDocRoot,'',\dirname($sScriptName));  // ist /verzeichnis (Zeile 109)
    $sAppRel    = (($iSharedHosting != 0) ? '' : $sAppRel); // ist leer
    $sAppRel    = rtrim((empty($sAppRel) ? '/' : $sAppRel),'/').'/'; // ist leer
    $sAcpRel    = $sAppRel.'admin/'; // ist /admin/
    $sAppPath   = \preg_replace ($sPathPattern, "$1", $sLink, 1 );
    $sOldPath   = \str_replace('\\','/',\getcwd()).'/';

Ich habe im Code oben per Kommentar den Variableninhalt eingefügt. In Zeile 109 ist $sAppRel noch /verzeichnis und ab Zeile 110 ist die Variable leer. $iSharedHosting ist übrigens bei mir auch leer.

Was sagt jetzt der Chef dazu? @Dietmar
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: LudwigSt on September 26, 2021, 06:42:53 PM
Ich war jetzt mal mutig, und habe Zeile 110 und 111 auskommentiert. An $sAppRel habe ich noch einen Slash dran gehängt, sodass aus /verzeichnis /verzeichnis/ wurde. Und nun ist das Entpacken mit der unzip.php gelungen. Soweit ich bisher feststellen konnte, läuft jetzt alles. Aber was der @Dietmar dazu sagt, würde mich trotzdem noch interessieren.
Title: Re: Call to undefined method bin\WbAdaptor::getRequester()
Post by: Luisehahne on September 28, 2021, 10:26:55 PM
Hallo,

erstmal vielen an LudwigSt fürs testen der neuen unzip.php Version 2.12. Kleiner Fix für Strato hosting

Download unzip.php.zip (https://addon.WebsiteBaker.org/pages/en/browse-add-ons.php?download=04D6D0F4) vom Sep 2021

Ausführung wie bereits beschrieben

Benennen Sie die unzip.php.zip in unzip.php um (unzip.php.zip ist nicht wirklich eine Archivdatei). Anschliessend laden Sie die unzip.php und WB fix zip oder WB full package zip in den Root (Anwendungspfad) Ihrer WB-Installation hoch. Führen Sie unzip.php in Ihrem Browser (https://yourdomain.com/unzip.php) aus. Die unzip.php und die WB zip löschen sich nach erfolgreicher Ausführung der unzip.php selbst.
Melden Sie sich in Ihrem Backend als Super-Admin (Administrator mit ID 1) an und führen Sie das Upgrade-Skript über den Upgrade-Link oder über das wb-info-Panel aus. 

Dietmar