search_it
search_it copied to clipboard
Socketfehler bei Nicht-Standardport (hier: 20080) in einem Docker-Setup
Offenbar gibt es einen Socketfehler, wenn nicht die Standardports verwendet werden. Bei mir tritt es im Docker-Setup auf, sowohl ohne SSL auf localhost:20080 als auch mit SSL auf localhost:20443, wie im Screenshot zu sehen.
Hast du den Port auch bei der domain notiert?
@tyrant88 Yessir!
sorry, habs gerade auch in deinem scrrenshot gesehen.
Also bei mir schnurrt es local auch mit Port 20080...
Danke, ich werde nochmal testen…
kann die fsockopen Funktion eingeschränkt sein? ping @gharlan
Ggf. Via php-ini auf der liste der forbidden/disabled functions?
Ggf. Steht im php error log was genaueres?
Oder der docker container hat keinen internet zugang?
Kenne mich mit Docker ja noch nicht wirklich aus, aber könnte mir vorstellen, dass innerhalb des Containers über Port 80 aufgerufen werden müsste, wenn ich mir das hier so anschaue: https://github.com/FriendsOfREDAXO/redaxo-mit-docker/blob/master/docker-compose.yml#L9-L10 20080 gilt vermutlich nur vom Host aus.
Ich weiß nicht, was Search it genau tut, aber ja, was Gregor sagt: Innerhalb des Containers Port 80. Werde mir das bei Gelegenheit mal genauer anschauen, auch das error log.
Es ruft das Frontend über rex_socket
auf. Also ein HTTP-Request auf das Frontend, über die Frontend-URL.
Die große Frage ist, wie man nun search_it dazu bringen könnte, da eine andere URL (anderen Port) zu verwenden. Aber vielleicht kannst du bei Gelegenheit an der Stelle ja mal bisschen debuggen, ob es mit anderem Port dort überhaupt klappen würde.
@tyrant88 Was Gregor sagt. Search it nimmt rex::getServer()
als URL, und die ist in meinem Fall localhost:20080, wenn ich REDAXO im Browser aufrufe, wird im Docker-Container jedoch auf den Standardport 80 gemappt.
Ich bin mir nicht sicher, wie sinnvoll es ist, aber vermutlich könnte man Ports generell wegkappen, so dass Search it immer auf den Standardports indexiert:
// get url without the port
// e.g. http://localhost:20080/ -> http://localhost/
$url = str_replace(':' . parse_url(rex::getServer(), PHP_URL_PORT), '', rex::getServer());
Könntest du an der Stelle einbauen, die Gregor verlinkt hat. Gerade getestet, und in meinem Fall zumindest funktioniert Search it damit prächtig.
Die Ports generell wegschneiden halte ich für wenig sinnvoll, denn das würde ja den "normalen" Fall kaputtmachen, dass man eine Instanz mit einem anderen Port anspricht. Es müsste also eher eine Option sein. ("Ich bin @schuer, mach die die Ports weg" , oder so ähnlich) ;-) Oder man macht gleich eine Eingabe für die zu scannende URL... wer weiß was man damit noch für tollen Unfug machen könnte... :-)
Na dann los, Option! :)
Oder man macht gleich eine Eingabe für die zu scannende URL...
Problematisch mit YRewrite. Das übrigens auch eine Porteingabe nicht zulässt.
@schuer es gibt keine Möglichkeit innerhalb von Docker, die Anfrage auf den Port :20080 an :80 weiterzurouten?
es gibt keine Möglichkeit innerhalb von Docker, die Anfrage auf den Port :20080 an :80 weiterzurouten?
@alexplusde Hm, das weiß ich nicht. Vermutlich gibt es Möglichkeiten. Allerdings lösen sie das hier vorliegende Problem in Search it nicht, sondern bilden nur einen Workaround auf Anwenderseite.
Ein Problem, das doch erst durch die Anwenderseite entsteht, oder? Mir wäre nur kein weiterer Fall bekannt, in der das Problem je aufgetaucht ist.
Wäre es in Ordnung, wenn #108 gelöst würde? Dann würde sich die Frontend-Indexierung ja erübrigen.
Wenn es für euch funktioniert und an dieser Stelle keine weiteren Maßnahmen erfolgen sollen, dann schließt gerne. Ich habe ja keinen echten Bedarf an einer Lösung.
Und ja, #108 it is!
Ich möchte immer noch eher eine Option, wo man die zu indexierende URL einstellen kann.
Nur das bug-label stört mich.
Das müsste jetzt eigentlich mit der neuen Version umsetzbar sein. Ich habe ja eine solche Option eingebaut.
Top. Dann kann hier sicherlich geschlossen werden, oder? Danke dir!