#php #macos #openssl #apple-m1 #sqlsrv
Вопрос:
Я только что купил M1 Mac mini под управлением Big Sur 11.6, я установил PHP 7.3, msodbcsql17, mssql-инструменты, sqlsrv и pdo_sqlsrv.
Но когда я пытаюсь подключиться с помощью sqlsrv, возникает следующая ошибка [Microsoft][Драйвер ODBC 17 для SQL Server]Поставщик SSL: [Не удалось загрузить библиотеку OpenSSL, убедитесь, что установлен OpenSSL 1.0 или 1.1]
Я установил openssl@1.1 через brew, и мой профиль содержит
export PATH="/opt/homebrew/opt/openssl@1.1/bin:$PATH"
Похоже, что PHP использует правильную версию, при печати echo OPENSSL_VERSION_TEXT написано OpenSSL 1.1.1 l 24 августа 2021 года
Я не уверен, что еще можно попробовать, чтобы это сработало?
Ответ №1:
У меня была та же ошибка «Библиотека OpenSSL не может быть загружена» сегодня (на Intel Mac) при попытке подключиться через isql. (Также, используя python, как ошибка pyodbc «08001»: Драйвер ODBC 17 для клиента SQL Server не удается установить соединение).
По — видимому, по состоянию на начало октября 2021 года последний драйвер ODBC SQL Server не совместим с последней версией 3 OpenSSL.
См.: https://github.com/microsoft/homebrew-mssql-release/issues/59.
Диагностика: Проверьте, какая версия OpenSSL вызывается через:
ls -l /usr/local/opt/openssl/lib
Вы должны увидеть запись для OpenSSL 1.0 или 1.1 (например, libssl.dylib -> libssl.1.1.dylib); когда у меня возникла эта проблема, она показала libssl.dylib ->> libssl.3.dylib.
Обходной путь состоит в том, чтобы просто создать символическую ссылку. (Используйте «информация о напитке openssl@1.1» чтобы проверить имя файла/путь.) Например:
ln -s /usr/local/Cellar/openssl@1.1/1.1.1l_1 /usr/local/opt/openssl
Комментарии:
1. Я получил ln: /usr/локальный/opt/openssl: Такого файла или каталога нет