Я пытаюсь запустить приложение php с сервера Ubuntu 11.10.Это приложение прекрасно работает под Apache + PHP в Windows.У меня есть другие приложения, которые я могу просто скопировать и вставить между двумя ОС, и они работают на обеих.
Однако это приложение использует тонику библиотеки php (веб-сервисы RESTful) и делает нас модулем php cURL.Проблема в том, что я не получаю сообщение об ошибке, из-за которого невозможно найти проблему.
Я (должен) использовать проверку подлинности NTLM, и это делается с помощью модуля Aphen AuthenNTLM:
Order allow,deny
Allow from all
PerlAuthenHandler Apache2::AuthenNTLM
AuthType ntlm
AuthName "Protected Access"
require valid-user
PerlAddVar ntdomain "domainName server"
PerlSetVar defaultdomain domainName
PerlSetVar ntlmsemtimeout 2
PerlSetVar ntlmdebug 1
PerlSetVar splitdomainprefix 0
Все файлы, которые cURL должен извлечь, переопределяют аутентификацию AuthenNTLM:
order deny,allow
deny from all
allow from 127.0.0.1
Satisfy any
Поскольку эти файлы только cURL передаются с одного сервера, доступ может быть ограничен localhost.
Возможные проблемы:
NTLM-аутентификация не переопределяется для файлов, запрашиваемых через cURL (даже если AllowOverride All установлен)
curl работает по-разному в linux
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIE, $strCookie);
curl_setopt($ch, CURLOPT_URL, $baseUrl . $queryString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$html = curl_exec($ch);
curl_close($ch);
прочее?
Журнал Apache сообщает:
[ошибка] Плохой / отсутствует NTLM / Базовый заголовок авторизации для /myApp / webservice / local / viewList.php
Но этот каталог должен переопределять проверку подлинности NTLM
EDIT:
с использованием командной строки curl из окон для доступа к тому же ресурсу, который я получаю:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>406 Not Acceptable</title>
</head>
<body>
<h1>Not Acceptable</h1>
<p>An appropriate representation of the requested resource /myApp/webservice/myResource could not be found on this server.</p>
Available variants:
<ul>
<li><a href="myResource.php">myResource.php</a> , type application/x-httpd-php</li>
</ul>
<hr>
<address>Apache/2.2.20 (Ubuntu) Server at localhost Port 80</address>
</body>
</html>