[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