Using Omeka through a proxy server

I already posted this same question over at the Omeka Dev Google Group. Sorry for the
asking the same thing in two places.

Hi everyone!

I am a French systems librarian and I’m currently working on a digital
library project using Omeka.
Omeka is really impressive and our project is progressing well, there
is a just few things to fix before an official launch. (Our omeka site
is accessible at http://bibnum.univ-rennes2.fr).

However, i solicit help from the dev community because I encounter
some troubles. Indeed, the web server hosting our Omeka site is
located behind a proxy server, So, I'm wondering if it's possible to
configure omeka to communicate through the proxy (maybe with Zend and
Zend_Http_Client ?).

I'm very interested in using the Contribution and Geolocalisation
plugins, but i need to pass the request through the proxy to call to
the Google and ReCaptcha web services/APIs.

I found a temporary fix for the plugin OAI-PMH-Harvester passing the
proxy settings in file_get_content (in libraries > OaipmhHarvester >
xml.php), like this :


$opts = array (
'http' => array (
'proxy' => 'tcp://proxy.server.net: port'
'request_fulluri' => true
)
'https' => array (
'proxy' => 'tcp://proxy.server.net: port'
'request_fulluri' => true
)
);
/ / Create the transaction context
$ctx = stream_context_create ($opts);
/ / Data Recovery
$requestContent = file_get_contents ($requestUrl, false, $ctx);

For the other plugins, I am completely running out of ideas :-(
Any clue what's the issue could be ? Thanks for any help !

Best,
Julien

(Please forgive my poor English...)

Hi,

To go through a proxy, you can add this in Apache httpd.conf, .htaccess or in php.ini:

    php_value     auto_prepend_file       "/my/path/to/prepend_proxy.php"

Then, in the specified file, add this:


<?php
    stream_context_set_default(
        array(
            'http' => array(
                'proxy' => 'tcp://proxy.example.com:8080',
                'request_fulluri' => true,
            ),
            'https' => array(
                'proxy' => 'ssl://proxy.example.com:8080',
                'request_fulluri' => true,
            ),
        )
    );

Sincerely,

Daniel Berthereau
Infodoc & Knowledge management