search_it icon indicating copy to clipboard operation
search_it copied to clipboard

Socketfehler bei Nicht-Standardport (hier: 20080) in einem Docker-Setup

Open schuer opened this issue 5 years ago • 22 comments

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.

screenshot 2019-02-17 at 13 08 16

schuer avatar Mar 03 '19 09:03 schuer

Hast du den Port auch bei der domain notiert?

tyrant88 avatar Mar 04 '19 11:03 tyrant88

@tyrant88 Yessir!

schuer avatar Mar 04 '19 11:03 schuer

sorry, habs gerade auch in deinem scrrenshot gesehen.

tyrant88 avatar Mar 04 '19 11:03 tyrant88

Also bei mir schnurrt es local auch mit Port 20080... zwischenablage-1

tyrant88 avatar Mar 04 '19 14:03 tyrant88

Danke, ich werde nochmal testen…

schuer avatar Mar 04 '19 14:03 schuer

kann die fsockopen Funktion eingeschränkt sein? ping @gharlan

tyrant88 avatar Mar 04 '19 15:03 tyrant88

Ggf. Via php-ini auf der liste der forbidden/disabled functions?

staabm avatar Mar 06 '19 16:03 staabm

Ggf. Steht im php error log was genaueres?

staabm avatar Mar 06 '19 16:03 staabm

Oder der docker container hat keinen internet zugang?

staabm avatar Mar 06 '19 16:03 staabm

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.

gharlan avatar Mar 06 '19 16:03 gharlan

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.

schuer avatar Mar 06 '19 16:03 schuer

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.

gharlan avatar Mar 06 '19 16:03 gharlan

@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.

schuer avatar Mar 15 '19 22:03 schuer

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... :-)

tyrant88 avatar Mar 16 '19 17:03 tyrant88

Na dann los, Option! :)

schuer avatar Mar 16 '19 17:03 schuer

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?

alxndr-w avatar Mar 25 '20 11:03 alxndr-w

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.

schuer avatar Mar 27 '20 19:03 schuer

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.

alxndr-w avatar Mar 27 '20 19:03 alxndr-w

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!

schuer avatar Mar 27 '20 22:03 schuer

Ich möchte immer noch eher eine Option, wo man die zu indexierende URL einstellen kann.

tyrant88 avatar Mar 27 '20 22:03 tyrant88

Nur das bug-label stört mich.

tyrant88 avatar Mar 27 '20 22:03 tyrant88

Das müsste jetzt eigentlich mit der neuen Version umsetzbar sein. Ich habe ja eine solche Option eingebaut.

tyrant88 avatar Jan 21 '22 22:01 tyrant88

Top. Dann kann hier sicherlich geschlossen werden, oder? Danke dir!

schuer avatar Jul 25 '23 20:07 schuer