File get contents https не работает

Я работаю над настройкой обработки кредитных карт и должен использовать обходной путь для CURL. Следующий код работал отлично, когда я использовал тестовый сервер (который не вызывал URL-адрес SSL), но теперь, когда я тестирую его на рабочем сервере с HTTPS, он не работает с сообщением об ошибке "не удалось открыть поток".

Попробуйте выполнить script, чтобы проверить наличие https-оболочки для ваших php-скриптов.

вывод должен быть чем-то вроде

Чтобы разрешить обертку https:

  • расширение php_openssl должно существовать и включаться
  • allow_url_fopen должен быть установлен на on

В файле php.ini вы должны добавить эти строки, если они не существуют:

Примечание. Это отключает проверку SSL, что означает предлагаемая безопасность по HTTPS теряется. Используйте этот код только для тестирования/локального развития, никогда в Интернете или других публичных сетей. Если этот код работает, это означает, что сертификат SSL не доверяют или не могут быть проверены, что вы должны изучить в качестве отдельный выпуск.

Это позволит вам получить контент с URL-адреса, является ли это HTTPS

У меня есть скрипт, который использует file_get_contents() получить ответ JSON с удаленного сервера.
в то время как file_get_contents() работает правильно на локальных файлах, но не работает с http или https, это дает мне следующую ошибку file_get_contents(): http:// wrapper is disabled in the server configuration by allow_url_fopen=0 in а также file_get_contents(https://api.domain.com/resolve.json?url=blablabla): failed to open stream: no suitable wrapper could be found .. это выделенный сервер, и у меня есть WHM .. я пытался

  1. установка allow_url_fopen = on в редакторе конфигурации WHM PHP, но это не сработало.
  2. создание файла php.ini с allow_url_fopen = on в каталоге, где произошла ошибка, но это не сработало.
  3. добавленной ini_set(‘allow_url_fopen’, ‘On’); до начала сценария PHP, но это не сработало.

Я знаю, что могу использовать вместо этого Curl, но я хочу знать, почему это не работает .. скрипт работает правильно на другом сервере и локальном хосте

Обновить :

это означает, что мои изменения php.ini не вступили в силу .. что я делаю не так?

Решение

Войдите на свой сервер через ssh и введите

в файле просто нажмите "ctrl + w" и введите "allow_url_fopen" и возврат, скорее всего, сначала вы придете к объяснению, поэтому повторите поиск несколько раз. Теперь вы можете изменить запись с

Нажмите "ctrl + x" и подтвердите сохранение файла с помощью "y" ,

Это перезапустит apache, чтобы можно было загрузить новую конфигурацию php.ini. После этих шагов вы сможете использовать file_get_contents внешне.

Если вы не можете найти свой файл php.ini, вы найдете путь к загруженному файлу php.ini в верхней части вашего файла. phpinfo()

Другие решения

Это позволит вам получить контент из URL, будь то HTTPS, не нужно менять в php ini.

Если у вас есть root-доступ, отредактируйте php.ini обычно находится по адресу /etc/php.ini ,

Если у вас нет root-прав, попробуйте добавить ini_set(‘allow_url_fopen’, ‘On’); или же ini_set(‘allow_url_fopen’, ‘1’); ,

Если ты не видишь php.ini попробуйте использовать phpinfo() в сценарии PHP, чтобы найти php.ini место нахождения.

Это лучший способ решить проблемы с веб-запросами.

есть файл get_data.php:

суть файла, отображает стили другого сайта, и отображает на ACE. На локалхосте всё хорошо отлично работает, на сайте отображает could not read page. Сайт на https:// Может есть идеи, помогите пожалуйста

Вот что отображается на моём php

Оцените статью
Много толка
Добавить комментарий