io_stream.lo Грешка 1 при инсталиране на php разширение

Опитвам се да инсталирам разширение mongo php на OSX 10.11, но командата:

sudo pecl инсталирайте mongo

дава следната грешка:

...
In file included from /private/tmp/pear/install/mongo/io_stream.c:34:
/private/tmp/pear/install/mongo/contrib/php-ssl.h:33:10: fatal error: 'openssl/evp.h' file not found
#include <openssl/evp.h>
         ^
1 error generated.
make: *** [io_stream.lo] Error 1
ERROR: `make' failed

person King Julien    schedule 03.10.2015    source източник
comment
Мислили ли сте да инсталирате и openssl?   -  person Filype    schedule 03.10.2015


Отговори (5)


Трябва да деактивирате механизма без руутване на Mac OSX El Capitán:

  1. Стартирайте с Cmd-R
  2. Отворете терминала
  3. Тип csrutil disable
  4. Рестартирайте

На Mac трябва да инсталирате Xcode и да изградите символната връзка за openssl идва с Xcode, т.е.

cd /usr/include;
sudo ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-migrator/sdk/MacOSX.sdk/usr/include/openssl .

т.е. /usr/include/openssl сочи към Xcode библиотека.

Създайте вашата mongo php библиотека.

След като го направите, трябва да активирате защитата на сигурността без корен:

  1. Стартирайте с Cmd-R
  2. Отворете терминала
  3. Тип csrutil enable
  4. Рестартирайте
person Patrix    schedule 04.10.2015
comment
Това определено ми помогна да завърша sudo pecl install mongo на най-новата OSX (вече бях деактивирал rootless). +1 - person jpaljasma; 20.01.2016

evp е криптографска функция на високо ниво.

Опитайте да инсталирате библиотеки за разработка:

Ubuntu: sudo apt-get install libssl-dev

CentOS: yum инсталирайте openssl-devel

Източник: Грешка при инсталиране на mongo драйвер за PHP на amazon linux

person Filype    schedule 03.10.2015
comment
Тук трябва да се споменат две неща... 1) Аз съм на mac, а не на ubuntu или centos и 2) openssl вече е инсталиран и активиран... - person King Julien; 03.10.2015
comment
Звучи като много подобен проблем на stackoverflow.com/questions/29262848/ не? - person Filype; 03.10.2015

Използвам OS X и имам персонализирана компилация на openssl в /usr/local/openssl

so:

ln -s /usr/local/openssl/include/openssl /usr/local/include/openssl
person baychae    schedule 10.08.2016

Решението от Scott Wiersdorf изглежда работи за мен https://solitum.net/openssl-os-x-el-capitan-and-brew/

инсталирайте opnessl чрез brew

brew install openssl

Свържете openssl

$ cd /usr/local/include
$ ln -s ../opt/openssl/include/openssl
person ansarimofid    schedule 08.09.2016

person    schedule
comment
Това не дава отговор на въпроса. За да критикувате или поискате разяснение от автор, оставете коментар под неговата публикация - винаги можете да коментирате собствените си публикации и след като имате достатъчно репутация ще можете да коментирате всяка публикация. - person Nullify; 05.10.2015
comment
@200OK позволете ми да изясня: Ако вече сте инсталирали homebrew, не е нужно да се забърквате с csrutil. тъй като позволява /usr/local да бъде модифициран. Мисля, че това е често срещано, тъй като повечето от нас използват homebrew или macports и т.н. този отговор е правилният без рестартиране или стартиране на csrutil. (тествах с El-capitan 10.11.2, homebrew 0.9.5 за PHP7 за mongodb драйвер 1.2 за PHP7 клон и разбира се с успех) - person risyasin; 12.12.2015
comment
Възможно е друга версия на openssl да бъде инсталирана на вашата система и следователно трябва да промените пътя на втората команда. - person sepehr; 15.01.2016