Я работаю над настройкой обработки кредитных карт и должен использовать обходной путь для 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 .. я пытался
- установка allow_url_fopen = on в редакторе конфигурации WHM PHP, но это не сработало.
- создание файла php.ini с allow_url_fopen = on в каталоге, где произошла ошибка, но это не сработало.
- добавленной 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
Источник: