Установка: 1. Сайт Joomla 1.5 на сервере LAMP (CentOS 5.2/Apache 2.2/PHP 5.2.9/mysql 5) 2. Добавлен модуль Joomla для конвертации валюты. Модуль использует Google Finance для конвертации валюты. 3. Стек LAMP находится во внутренней сети за прокси-сервером. Переменные среды сервера для http_proxy, прокси-сервера yum.conf настроены, ядро успешно обновлено. 4. phpinfo() ясно показывает, что curl установлен 5. модуль, упомянутый в «2.» позволяет 3 метода подключения к финансам Google: fread(), file_get_contents() и использование библиотек cURL. Поскольку ящик находится за прокси, должен работать только метод cURL-библиотек.
Проблема: в стеке WAMP метод библиотеки curl работает нормально. Однако в стеке ламп модуль не может связаться с Google Finance и выдает ошибку с указанием времени ожидания подключения. Вот код, чтобы было понятнее.
if (isset($_GET['process'])) {
$url = "http://finance.google.com/finance/converter?a={
$_GET['a']}&from={$_GET['from']}&to={$_GET['to']}";
$app->get_page($url);
$data = $app->process();
}
function get_page($url) {
if ($url!='') {
echo $url;
$ch = curl_init ();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, $this->binary);
$this->html = curl_exec($ch);
curl_close($ch);
}
}
Я даже пытался добавить curl_setopt($ch, CURLOPT_PROXY,'10.x.xx.xx:8080'); после curl_init() безрезультатно. Я скомпилировал apache с включенными libcurl и php, и мне нужно знать следующее: 1. Как указать php направлять исходящие запросы (потоки) через прокси? 2. Нужно ли настраивать cURL (libcurl) с именем прокси и портом? 3. Я отключил iptables, поэтому брандмауэр linux больше не фигурирует. Что еще нужно сделать, чтобы разрешить исходящие запросы? 4. Я настроил прокси так, чтобы мой стек LAMP был разблокирован для всего контента, cURL работает из командной строки, но не из php/apache. Что мне не хватает? Любые переменные среды? Какие-нибудь переключатели?
Спасибо заранее за ваше время.
Шринивас