Как решить, 'настройте: ошибка: не Может найти OpenSSL <evp.h>'?

Очень счастливо почтовая программа MS-SQL действительно поддерживает Автора SMTP, таким образом, достаточно умно на самом деле войти в систему сервера SMTP прежде, чем отправить почту. Как почтовый администратор, это делает меня счастливым.

Единственный недостаток является регулярной старой почтовой перегрузкой, или если сервер генерирует столько предупреждений, что это так или иначе перегружает почтовую программу (вряд ли).

33
задан 13 September 2016 в 12:39
10 ответов

Та же проблема возникла в Ubuntu 12.04.1 LTS и была решена с помощью команды:

sudo apt-get install libcurl4-openssl-dev pkg -config

47
ответ дан 28 November 2019 в 19:53

Чтобы собрать php-5.3 на Debian wheezy, вам понадобится следующее, чтобы исправить эту ошибку.

apt-get install libssl-dev libsslcommon2-dev

Затем вам необходимо настроить следующие параметры:

./configure --with-libdir=/lib/x86_64-linux-gnu ...
16
ответ дан 28 November 2019 в 19:53

Для компиляции php-5.4.45 на debian 8.1 (Джесси) мне пришлось:

apt-get install libssl-dev

После этого я мог скомпилировать его, просто используя - with-openssl

9
ответ дан 28 November 2019 в 19:53

Предполагая, что у вас уже есть библиотеки OpenSSL и файлы заголовков (в системах rpm последние находятся в пакете xxxx-devel) ...

Проблема, похоже, возникает из-за того, как configure разрешает зависимости, которые распределены по файловой системе. Чтобы скомпилировать код, компилятор должен знать, где находятся заголовки. Чтобы связать код, компоновщик должен знать, где находятся библиотеки.

[colin@host]$ configure .... --with-openssl-dir=/usr/include/openssl ....
...
checking OpenSSL dir for FTP... /usr/include/openssl
checking for pkg-config... /usr/bin/pkg-config
configure: error: Cannot find OpenSSL's <evp.h>

[colin@host]$ find /usr/include -name evp.h
/usr/include/openssl/evp.h

В каталоге include есть включаемый файл, но pkg-config не работает, потому что библиотека находится , а не в / usr / include / openssl, его в / usr / lib

Повторный запуск configure с / usr в качестве каталога:

configure .... --with-openssl-dir=/usr ....
...
checking OpenSSL dir for FTP... /usr
checking for pkg-config... /usr/bin/pkg-config
checking for OpenSSL version... >= 0.9.6
checking for CRYPTO_free in -lcrypto... yes
...

Путь, переданный в качестве аргумента, ищется, чтобы найти соответствующие ресурсы.

12
ответ дан 28 November 2019 в 19:53

Другая причина, по которой ./ configure может не сработать, заключается в том, что у вас не установлен pkg-config , как в моем случай с PHP7 и Debian Jessie:

sudo apt-get install pkg-config
10
ответ дан 28 November 2019 в 19:53

Вам нужно помочь настроить выяснение, где искать файл evp.h, потому что по умолчанию он будет сканировать каталоги и добавлять к ним жестко заданные суффиксы, чтобы найти его. Я сохранил подробности на моей вики-странице для тех, кто хочет понять решение. Вот что у меня сработало:

root@audio-mon[10.10.10.82] ~/DOWNLOADS/php-5.5.23/ext/mysqlnd # PHP_OPENSSL_DIR="/usr /usr/lib/x86_64-linux-gnu"
root@audio-mon[10.10.10.82] ~/DOWNLOADS/php-5.5.23/ext/mysqlnd # ./configure --with-libdir=""
[...]
checking for DSA_get_default_method in -lssl... yes
checking for X509_free in -lcrypto... yes
checking for pkg-config... /usr/bin/pkg-config
checking for OpenSSL version... >= 0.9.6 #                     <------------------------------------- YES !
[...]
config.status: creating config.h
config.status: config.h is unchanged
root@audio-mon[10.10.10.82] ~/DOWNLOADS/php-5.5.23/ext/mysqlnd # 

YMMV (пути разные). Если это не сработало для вас , проверьте страницу вики , это поможет вам выяснить, какие пути ввести.

0
ответ дан 28 November 2019 в 19:53

הייתה לי אותה בעיה בפדורה 19 למרות שהתקנת OpenSSL.

הייתי צריך להתקין openssl-devel.i686 שמצאתי על ידי חיפוש כללי של כל החבילות הקשורות ל- ssl:

sudo yum search ssl
sudo yum install openssl-devel.i686

ואז רצתי להגדיר שוב את התצורה בהצלחה:

sudo ./configure --with-apxs2=/usr/bin/apxs --with-mysql --enable-mbstring --with-mysqli --with-openssl=/usr/
0
ответ дан 28 November 2019 в 19:53

Только мой отзыв: после решения этой проблемы с ssl из этого поста я полностью отказался от компиляции php 5.3, потому что он потерпел неудачу на расширениях zend dom посередине, я обнаружил какие-то патчи, и решил просто отбросить эту возню. Есть ubuntu 12.04, в котором все еще есть 5.3.10 php. Будьте осторожны, тогда php-fpm очищал переменные среды. Так что не удивляйтесь, если, например, вы не можете передать глобальные переменные из докера.

0
ответ дан 28 November 2019 в 19:53

Я исправил проблему, установив дополнительные библиотеки

sudo apt-get install -y autoconf g++ make openssl libssl-dev libcurl4-openssl-dev
sudo apt-get install -y libcurl4-openssl-dev pkg-config
sudo apt-get install -y libsasl2-dev
2
ответ дан 28 November 2019 в 19:53

На centos7 Установите openssl-devel yum install openssl-devel

1
ответ дан 28 November 2019 в 19:53

Теги

Похожие вопросы