PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache läuft auf 127.0.0.2 und Malformed response



Leeloo
16.02.07, 13:45
Hallo allerseits,

mein Apache2 auf einem frisch installierten openSUSE 10.2 schmeißt mir beim Starten folgende Fehlermeldung vor die Füße:
Starting httpd2 (prefork) httpd2-prefork: Could not reliably determine the server's fully qualified domain name, using 127.0.0.2 for ServerName

Davon mal abgesehen läuft er ja. Allerdings versuche ich nun mit dem PEAR-Modul HTTP_Request eben einen Request abzusetzen, dessen Ergebnis scheinbar nicht ankommt: Malformed response.

Hab schon wie wild gegoogelt, bisher aber nicht wirklich was aussagekräftiges gefunden.

Jemand eine Idee, wie ich das fixen kann?
Gruß,
Leeloo

Roger Wilco
16.02.07, 14:06
Trage einen (deinen!) Hostname für 127.0.0.2 in der /etc/hosts ein.

Leeloo
16.02.07, 14:39
stehe ja drin:

127.0.0.2 TomLinux

Trotzdem ist immer noch Malformed response. Und der Apache startet immer noch mit dieser blöden Fehlermeldung. Der soll doch aber ganz normal starten
:mad:

Gruß,
Leeloo

bla!zilla
16.02.07, 14:48
127.0.0.2 TomLinux


Das ist kein vollqualifizierter Hostname. Bitte ändern und korrekt in der /etc/hosts eintragen.

Leeloo
16.02.07, 15:06
Ja, und was heißt denn "vollqualifiziert" ???

Habs auch mit 127.0.0.2 TomLinux localhost probiert
127.0.0.2 TomLinux TomLinux wird von openSUSE 10.2 schon von selbst angelegt.

bla!zilla
16.02.07, 15:11
Bisschen Eigeninitiative wäre nicht schlecht. Schon mal selber gesucht?

Leeloo
16.02.07, 15:26
<sarkasmus>
Nee, weeßte, ich sitze nur hier rum und warte auf antworten von euch. Eigeninitiative ist mir unbekannt
</sarkasmus>

Wie bereits erwähnt, habe ich schon danach gegoogelt. Die meisten haben anstatt 127.0.0.2 die selbe Fehlermeldung mit 127.0.0.1. Dort wird auch überall empfohlen in der /etc/hosts einen Eintrag like

127.0.0.1 hostname

zumachen. Toll, aber das bringt mich nicht weiter. Mit der Angabe

127.0.0.2 hostname

scheint es ja noch immer net zu funzen.

So, ich bin ja jemand der gern alles ausprobiert, also hab ich mal

127.0.0.2 192.168.229.132 TomLinux

genommen und siehe da, der Apache2 geht ohne Fehlermeldung an den Start.

Das ganze funtz auch, wenn ich 127.0.0.1 nehme.

Allerdings bleibt immer noch dieser Fehler Malformed response übrig, den mir mein HTTP_Request schmeißt.

bla!zilla
16.02.07, 15:31
*hüstel*

Ich bremse ja nur ungerne deinen Arbeitseifer, aber deine /etc/hosts Einträge sind Müll.

So sollte es aussehen:



127.0.0.1 localhost localhost.localdomain
127.0.0.2 TomLinux TomLinux.$DEINDNSSUFFIX
192.168.229.132 TomLinux TomLinux.$DEINDNSSUFFIX


Was soll das 127.0.0.2??? Normalerweise sieht das so aus:



127.0.0.1 localhost localhost.localdomain
192.168.229.132 TomLinux TomLinux.$DEINDNSSUFFIX

Leeloo
16.02.07, 15:42
Ja, das habe ich mich auch gefragt: Was soll das mit dem 127.0.0.2 sein???
Hab mal auf meinem alten openSuse 10.1 geguggt. Da gabs auch so einen 127.0.0.2 hostname hostname Eintrag, sowie ein 127.0.0.1 hostname. Und da hatte ich nie die Probleme.
Dieser 127.0.0.2 hostname hostname wird automatisch beim installieren angelegt. wer weeß wo der herkommt. Ist das jetzt eine openSUSE 10.2-Eigenheit?

Hab mal deine Syntax abgetippt, wobei ich immer noch der Frage nach gehe, was ein DNSSuffix sein soll!? Egal, ich habs mal ohne gemacht, weil sowas hab i net, denke ich.
Heraus kommt dann wieder der Ursprungsfehler
Starting httpd2 (prefork) httpd2-prefork: Could not reliably determine the server's fully qualified domain name, using 127.0.0.2 for ServerName

Ich steig wieder auf 10.1 um. :mad:

bla!zilla
16.02.07, 15:48
Dann steig wieder auf 10.1 um. :) Der Fehler lässt sich problemlos beheben, wenn man mal etwas nachdenkt und sich etwas mit der Materie beschäftigt. :rolleyes:

Versuch es mal so, und dann sehen wir weiter....



127.0.0.1 localhost localhost.localdomain
192.168.229.132 TomLinux TomLinux.gibts.net

Leeloo
16.02.07, 16:11
Ich beschäftige mich ja damit. Die Google-Suche nach DNSSuffix hat mich nur verwirrt. Und nun bin ich wieder verwirrt:
Starting httpd2 (prefork) httpd2-prefork: Could not reliably determine the server's fully qualified domain name, using 192.168.229.132 for ServerName

gibts.net gibt es halt net und wo kommt die localdomain her? Nirgends sowas gesehen???

Es gab mal bei der Konfiguration sowas wie Domainname. Da stand site drin. Hab ich rausgenommen. Brauch i net. Denke ich.

bla!zilla
16.02.07, 16:18
Besser nicht soviel denken.... Das DNS Suffix gehört nun mal zu einem vollqualifizierten Hostnamen dazu. Und der setzt sich bekanntlich aus Hostname, Domain und top-level Domain zusammen, oder?

Jetzt brauchen wir aber erstmal ein paar Informationen. Wie heißt deine Linux Maschine? Was für eine Distribution? Welche Version von Apache und was hast du eigentlich vor?

Leeloo
16.02.07, 16:51
- openSuse 10.2
- das darin enthaltene Apache 2 sowie PHP5

weiterhin habe ich mir von PEAR HTTP_Request, Net_URL und Net_Socket drauf kopiert.

Unter openSuse 10.1 funzt alles. Jedenfalls unter dem alten. K.A. was ich da angestellt hab. Da flutschte alles. Jetzt hab ich sogar Probleme beim Neuaufsetzen von 10.1. Das is heut net mein Tag. *grummel*

Ich mach jetzt erstmal feierabend, auch wenn i nix geschafft hab heut :(

Gruß,
Leeloo

Leeloo
19.02.07, 12:43
Sooo, hab meine Netzkonfiguration jetzt so festgenagelt, dass da nix mehr schiefgehen kann.

In der /etc/hosts steht dann:


127.0.0.1 localhost
192.168.229.132 tomlinux.mein.lan tomlinux

Zusätzlich musste noch die resolv.conf angepasst werden. Die Werte search und nameserver mussten jeweils einen Wert bekommen.
Der Apache läuft.

Problem bleibt: "Malformed response." = "Missgebildete Antwort". Die wird von meinem PEAR-Paket: HTTP_Request (http://pear.php.net/package/HTTP_Request) verursacht. Der Codeschnipsel, der das verursacht sieht wie folgt aus:


function process($saveBody = true, $canHaveBody = true)
{
do {
$line = $this->_sock->readLine();
if (sscanf($line, 'HTTP/%s %s', $http_version, $returncode) != 2) {
return PEAR::raiseError('Malformed response.');
} else {
$this->_protocol = 'HTTP/' . $http_version;
$this->_code = intval($returncode);
}
while ('' !== ($header = $this->_sock->readLine())) {
$this->_processHeader($header);
}
} while (100 == $this->_code);

$this->_notify('gotHeaders', $this->_headers);



Ein normaler HTTP-Request geht durch:


#HTTP_Resquest-Objekt erstellen
$req =& new HTTP_Request("http://example.org");
$req->setProxy("proxy.example.org", 8080); # Wenn nötig!

#HTTP_Request senden
$response = $req->sendRequest();

#Fehlerabfrage
if (PEAR::isError($response)) {
echo "<br/>Error-Message: ";
echo $response->getMessage();
return FALSE;

} else {

#Code holen
$code = $req->getResponseCode();
echo "<br/> Fehlercode: ".$code;

#Code testen
if ($code != "200") {

return FALSE;

}else{
#Ergebnis-Body holen
echo $result = $req->getResponseBody();

}//end else-if

Und ich erhalte die Seite. Wenn ich allerdings ein HTTPS davorsetze. Kommt die Fehlermeldung 501, was soviel bedeutet wie: "nicht implementiert oder nicht unterstützt". Heißt das jetzt, der Apache 2.2.3, der mit openSUSE 10.2 mitgeliefert wird, untersützt keine HTTPS-Requests mehr? Oder ist es einfach ein Fehler in dem PEAR-Paket? Normalerweise, würde ich auf letzteres tippen, aber das PEAR-Paket meckert ja nur rum, weil ihm nichts ordentliches zurück gegeben wird ...
Das ist doch alles doof *grmpf* :confused:
Jemand damit schon Probleme gehabt? Oder bin ich die einzige?

Gruß,
Leeloo

marce
19.02.07, 12:46
vermutlich solltest Du auch das ssl-Paket installieren (mod_ssl oder wie auch immer das im Paketmanagement heisst) - ansonsten kann der Apache natürlich nichts mit https-Anfragen anfangen...

Leeloo
19.02.07, 13:05
Danke marce. Du hattest die zündende Idee. Ich dachte noch, wieso soll der Apache SSL haben, er soll doch nur nen HTTPS-Request raussenden, aber nicht so recht verarbeiten. Wie ich allerdings das mod_ssl da rein gekriegt hab, is mir noch nen Rätsel. "OpenSSL" war bereits installiert. Zusätzlich hab ich nur noch php5_openssl hinzugefügt und plötzlich sprach der Apache auch SSL bzw. es wurde das Modul mod_ssl geladen. Ob ich da jemals hinter steige!?
Egal, es geht: :D juchhhuuuuu.
sorry, wenn ich euch allzusehr genervt hab.

Gruß,
Leeloo