Доступ к веб-сервисам Exchange с помощью PHP и cURL

Здравствуйте,

В настоящее время я пишу клиент для доступа к серверу Microsoft Exchange и чтения контактов, встреч и т.д. с него.

В результате многодневных поисков я смог подключиться к EWS через Soap-клиент PHP и пользовательскую обертку HTTPS Stream. Этот сайт очень помог мне на этом этапе.

Все прекрасно работало на моей машине Windows 7 с использованием XAMPP

Теперь я загрузил свой проект на машину для разработки Debian 6.0 Squeeze, которая имеет точно такую же конфигурацию, как и моя машина Windows в отношении веб-сервера, настроек php, настроек mysql и др. но он больше не работает

Машина debian может разрешить и пинговать сервер exchange без проблем

Я нашел проблему в том, что cURL не может получить WSDL файл EWS

Он всегда получает пустой ответ и код состояния 401 (Unauthorized)

Учетные данные я использую правильные, те же самые учетные данные работают на моей машине windows

Я извлек неисправный кусок кода и попробовал запустить его отдельно, это выглядит так:

    echo "Trying to get https://".$cfg[ 'Exchange.Server' ]."/EWS/Services.wsdl
"; $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 '
';
    $response = curl_exec( $curl );
    $info = curl_getinfo( $curl );

    var_dump( $info );
    var_dump( $response );

    curl_close( $curl );

В результате я получаю упомянутый код состояния 401 и пустой ответ. Когда я вызываю тот же url в браузере или с тем же кодом на моей машине windows, я получаю нужный мне WSDL файл

На самом деле я даже не могу сказать, является ли это проблемой на базе linux или я делаю что-то неправильно в какой-то момент, я борюсь с этим уже 2 дня.

Есть ли кто-то, кто может найти мою ошибку или сказать мне причину, почему это не работает?

Я могу предоставить любую другую необходимую информацию по запросу

12
задан DarkDevine 5 October 2011 в 16:11
поделиться