Здравствуйте,
В настоящее время я пишу клиент для доступа к серверу Microsoft Exchange и считывания с него контактов, встреч и т. Д.
За несколько дней поиска я смог подключиться к EWS через PHP-клиент Soap и пользовательскую оболочку HTTPS Stream. Этот веб-сайт очень помог мне в этом.
На моем компьютере с Windows 7 все работало нормально, используя XAMPP
Теперь я загрузил свой проект на компьютер для разработки Debian 6.0 Squeeze, который имеет ту же конфигурацию, что и мой компьютер с Windows, в отношении веб-сервера, настроек php, настроек mysql и т. Д., Но он просто больше не будет работать
Машина Debian может без проблем разрешить и проверить связь с сервером Exchange
Я прибил реальную проблему до такой степени, что cURL не может получить WSDL-файл EWS
Он всегда получает пустой ответ и код состояния 401 (неавторизованный)
Учетные данные, которые я использую, правильные, те же учетные данные работают на моем компьютере с Windows
Я извлек неисправный кусок кода и попытался запустить его в автономном режиме, это выглядит так:
echo "Trying to get https://".$cfg[ 'Exchange.Server' ]."/EWS/Services.wsdl<br>";
$curl = curl_init( 'https://'.$cfg[ 'Exchange.Server' ].'/EWS/Services.wsdl' );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1 );
curl_setopt( $curl, CURLOPT_HTTPAUTH, CURLAUTH_NTLM );
curl_setopt( $curl, CURLOPT_USERPWD, $cfg[ 'Exchange.User' ].':'.$cfg[ 'Exchange.Password' ] );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, false );
echo '<pre>';
$response = curl_exec( $curl );
$info = curl_getinfo( $curl );
var_dump( $info );
var_dump( $response );
curl_close( $curl );
В результате я получаю упомянутый код состояния 401 и пустой ответ
Когда я вызываю тот же URL в моем браузере или с тем же кодом на моем компьютере с Windows, я получаю файл WSDL, который я хочу
На самом деле, я даже не могу сказать, если это проблема на основе Linux или если я что-то делаю не так, я борюсь с этим в течение 2 дней.
Есть ли кто-то, кто может найти мою ошибку или сказать мне причину, по которой она не работает?
Я могу предоставить любую дополнительную информацию по запросу