Вопрос или проблема
После того как наш хостинг-провайдер перенес наш сайт на новый сервер Windows 2016, я столкнулся с интермиттирующей ошибкой:
PHP Notice: Undefined index: a:1:{s:3:”ssl”;b:1;} in E:\WebContent\site-name\wp-includes\class-requests.php on line 213
Мы видим это периодически на экране входа. Обновление браузера обычно устраняет ошибку. Остальная часть сайта, кажется, работает нормально.
Это происходит КАЖДЫЙ РАЗ, когда я пытаюсь обновить плагины или WordPress. Основываясь на прочтении многих постов, кажется, это проблема с TLS. Действительно, TLS 1.0 недоступен на новом сервере. TLS 1.0 был удален из-за проблем с безопасностью. Его заменил TLS 1.2. Но я не могу найти никаких предложений по поводу того, как исправить эту ошибку. Я уверен, что это ошибка конфигурации сервера или PHP.
Кажется, ошибка исчезла после того, как я включил openssl в php.ini.
Раскомментировал следующую строку, изменил с: ;extension=openssl
на extension=openssl
Ответ или решение
Проблема, с которой вы столкнулись, связана с появлением уведомления PHP об неопределённом индексе в файле class-requests.php на строке 213. Это происходит из-за изменения конфигурации вашего сервера, в частности, отсутствия поддержки TLS 1.0. Давайте разберёмся в возможных причинах и решениях этой проблемы.
Причины и решение ошибки "Undefined index"
-
Обновление окружения сервера:
- При миграции сайта на новый сервер на базе Windows 2016 могли измениться настройки окружения, такие как поддержка протоколов безопасности. TLS 1.0 был отключён, как устаревший и небезопасный протокол. Это объясняет проблемы, связанные с SSL.
-
Необходимость включения OpenSSL:
- OpenSSL — это важный компонент для работы интерфейсов, использующих SSL/TLS. Ошибка, скорее всего, вызвана тем, что OpenSSL не был активирован в файле конфигурации PHP (php.ini), что приводит к проблемам с SSL-соединениями.
-
Шаги для решения:
-
Активация OpenSSL:
- Откройте файл php.ini и найдите строку
;extension=openssl
. - Убедитесь, что вы убрали точку с запятой в начале строки, чтобы получилось
extension=openssl
. - Сохраните изменения и перезапустите сервер, чтобы изменения вступили в силу.
- Откройте файл php.ini и найдите строку
-
Проверка поддержки TLS:
- Убедитесь, что ваш сервер поддерживает более современные протоколы TLS, например, TLS 1.2. Это обеспечит надежное шифрование данных.
-
Обновление PHP и серверного программного обеспечения:
- Убедитесь, что у вас установлены актуальные версии PHP и серверного программного обеспечения. Это может предотвратить потенциальные проблемы совместимости.
-
Диагностика через журналы PHP:
- Проверьте журналы ошибок PHP для получения более детальной информации об ошибках, которые могут происходить.
-
-
Заключение:
- Убедитесь, что все компоненты серверной инфраструктуры должным образом сконфигурированы. Включение OpenSSL должно устранить проблему неопределенного индекса, но обратите внимание на общую совместимость и поддержку современных технологий безопасности.
Это комплексное и профессиональное решение должно помочь вам устранить текущую проблему с обновлением плагинов и в целом улучшить взаимодействие вашего сайта с внешними API и сервисами через защищенные каналы связи.