Tomcat7 Bindung an Port 80 schlägt in Ubuntu 14.04LTS fehl
Ich habe ein problem mit meinem tomcat7-installation auf einem aktualisierten Ubuntu-system. Seit dem update auf 14.04 LTS, tomcat weigert sich zu starten auf port 80 mit einer Fehlermeldung, die ich nicht lösen kann, noch überhaupt nichts finden wie es zu lösen ist:
Information: Initializing ProtocolHandler ["http-bio-80"]
Apr 24, 2014 4:39:37 PM org.apache.coyote.AbstractProtocol init
Schwerwiegend: Failed to initialize end point associated with ProtocolHandler ["http-bio-80"]
java.net.SocketException: Datei oder Verzeichnis nicht gefunden
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at java.net.ServerSocket.<init>(ServerSocket.java:181)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:397)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:640)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434)
at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:978)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:813)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:638)
at org.apache.catalina.startup.Catalina.load(Catalina.java:663)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:280)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:454)
Die Sache ist, ich habe genau das gemacht, was ich getan habe, in früheren Ubuntus (lief 12.04 LTS), in kurzen, bearbeitet die server.xml port 80 und auch verändert authbind in /etc/default/tomcat7 ja, also im Grunde alles, was Sie zu tun haben, führen Sie tomcat auf port 80.
Tun, diese Schritte auf einem 12.04 LTS funktioniert, nur auf die 14.04 LTS, es wirft nun diese "Datei oder Verzeichnis nicht gefunden" - Fehler.
Auch bei der Aktualisierung eines 12.04 LTS (auf dem tomcat läuft einwandfrei auf port 80) auf 14.04 LTS, es plötzlich wirft den Fehler oben, während allen Konfiguration identisch sind, was funktioniert in 12.04 LTS.
Ich hoffe jemand kann mir helfen, dieses problem zu beheben.
InformationsquelleAutor der Frage JS16 | 2014-04-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Folgende Werke:
apt-get install authbind
Zunächst
AUTHBIND=yes
im/etc/default/tomcat7
DateiEs wurde eine Referenz-URL hier, aber die website gehackt wurde (markiert als unsicher Edge, Chrome fordert mich auf, um eine browser-Erweiterung installieren).
InformationsquelleAutor der Antwort Chetan
Damit der port 8080 standardmäßig in server.xml
Ausführen :
sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
EN
Das umleiten von traffic von port 80 auf 8080 (default tomcat) in Ubuntu 14.04 ist es nicht möglich, legen Sie den Standard-port 80 in server.xml.
FR
(Ceci redirige le trafic du port 80 vers 8080 (Par défaut dans tomcat) dans Ubuntu 14.04 il n ' est pas possible de mettre le port par défaut à 80 dans server.xml.)
Um diese persistent:
sudo apt-get install iptables-persistent
EN
Dieses Paket ermöglicht Ihnen das speichern von iptables-Regeln die zuvor eingegeben. Werden Sie sicher, dass die Antwort ja (aktuelle Einstellungen speichern).
FR
Ce-Paket permet de sauvegarder les règles iptables Vorspeisen précédemment. Il faut répondre ou aux Fragen, (sauvegarder les paramètres actuels).
InformationsquelleAutor der Antwort JEAN
Ich hatte das gleiche problem. Am Ende, ich habe eine iptables port-Umleitung statt der authpriv Mechanismus
d.h.
1) in /etc/default/tomcat7, authpriv eingestellt=keine
2) in /etc/tomcat7/server.xml verwenden Sie
anstatt 80
3) ufw ermöglichen 8080/tcp
4) Folgen Sie den Anweisungen hier: https://serverfault.com/questions/238563/can-i-use-ufw-to-setup-a-port-forward
Dasselbe kann man für den port 443 (SSL), wenn notwendig
InformationsquelleAutor der Antwort Oliver Kohll
Starten Sie tomcat services mithilfe von authbind dies wird es ermöglichen, Benutzer zu starten, ports kleiner als 1024 brauchen wir nicht umleiten oder iptables.
Installieren Authbind software
Gruppe sollte user group.
Danach führen Sie die weiter unten genannten Befehle
Als ein Beispiel können imagne Benutzer-id 2000 können Sie Ihre Benutzer-id-Nummer
Dieser Datei sollte sein eigenen Benutzer und Gruppe.
chown : 2000
chmod 700 2000
Fügen Sie die folgende Zeile in tomcat startup-Datei $CATALINA_BASE/startup.sh
Für das Starten von tomcat mit Authbind service startup.sh
Kommentieren Sie die folgende Zeile
Fügen Sie Dieses Ende als das Ende der Datei
nun sollten Sie in der Lage zu starten Sie tomcat services als Benutzer mit weniger als 1024 ports.
InformationsquelleAutor der Antwort PKumar