Home > Tipps & Tricks > Joomla! > Joomla!: Problem / Fehler mit Feed-Anzeige (mod_feed) und Proxy

Joomla!: Problem / Fehler mit Feed-Anzeige (mod_feed) und Proxy

Geschrieben von   admin on    Januar 12, 2013

Bei der Einrichtung eines Joomla! (2.5)-Moduls vom Typ "Feed-Anzeige" (mod_feed) kommt es zu einem Problem, sofern der Webserver über eine Proxy Verbindung nach außen, Richtung Internet, aufnehmen muss. So ist es auch mir passiert. Das Problem wird auch bei früheren Joomla!-Versionen bestanden haben.

Zunächst habe ich die Programierung des Joomla-Moduls untersucht, dabei festgestellt, dass es sich auf SimplePie stützt. Zumindest in der eingebundenen Version sieht dies wiederum keine Möglichkeit einer Proxyangabe vor. Und daher wohl auch nicht Joomla! Allerdings, ganz ehrlich gesagt, finde ich es für einen Kernbestandteil, der zu einem der meistgenutzten Open Source CMS gehört, relativ peinlich, dass keine Konfigurationsmöglichkeit vorgesehen ist, um die Situation zu berücksichtigen, dass der Webserver hinter einem Proxy steht. Das ist nun wirklich nichts außergewöhnliches.

Aber wie dem auch sei, ich konnte nach etwas Recherche einen Hinweis finden, wie man SimplePie patcht, damit es auch über einen Proxy funktioniert. SimplePie verwendet nämlich cURL (bzw. hier php_curl). Allerdings konnte ich nicht glauben, dass dies die einzige Möglichkeit ist.

Patchen nicht nötig, Umgebungsvariable reicht!

Es gibt da nämlich eine anscheinend nur selten erwähnte Möglichkeit:
cURL und auch php_curl werten eine Umgebungsvariable namens http_proxy aus. Und das reicht völlig aus.

Beispiele:

$ export http_proxy=http://server-ip:port/

Sofern Benutzername und Passwort benötigt werden geht dies auch:

$ export http_proxy=http://user:password@server-ip:port/

Für die Verwendung mit Apache:

SetEnv http_proxy http://server-ip:port/

Und für eine PHP FastCGI-Anwendung auf dem IIS ist bei den Umgebungsvariablen nur eine Variable http_proxy mit dem entsprechenden Wert einzurichten.

Das war's. Ein leider nicht sonderlich gut dokumentiertes Feature von php_curl. In der Dokumentation bei php.net habe ich nichts dazu gefunden. Geschweige denn bei joomla.org.

Update April 2015

Ab Joomla 3.3 wird die nun in der Joomla!-Konfiguration einstellbare Proxy-Konfiguration auch für mod_feed wirksam. Jedoch muss dazu in php.ini zwingend allow_url_fopen = Off eingestellt werden. Das liegt daran dass in der Joomla-Library-Klasse JFeedFactory curl nicht verwendet wird, sofern allow_url_fopen = On ist. Das oben beschriebene Setzen der Umgebungsvariablen http_proxy kann entfallen, ist evt. sogar wirkungslos.

Kommentare

Geschrieben von teccrow am
Hallo,
ich nutze Joomla 3.x im Intranet und habe eine Proxy für den Weg nach draußen. Wo muss ich bei Joomla den Eintrag "SetEnv http_proxy http://server-ip:port/" denn einfügen?
teccrow
Geschrieben von admin am
SetEnv lässt sich bei Apache auf allen diesen Ebenen einstellen (siehe http://httpd.apache.org/docs/2.2/mod/mod_env.html#setenv):
server config, virtual host, directory, .htaccess.

In PHP geht's auch per apache_setenv (http://php.net/manual/de/function.apache-setenv.php), aber vermutlich willst Du nicht in der index.php der Joomla-Installation rumfummeln wollen, o.ä.. Die Datei .htaccess im Stammverzeichnis der Joomla-Installation wirst Du evt. auch nicht anpacken wollen.

Wenn Du nicht weißt, wie man die Apache-Konfiguration auf Ebene Server, Virtual Host oder Verzeichnis anpasst, wird's dann schwierig. Du wirst nach kurzer Suche aber einiges über die Suchmaschine Deiner Wahl rauskriegen. Es ist von einer Linux-Distribution zur anderen jedenfalls etwas unterschiedlich, wo sich die passende Datei befindet.
Kommentar schreiben



(Ihre E-Mail-Adresse wird nicht angezeigt.)


Ungültiger Sicherheitscode

Bitte klicken Sie das Bild an, um einen neuen Sicherheitscode zu laden.