Jump to content
Froxlor Forum
  • 0

[solved] Internal Server Error bei Curl_exec


matsy

Question

Posted

Der Server ist mit PHP-FPM eingerichtet und funktioniert. Es sind alles Seiten erreichbar.

Auch Curl_exec funktioniert allerdings nur wenn ich eine externe Domain anspreche. F?r ein Skript ist es notwendig, dass eine interne Domain angesprochen wird, dabei erfolgt die obige Meldung.

 

Im Log finde ich nichts weiter als:

 

FastCGI: incomplete headers (0 bytes) received from server "/var/www/php-fpm/xxx/fpm.external"

FastCGI: comm with server "/var/www/php-fpm/xxx/fpm.external" aborted: idle timeout (60 sec)

 

Der Sinn der Fehlermeldung ist mir einigerma?en klar hier findet irgendeine Kommunikation nicht statt, mir ist aber nicht klar wo der Fehler liegen k?nnte. Wie gesgt, PHP-FPM funktioniert sonst und curl_exec ist in der Config enabled und funktioniert tadellos mit allen externen Domains. Nur intern nicht.

Recommended Posts

Posted

Ok. Kann das dann FPM-spezifisch sein? Mir kam der Aufruf zwar auch komisch vor aber es ist ein kommerzielles Skript was nach Herstellerangaben mit genau diesem Aufruf eigentlich funktionieren sollte. Kann es sein, dass es mit modphp oder FCGI l?uft und nur mit FPM nicht?

Das w?re nat?rlich doof.

Posted
<?php
		if (isset($_GET['url'])){
			$url = $_GET['url'];
		}
		$ch = curl_init();
		curl_setopt( $ch, CURLOPT_URL, $url );
		curl_setopt( $ch, CURLOPT_HEADER, 0 );	
		curl_setopt($ch, CURLOPT_POST, 0);
		if( ini_get('safe_mode') || ini_get('open_basedir') ){ 		   
			curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);		   
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);		
		}else{ 		   
			curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);		   
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);		
		}

		ob_start();
		$output = curl_exec($ch);       
         curl_close($ch);
		 echo $output;
?>

Das ist das Testskript. Wenn man das zum Beispiel als test.php abspeichert, dann funktioniert der Aufruf: http://www.localdomain.de/test.php?url=www.youtube.com ohne Probleme.

Versucht man damit aber zum Beipsiel die index.php im eigenen Root zu laden: http://www.localdomain.de/test.php?url=www.localdomain.de/index.php

dann erzeugt dies die besagte Fehlermeldung obwohl das kommerzielle Skript um das es mir geht genau diese Art Aufruf braucht und es angeblich bei allen anderen Installationen funktioniert. Da FPM bei mir aber grunds?tzlich funktioniert ohne jegliches Problem habe ich keine Idee mehr woran es liegen k?nnte und ich habe eigentlich auch keine Lust mir den funktionierenden Server zu zerschie?en.

Posted

Funktioniert problemlos, hast du vllt bei "localdomain.de/index.php" einen redirect drin ode reine .htaccess die irgendwas macht etc.?!

Posted

Klappt bei mir immer noch nicht. Es ist zwar eine .htaccess im Verzeichnis aber auch wenn ich die rausnehme tut sich Nichts, d.h. ich kriege wieder den Fehler. Ein Redirect ist nicht drin, Au?er, dass die Domain um die es geht ein Alias hat. Ich versuche aber die Hauptdomain anzusprechen, d.h eigentlich sollte das Serveralias nicht st?ren.

Ich wei? nicht was ich noch probieren soll. Ip-Aufl?sung stimmt. Die Reverse-DNS Aufl?sung d?rfte es meiner Einsch?tzung nach auch nicht sein.

Irgendwo habe ich gelesen, dass ein Eintrag in der hosts vielleicht helfen k?nnte. Tuts aber auch nicht.

 

Ich wei? nicht mehr weiter was da kaputt ist.

Posted

Kann ich dir leider auch nicht sagen, bei dem was ich bisher von dir f?r infos bekommen habe. Dein Testscript tut zumindest bei mir mit apache+php-fpm genau das was es soll. Ich kann dir gerne anbieten mir das mal direkt "vor Ort" anzuschauen bei dir auf der Kiste, wenn du m?chtest.

Posted

Wer lesen kann....

 

Ich hab doch glatt hier den letzten Post ?bersehen., ich sa? wohl doch zu lang vor dem Bildschirm.... Das hochsetzen von max_child hats gebracht.

 

Ist ja auch logisch: Maximal 1 Request/time... Gut, dann kann das ja garnich funktionieren.

(Ist das gewollt so eng bemessen von euch? :)). Ich werde es aber nicht bei 2 statischen belassen, sondern mit mal dynamic und ondemand ansehen und anpassen.

 

TAUSEND Dank an christian_death. Hab schon ?berlegt zur?ck auf mpd_php5 zu wechseln :D.

Posted

Wenn das Angebot noch gilt, dann nehme ich es gerne an. Ich bin am Ende meines Lateins bei diesem Problem.

Wahrscheinlich ist es was furchtbar Einfaches oder Offensichtliches........

Posted

So habe nun weiter und weiter gesucht und festgestellt, dass das Problem "Internal Server Error" bei mir auch mit wget und lynx auftritt. Wenn ich in der Shell mein Testscript aufrufe mit wget www.domain.com/test.php?url=http://www.domain.com, dann bekomme ich den Internal Server Error ebenfalls. Wenn ich aber aufrufe www.domain.com/test.php?url=http://domain.com dann funktioniert es.

 

Ich habe nun aber noch keine Ahnung welchen Schalter ich in Froxlor/Apache/FPM umlegen muss, dass mir die Aufl?sung funktioninert, bzw. anscheinend hat er mit dem www. irgendwie ein Problem.

 

Edit: So heute noch einmal ?berpr?ft und leider war meine obige Aussage falsch. Das Problem tritt weiterhin auf unabh?ngig ob mit oder ohne www.

 

Nochmal edit: Ich habe nun testweise eine v?llig neue Domain angelegt, mit v?llig leerem Docroot. Wenn ich die test.php da rein lege und versuche eine andere php-Datei im gleichen Docroot mit wget zu ziehen funktioniert das nicht. Es kommt wieder Internal Server Error.

Eine nicht-php-Datei, z.B. robots.txt im Docroot kann ich allerdings ohne Probleme ziehen.

 

Das hat irgendwie mit dem PHP auf dem Server zu tun.

Posted

Nopaste doch bitte mal EXAKT die scripts die da verwendet werden, am besten auch ein "ls -la" des docroots. Ich bin immernoch der Meinung das da irgendwas redirected oder sowas in der Art

Posted

Jetzt habe ich erst einmal ein anderes Problem: Ich habe PHP-FPM abgew?hlt und den Server neu gestartet ohne PHP neu zu konfigurieren bzw. auszw?hlen.

Jetzt bekomme ich nat?rlich nur noch leere Seiten. Wie kann ich denn PHP-FPM wieder aktivieren?

Posted

mod_php aktivieren -> froxlor einloggen -> fpm wieder aktivieren -> mod_php deaktivieren -> cron anstupsen -> BAM

Posted

Leere Seite heisst nicht 404 sondern in den meisten F?llen ein nicht angezeigter PHP-Fehler, schau bitte in die error_logs 

Posted

Hmmm....

Doch, ich kriege im Browser ein 404 und auch im Log steht:

IP.IP.IP.IP - - [04/Apr/2014:14:06:29 +0200] "GET / HTTP/1.1" 404 512 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko"

Posted

Wenn da aber die Seite komplett wei? bleibt stimmt ja bei deinem Webserver auch was nicht

Das mag sein. Ich fand ja die Sache mit dem Internal Server Error auch seltsam.

Das hilft mir nur im Moment nicht. :blink:

Posted

So nun habe ich den Eintrag fpm enabled in der Datenbank auf 1 gesetzt. Nun kommt bei 500er Fehler egal was ich aufrufe.

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...