Протокол https не поддерживается или отключен в libcurl
Я использую Authorize.net в своем приложении (его в OSCOMMERCE), когда пользователь, осуществляющий платеж, возвращает пустой ответ. Я отладил и обнаружил, что он возвращает эту ошибку:
Протокол https не поддерживается или отключен в libcurl
Я посылаю URL-адрес пробера, начинающийся с https, в котором нет места https://secure.authorize.net/gateway/transact.dll
Мое приложение на сервере виртуального хостинга. Я сомневаюсь, что это проблема на стороне сервера или проблема программирования?
3 ответа
Создайте скрипт с именем info.php и в него положите <?php phpinfo(); ?>
, Сохраните его где-нибудь на своем сайте, чтобы вы могли получить к нему доступ из браузера.
Найдите раздел curl и проверьте, какие протоколы поддерживаются. Если https
не указан, значит, cURL не был создан с поддержкой SSL, и вы не можете использовать https.
Вы также можете посмотреть в самом первом разделе Registered PHP Streams
и посмотреть, если https
в списке. Если это так, то вы можете отступить, чтобы использовать функции сокета PHP или функции, такие как file_get_contents()
или же fopen
с контекстом.
Поскольку вы упоминаете, что находитесь на общем хосте, попросите ваш хост перекомпилировать PHP, чтобы и PHP, и curl создавались с поддержкой OpenSSL, чтобы вы могли использовать шифрование, в противном случае вам нужно будет найти другое решение.
У меня была эта проблема, и это было из-за места в URL:
' https://www.google.com/recaptcha/api/siteverify'
как видите, есть место перед https
Для тех, которые имеют поддержку https, но все еще получают ошибку, подобную приведенной ниже
[curl] 1: Protocol %20https not supported or disabled in libcurl [url] %20https://www.example.com/%20
Убедитесь, что URL действителен
- Попробуйте использовать базовый URL-адрес, например https://www.example.com/
- Проверьте свои URL и убедитесь, что в начале / конце URL не должно быть пробелов (как показано выше как%20)
- Проверьте, нет ли в вашем URL символов, которые могут нарушить запрос