Gelöst genannten Webshop-URL keinen gültigen JTL-Connector ermitteln

trend4ever

Aktives Mitglied
27. Juli 2016
1
0
Fehler meldung:
Änderung gespeichert. Wir konnten jedoch unter der von Ihnen genannten Webshop-URL keinen gültigen JTL-Connector ermitteln

Hallo.
ich will in jtl einen presta- shop anbinden.
dabei zeigt es immer diese fehlermeldung:

ich habe in :
JTL-Connector » Webshop-URL ändern
meine URL eingegeben(folgende)
http://donnaamore.de/
leider zeigt es immer diese Fehlermeldung.
bitte um hilfe
danke
 
Zuletzt bearbeitet:

Operator99

Aktives Mitglied
12. August 2016
3
0
Hallo Gemeinschaft!

schon seit Wochen bin ich am verzweifeln den ich bekomme immer wieder den gleichen Fehlermeldung bei dem Versuch Wawi mit dem Prestashop zu verbinden.
Volgender Meldung erscheint edesmal:

"Synchronisation mit Webshop nicht Möglich!
Die Shop-URL verweisst nicht auf einen gültigen Shop!
Bitte prüfen Sie die Conector-Konfiguration!
"

Eckdaten:
WAWI v1.1.3.0
Connector v1.4.3
Prestashop v 1.6.1.4
Hosting beim Hosteurope.de


Im Kundencenter ist alles richtig eingetragen.
Plugin ist installiert und eingestellt.


Bitte um Hilfe
Viele Grüße
 

daniel.jtl

Moderator
12. März 2014
1.277
28
Den Connector-Check auch gemacht und alle Mindestvoraussetzungen erfüllt?
Wirklich dir korrekte URL bei der Einrichtung eingetragen?
Server-Logs mal angeguckt?
 

Operator99

Aktives Mitglied
12. August 2016
3
0
Den Connector-Check gemacht dabei ist volgendes aufgefahlen:

Phar-Unterstützung: nein
writable_temp_dir: nein

Habe es auf dem server eingestellt doch der "Phar-Unterstützung"- fehler ist immer noch da. Habe as an den Provider gemeldet, die Aussage war, alles ist richtig der wer ist nur "phar" statt "://phar"
wie es der Connector-Check prüft/verlangt.

Die andere einstellungen müssen auch alle richtig sein. Habe das ganze versucht als ein Test auf eigenen Webserver mit ddns zu testet, alles klapte auf Anhieb.

PS.
Im Kundencenter, beim Pfadänderung kommt "grüner Meldung" erst wenn ich den Pfad wie volgt angebe: www.meinshop.org/modules/jtlconnector/
sonnst das selber Fehler mit kein gültiger Shop- url
 

Anhänge

  • upload_2016-8-12_12-9-10.png
    upload_2016-8-12_12-9-10.png
    17,9 KB · Aufrufe: 29

daniel.jtl

Moderator
12. März 2014
1.277
28
Wenn der Check sagt dass etwas nicht stimmt, dann ist das auch so, da dieser ja direkt auf dem Webspace testet.
Ohne Phar-Extension und Schreibrechte temporärer Dateien wird der Connector nicht funktionieren.
 

JTL-Tester

Aktives Mitglied
13. Oktober 2016
20
3
Hallo alle zusammen.
Die Aussage
Wenn der Check sagt dass etwas nicht stimmt, dann ist das auch so...
ist nicht wirklich hifreich. Weil:
"writable_temp_dir" was wird dafür verwendet? Eine "upload_tmp_dir" die in den PHPini eingetragen ist, oder wird einfach ein /tmp Ordener im shoproot erwartet?
Habe vor ca 3-4 Monaten einen PresteShop auf einem Testserver bei einem kostenlosen Provider installiert. Habe damals auch das Problem mit dem Pfad in dem Kundencenter gehabt.
Nach ein paar Versuchen habe ich festgestellt, dass der Pfad www.meinshop.org/modules/jtlconnector/ bzw. www.meinshop.org/modules/ eingegeben werden soll, weil es nur als "www.meinshop.org/modules/" gespeichert wird. Auch bei dem Connectorchek habe ich ein paar Fehler gehabt wie z.Bsp. "open_basedir". Trotzdem konnte ich eine Verbindung aus JTL zu dem Shop aufbauen. Jetzt habe ich versucht das Gleiche auf einem Hosteurope Server einzusetzen, bekomme aber das Gleiche Problem wie bei dem Operator99
und zwar:
Phar-Unterstützung: nein
writable_temp_dir: nein
obwohl in Phpini alles aktiviert ist was Connector-Check verlangt.http://www.multisupplies.de/site/templates_customer/images/Phpini.png
Der Connector-Check meldet trotzdem Phar-Unterstützung: nein.
Übrigens habe ich auf meinem Testserver den Eintrag mit "suhosin.executor.include.whitelist" nicht, und der Connector-Check hat Phar-Unterstützung trotzdem als bestanden angezeigt.

Was oder wo soll noch etwas eintragen damit es funktioniert?
 
Zuletzt von einem Moderator bearbeitet:

daniel.jtl

Moderator
12. März 2014
1.277
28
Es werden die Pfade verwendet die vom Server konfiguriert sind, und mittels der PHP eigenen Funktion sys_get_temp_dir zurückgegeben werden.
Wir setzen da nichts selber, sondern verwenden ordnungsgemäß das was der Server uns vorgibt. Wenn hier also keine Schreibrechte gezeigt werden, ist definitiv die Konfiguration des Webspace fehlerhaft.

Bezüglich Phar könnte der Suhosin-Eintrag schon das Problem sein, da gehört nämlich nur "phar" rein und kein Pfad mit Doppelpunkt und Slashes.

Wir können dir da ansonsten aber leider nicht weiterhelfen, da das eindeutig eine Sache deines Servers bzw. Providers ist.
 

JTL-Tester

Aktives Mitglied
13. Oktober 2016
20
3
Hallo Daniel,

danke für den Hinweis. Habe den Support von Hosteurope kontaktiert und mein Problem geschildert. Daraufhin habe ich folgende Antwort bekommen:
"Den Whitelist-Eintrag können wir für Sie leider so nicht einstellen, hier müssen Sie vielleicht im Skript eine Einstellung/Workaround tätigen.
Das user_tmp_dir haben wir getestet und konnten dort keine Probleme feststellen."
Da ich mich in einem solchem Fall nicht 100% auf eine Aussage verlassen kann, solange ich mich selbst nicht überzeuge, habe in dem Connectorcheck nachgeguckt was und wie es geprüft wird.
In der Datei PhpPharExtention.php wird volgendes geprüft:
...
$whitelist = explode(',', ini_get('suhosin.executor.include.whitelist'));
if (!in_array('phar', $whitelist))
...
In anderen Worten, es wird nachgeguckt ob "phar" in dem suhosin.executor.include.whitelist steht. Und wenn in suhosin standardmässig alle Einträge als protocol erwartet werden http://,https://,phar://,vfs:// usw.
Dann heißt es "Pech gehabt".
Ich habe mir ein kleines Skript zusammengeschrieben:
<?php
/**
CHECK sys_get_temp_dir
**/
echo "writable_temp_dir (sys_get_temp_dir()) = ".sys_get_temp_dir() ."<br/>";
echo "Rechte (Oktal): ".substr(decoct(fileperms(sys_get_temp_dir())), 2) ."<br/>";

/**
CHECK suhosin.executor.include.whitelist
**/
echo "suhosin.executor.include.whitelist = ".ini_get('suhosin.executor.include.whitelist')."<br/>";
$whitelist = explode(',', ini_get('suhosin.executor.include.whitelist'));
if (!in_array('phar', $whitelist)){
if (!in_array('phar://', $whitelist)){
echo"nicht im Array";
} else { echo"im Array";}

} else {echo"im Array";}

?>
Und das sind die Ergebisse:

writable_temp_dir (sys_get_temp_dir()) = /tmp
Rechte (Oktal): 770

suhosin.executor.include.whitelist = https://,http://,phar://
im Array

Ich verstehe, dass das eine Kleinigkeit ist und der Connectorcheck kein Bestandteil des jtlconnectors ist, sondern nur ein kleines Tool, um die Voraussetzungen schnell zu checken. Da das Tool, falls etwas nicht stimmt, nicht ausreichend Informationen liefert, und die Leute wochenlang eruieren müssen, würde ich sagen, dass nach diesen Anpassungen jeder, der das sieht, dem Provider exakte Infos geben kann, was genau nicht stimmt und was angepasst werden muss.
Auch für die Connector Entwickler, falls Leute nachfragen, wird es klarer.
Auf jeden fall haben nicht alle, die Prestashop betreiben und JTL-WAWI mit Hilfe von jtlconnector verbinden wollen, immer die Möglichkeit PHPini bzw. Suhosin-Eintrag so zu setzen, wie es in dem Connector mal gelegt wurde ohne Rücksicht auf verschiedene Provider und/oder deren Hosting Paketmöglichketen.
Ich vermute, dass in dem jtlconnector auch die flexible Übeprüfung, zumindest für suhosin.executor.include.whitelist, integriert werden muss.
 
Zuletzt bearbeitet:

JTL-Tester

Aktives Mitglied
13. Oktober 2016
20
3
In der Whitelist werden zulässige Streams als URL Schema eingetragen: https://suhosin.org/stories/configuration.html#suhosin-executor-include-whitelist
Das heißt, wenn im Connectorcheck in der PhpPharExtension.php Datei "phar" ermittelt wird, anstelle von:
...
if (!in_array('phar', $whitelist))
...
die if Abfrage so formuliert:
...
if (!in_array('phar', $whitelist) && !in_array('phar://', $whitelist))
...
dann funktioniert alles richtig. Nur müssen dieselben Anpassungen nicht nur in dem Connectorcheck, sondern auch in dem jtlconnector integriert werden.
In Rücksprache mit dem Hosteurope Support habe ich folgendes erfahren:
"Die PHP Funktion sys_get_temp_dir() liefert leider standardmäßig immer /tmp als Verzeichnis zurück. Dieses Verzeichnis ist jedoch aus Sicherheitsgründen auf Unseren WebHosting Paketen nicht beschreibbar. Sie können dies beheben, indem Sie in die index.php des Connectorchecks folgende Zeile eintragen:
putenv("TMPDIR=/is/htdocs/user_tmp/user_XXXXXX");" Das enspricht dem upload_tmp_dir.
Ok, das ist in dem Fall keine dynamische Losung, kann man aber als Konfigurations Option im Connectorcheck und auch im jtlconnector anbieten. Problem gelöst.

Ich hoffe jetzt auf eine schnelle Reaktion von den JTL-connector Entwicklern und/oder zumindest Auskunft darüber, wo ich in dem jtlconnector die Anpassungen vornehmen soll, damit die Verbindung endlich funktioniert.

Mit freundlichen Grüßen
 

daniel.jtl

Moderator
12. März 2014
1.277
28
Keinen der Punkte kann ich so unterschreiben oder für korrekt befinden.

In nahezu jeder Beschreibung ist ersichtlich, dass der Phar-Eintrag in der Suhosin-Whitelist ohne Angabe irgendwelcher Doppelpunkte oder Slashes zu erfolgen hat.
Durchaus möglich dass das generell funktioniert, standardkonform ist es so aber wohl kaum.
Aber gut, dass ist ja in dem Fall auch egal da es nur um den Tester geht. Wenn anderweitig sichergestellt ist dass Phar funktioniert, sollte das ja nun kein Hindernis sein.

Bezüglich dem Temp-Verzeichnis: Das Thema gab es schon diverse Male...
Fakt ist: Was auch immer der Hoster erzählt, es handelt sich hier ganz klar um eine fehlerhafte Server-Konfiguration.
Eine speziell von PHP bereitgestellte Funktion (welche nämlich nichts anderes tun soll als eben genau den Pfad zu ermitteln, welcher vom Server für temporäre Dateien vorgesehen ist, siehe http://php.net/manual/de/function.sys-get-temp-dir.php) liefert einen nicht beschreibbaren Pfad zurück. Da gibt es leider keinerlei Diskussion oder Ausrede, da diese Funktion durch die falsche Konfiguration ausgehebelt und nutzlos wurde.
Dazu gibt es auch einen interessanten Link bei den Kollegen von Contao: http://de.contaowiki.org/Probleme_b..._sys_get_temp_dir(),_tmpfile()_oder_tempnam()
 

JTL-Tester

Aktives Mitglied
13. Oktober 2016
20
3
Hallo Daniel,
Keinen der Punkte kann ich so unterschreiben oder für korrekt befinden.
1. Zu dem Suhosin-Eintrag.
Ich gehe davon aus, dass du einen wichtigen Hinweis übersehen hast:
In der Whitelist werden zulässige Streams als URL Schema eingetragen::https://suhosin.org/stories/configuration.html#suhosin-executor-include-whitelist
suhosin.executor.include.whitelist
  • Type: String
  • Default:
Comma separated whitelist of URL schemes that are allowed to be included from include or require statements. Additionally to URL schemes it is possible to specify the beginning of allowed URLs. (f.e.: php://stdin) If no whitelist is specified, then the blacklist is evaluated.
...
Wenn das keine Orientierung für eine korrekte Konfiguration ist, dann weiss ich auch nicht was richtig oder falsch ist.:(

Und wenn auf dem Server die notwendige Funktion doch vorhanden ist, aber der Connector-Check bzw. jtlconnector das nicht richtig ermitteln kann und die kleine Ergänzung des Skriptes " if (!in_array('phar', $whitelist) && !in_array('phar://', $whitelist)) " zu viel Aufwand ist, dann sehe ich das nicht als lösungorientierten Einsatz.

Ich habe gerade in dem jtlconnectop in der Datai: api.php gesehen:
" ...
include_once 'phar://'.CONNECTOR_DIR.'/connector.phar';
..."
Geht es hier etwa nicht ums Einbinden einer connector.phar Datei mit Hilfe vom URL Schema "phar://"?

2. Bei der sys_get_temp_dir Funktion von Hosteurope kann man natürlich darüber diskutieren bei wem der Fehler liegt usw., aber diese Diskussion liefert keine Lösung.

Was die Konfiguration von temp_dir angeht, das werde ich nochmal mit dem Support von Hosteurope klären.

Mein Vorschlag ist:
1.Suhosin-Eintrag Ermittlung bei dem Connector-Check bzw. jtlconnector ergänzen, damit das schon mal flexibel wird und damit die beiden mögliche Konfigurationsarten abgedeckt sind.
2. Ausgabe einer detaillerten Info bei dem Connector-Check, wenn etwas nicht richtig konfiguriert ist.
3. Eventuell dem Kunden eine Möglichkeit geben Sachen wie zBps. temp_dir als optionalen Configeintrag festzulegen, damit der JTL Kunde auch eine Chance hat eine Verbindung zwischen JTL und dem Shop aufzubauen und nicht nur die Ausreden vom Hoster bzw. von JTLconnector Entwickler zu lesen.
Auf jeden Fall bin ich gespannt auf eine kundenorientierte Lösung.

Mit freundlichen Grüßen
 

daniel.jtl

Moderator
12. März 2014
1.277
28
Es handelt sich in dem Fall aber nicht um einen regulären URL Stream, sondern eine Modul-Angabe. Guck dir bitte wie gesagt jede Doku oder Website an, nirgendwo wird erklärt oder empfohlen das mit Doppelpunkten und Slashes anzugeben.
Du bist zudem der erste von vielen hundert Nutzern der das in dieser Form bemängelt. Ich bezweifel zwar nicht dass es so auch funktioniert, dennoch entspricht dass aber ganz offensichtlich nicht der üblichen Vorgehensweise.
Ich werde das aber bei einem Update des Checks berücksichtigen und mir nochmal näher angucken.

Beim Temp-Verzeichnis kann man aber beim besten Willen nicht diskutieren. Wenn eine serienmäßige PHP-Funktion kaputt konfiguriert wird, und dadurch komplett unbrauchbar und nutzlos wird, dann ist das wohl ein ganz klarer Fall.
Ich gebe dir Recht, dass das aus Kunden-Sicht nicht zufriedenstellend ist, aber hier liegt es leider wirklich und nachweislich nicht in unserer Verantwortung eine fehlerhafte Konfiguration irgendwie mittels Connector zu kompensieren.
Die einzige saubere und ordnungsgemäße Lösung ist hier, mittels php.ini etc. alles korrekt einzustellen.
Wenn das nicht machbar ist, besteht noch die Möglichkeit in den Hauptordner des Connectors eine "include.php" zu legen. Alles was in dieser Datei steht wird vor dem Connector ausgeführt, so dass man hier individuelle Dinge vornehmen kann.
 

JTL-Tester

Aktives Mitglied
13. Oktober 2016
20
3
Hi Daniel,

danke! Es funktioniert!
Allerdings musste ich include.php bei dem jtlconnector manuell einbinden per "include_once(dirname(__FILE__) .'/include.php');" in der jtlconnectop.php Datei, anders funktioniert es nicht.

Kleine Bemerkung zu der Kundencenter Connectorverwaltung: Wenn man bei "Webshop-URL ändern" "www.meinshop.de/" einträgt, dann bekommt man die Meldung:
"Änderung gespeichert. Wir konnten jedoch unter der von Ihnen genannten Webshop-URL keinen gültigen JTL-Connector ermitteln!"
Und wenn man "www.meinshop.de/modules/" eingibt, dann nur "Änderung gespeichert!" in einem grünen Feld, also Status: OK. Bei der JTL-WAWI habe ich daraufhin eine weitere Meldung bekommen. Als ich dann doch auf "www.meinshop.de/" zurückgegangen bin und bei JTL die Lizenzen aktualisiert habe, konnte ich endlich wieder eine Verbindung aufbauen und alles hat geklappt.
Offensichtlich muss man bei "Webshop-URL ändern" "modules/" Pfad berücksichtigen.
 
  • Gefällt mir
Reaktionen: Operator99

daniel.jtl

Moderator
12. März 2014
1.277
28
Also das mit der URL sollte aber eigentlich nicht so sein. Im Kundencenter muss normal nur die Haupt-Domain eingetragen werden.
Hast du evtl. Presta als Multishop aufgesetzt oder irgendwelche Modifikationen am URL-Rewrite vorgenommen?
Serienmäßig sollte das Connector-Plugin nämlich direkt unter "/jtlconnector" erreichbar sein, ohne irgendwelche weiteren Pfadangabe auf /modules oder ähnliches.
 

JTL-Tester

Aktives Mitglied
13. Oktober 2016
20
3
Hi Daniel,

ich habe ganz normal ohne irgendwelche Besonderheiten Presta installiert (v 1.6.1.6).
Vor einigen Monaten habe ich zu Testzwecken bei dem anderen Provider auch einen Prestashop (v 1.6.1.4) installiert und damals habe ich in dem Kundencenter bei Connector-Verwaltung das gleiche Problem gehabt.
 

Momos

Aktives Mitglied
2. November 2016
13
0
Hatte das gleiche Problem in der Connectorverwaltung. Man darf bei der Domainänderung kein www voranstellen, dann klappt es.
 

JTL-Tester

Aktives Mitglied
13. Oktober 2016
20
3
Hi Momos,

Und wenn man einen Shop unter der Subdomain benutzt z.B. shop.firma.de was dann? Das sind einfach solche Sachen über die sich keiner Gedanken gemacht hat. Obwohl diese eingentlich zum Standard gehören.;)
 

Operator99

Aktives Mitglied
12. August 2016
3
0
Hi Daniel,

danke! Es funktioniert!
Allerdings musste ich include.php bei dem jtlconnector manuell einbinden per "include_once(dirname(__FILE__) .'/include.php');" in der jtlconnectop.php Datei, anders funktioniert es nicht.

Kleine Bemerkung zu der Kundencenter Connectorverwaltung: Wenn man bei "Webshop-URL ändern" "www.meinshop.de/" einträgt, dann bekommt man die Meldung:
"Änderung gespeichert. Wir konnten jedoch unter der von Ihnen genannten Webshop-URL keinen gültigen JTL-Connector ermitteln!"
Und wenn man "www.meinshop.de/modules/" eingibt, dann nur "Änderung gespeichert!" in einem grünen Feld, also Status: OK. Bei der JTL-WAWI habe ich daraufhin eine weitere Meldung bekommen. Als ich dann doch auf "www.meinshop.de/" zurückgegangen bin und bei JTL die Lizenzen aktualisiert habe, konnte ich endlich wieder eine Verbindung aufbauen und alles hat geklappt.
Offensichtlich muss man bei "Webshop-URL ändern" "modules/" Pfad berücksichtigen.
Hallo JTL-Tester,

erstmal vielen Dank für deinen Einsatz hier, habe schon die Hoffnung verloren gehabt.
Könntest du bitte die Lösung genauer beschreiben? evtl. Beispiel von der include.php mit Kommentaren wo, was defeniert werden muss. und den Hinweis auf die Version des benutzter Connector.

Schon mal vielen Dafür.