[Mapbender-users] Connection = CURL - Frage zu Einstellungen

v.botz volker.emmel at lwk-rlp.de
Thu May 28 11:40:09 EDT 2009


hmmm,

ich habe jetzt mal die untige gepatchte class_connector.php genommen... (und
die mapbender.conf angepasst)
egal ob CONNECTION CURL oder HTTP:
>> bleibt alles beim alten:  entweder lokale suche oder externe wms
>> drucken.... !
Kenn mich auch zu wenig damit aus um tiefer einzusteigen....

--------------

wenn ich eine phpinfo.php aufrufe bekomme ich die no_proxy variablen bei
apache environment angezeigt..
allerdings werden nur die klein- oder die großgeschriebenen übernommen (also
nur no_proxy, oder NO_PROXY)
was ist richtig - wie sieht das bei euch aus ?

selbst wenn $NO_PROXY in phpinfo steht:

echo $NO_PROXY bringt kein Ergebniss
echo $no_proxy bringt die richtigen Einträge (Ronald: war mein Fehler im
vorherigen Post ;-) )
z.B. 200.X.XXX.22,www.bild.de

schon unlogisch! vor allem: Umgebungsvariablen sind case-sensitive!!
wenn ich beide no_proxy und NO_PROXY angebe wird jeweils die Erste
Definition genommen.
------

Verbindungs-TEST:

wenn ich curl 200.X.XXX.22 in die Console eingebe
> komm ich auch richtige angezeige... (ist ja auch im Intranet)

wenn ich curl www.bild.de in die Console eingebe
> Bekomm ich die Seite ebenfalls angezeigt!!    = Fehler, da nur über Proxy
> erreichbar, da im Internet !

Sieht so aus als ob no_proxy nicht für curl greift....
Oder liegt das an dem Aufruf aus der Console ?

============================================================

Bin ich eigentlich der einzige der lokale und externe Daten in einer VM
kombiniert ?
Warum hab anscheinend fast nur ich das Problem ?
Macht Ihr da was anders ?
... liegt das vielleicht an Ubuntu inner VM?

============================================================

Hoff ihr hab noch Ideen  ;-)
Gruuß V.botz




Ingo Lünsmann wrote:
> 
> Dies hört sich nach einem ähnlichen Problem, was ich vor ca. 1,5 Jahren
> hatte. Damals habe ich die getHTTP()-Methode in class_connector.php
> gepatcht, so dass ich in die mapbender.conf Proxy-Ausnahmen eintragen
> kann. Vielleicht hilft es ja weiter. Hier die gepatchte
> class_connector.php (im Verzeichnis mapbender/http/classes):
> 
> <?php
> 
> 
> # $Id$
> # http://www.mapbender.org/index.php/class_connector
> # Copyright (C) 2002 CCGIS 
> #
> # This program is free software; you can redistribute it and/or modify
> # it under the terms of the GNU General Public License as published by
> # the Free Software Foundation; either version 2, or (at your option)
> # any later version.
> #
> # This program is distributed in the hope that it will be useful,
> # but WITHOUT ANY WARRANTY; without even the implied warranty of
> # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> # GNU General Public License for more details.
> #
> # You should have received a copy of the GNU General Public License
> # along with this program; if not, write to the Free Software
> # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
> USA.
> 
> require_once ("../../conf/mapbender.conf");
> 
> class connector {
> 	var $file;
> 	function connector($url) {
> 		if (CONNECTION == 'curl') {
> 			$this->file = $this->getCURL($url);
> 		}
> 		if (CONNECTION == 'http') {
> 			$this->file = $this->getHTTP($url);
> 		}
> 		if (CONNECTION == 'socket') {
> 			$this->file = $this->getSOCKET($url);
> 		}
> 	}
> 	function getCURL($url) {
> 		$ch = curl_init($url);
> 		//		curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
> 		if (CONNECTION_PROXY != "") {
> 			curl_setopt($ch, CURLOPT_PROXY, CONNECTION_PROXY . ":" .
> CONNECTION_PORT);
> 		}
> 		if (CONNECTION_PASSWORD != "") {
> 			curl_setopt($ch, CURLOPT_PROXYUSERPWD, CONNECTION_USER . ':' .
> CONNECTION_PASSWORD);
> 		}
> 		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
> 		$file = curl_exec($ch);
> 		curl_close($ch);
> 		return $file;
> 	}
> 	function getHTTP($url) {
> 		//echo "PROXY: ".CONNECTION_PROXY.":".CONNECTION_PORT.",
> NON_PROXY_HOSTS: ".NON_PROXY_HOSTS;
> 		
> 		//Wurde ein Proxy konfiguriert?
> 		if (CONNECTION_PROXY != "") {
> 
> 			//Sollte die aufgerufenen URL sich im konfigurierten
> NON_PROXY_HOSTS-Parameter befinden,
> 			//wird der Proxy nicht verwendet.
> 			if (NON_PROXY_HOSTS != "") {
> 				$nonProxyHosts = explode("|", NON_PROXY_HOSTS);
> 
> 				foreach ($nonProxyHosts as $host) {
> 					if (strstr($url, $host)) {
> 						return file_get_contents($url);
> 					}
> 				}
> 			}
> 
> 			//Also doch ueber den Proxy...
> 			$aContext = array (
> 				'http' => array (
> 					'proxy' => 'tcp://' . CONNECTION_PROXY . ':' . CONNECTION_PORT
> 				),
> 
> 				
> 			);
> 			$cxContext = stream_context_create($aContext);
> 
> 			return file_get_contents($url, False, $cxContext);
> 
> 		} else {
> 			return file_get_contents($url);
> 		}
> 
> 		//return file_get_contents($url);
> 		/*$aContext = array(
> 				'http' => array(
> 				'proxy' => 'tcp://195.90.13.22:3128'), // This needs to be the server
> and the port of the NTLM Authentication Proxy Server.
> 			);
> 		$cxContext = stream_context_create($aContext);
> 		
> 		if(strstr($url, 'localhost'))
> 			return file_get_contents($url);
> 			else
> 			return file_get_contents($url, False, $cxContext);*/
> 	}
> 	function getSOCKET($url) {
> 		$r = "";
> 		$fp = fsockopen(CONNECTION_PROXY, CONNECTION_PORT, $errno, $errstr, 30);
> 		if (!$fp) {
> 			echo "$errstr ($errno)<br />\n";
> 		} else {
> 			fputs($fp, "GET " . $url . " HTTP/1.0\r\n\r\n");
> 			while (!feof($fp)) {
> 				$r .= fgets($fp, 4096);
> 			}
> 			fclose($fp);
> 			return $r;
> 		}
> 	}
> }
> ?>
> 
> 
> ----
> Und die beispielhaften Eintraege in der mapbender.conf:
> 
> define("CONNECTION_PROXY", "proxy_server_ip");
> define("CONNECTION_PORT", "3128");
> define("CONNECTION_USER", "");
> define("CONNECTION_PASSWORD", "");
> define("NON_PROXY_HOSTS","localhost|janeway");
> 
> Bitte achte auf Groß- und Kleinschreibung...
> 

-- 
View this message in context: http://n2.nabble.com/Connection-%3D-CURL----Frage-zu-Einstellungen-tp2974212p2988423.html
Sent from the mapbender-users mailing list archive at Nabble.com.



More information about the Mapbender_users mailing list