2015-10-03 12 views
7

Sto cercando di installare Mongo estensione PHP su OSX 10.11 ma il comando:io_stream.lo errore 1 durante l'installazione di PHP estensione

sudo pecl install mongo

dà il seguente errore:

... 
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 
+0

Hai guardato a installare OpenSSL così? – Filype

risposta

0

evp is high-level cryptographic functions.

Try to install development libraries:

Ubuntu: sudo apt-get install libssl-dev

CentOS: yum install openssl-devel

Fonte: Error while installing mongo driver for PHP on amazon linux

+1

Due cose dovrebbero essere menzionate qui ... 1) Sono su mac non ubuntu o centos e 2) openssl è già installato e abilitato ... –

+0

Sembra un problema molto simile a http://stackoverflow.com/questions/29262848/errore-while-installazione-mongo-driver-per-php-on-amazon-linux no? – Filype

8

È necessario disattivare il meccanismo senza radici di Mac OSX El Capitán:

  1. Boot con Cmd-R
  2. Apri terminale
  3. Tipo csrutil disable
  4. Reboot

Sul Mac, è necessario installare Xcode, e costruire il collegamento simbolico per l'OpenSSL è dotato di Xcode, cioè

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

vale a dire /usr/include/openssl punti alla libreria Xcode.

Costruisci la tua libreria phongo mongo.

Una volta fatto, si dovrebbe avere per abilitare la radici protezione di sicurezza:

  1. Boot con Cmd-R
  2. Apri terminale
  3. Tipo csrutil enable
  4. Reboot
+0

Questo mi ha sicuramente aiutato ad ottenere il 'sudo pecl install mongo' finito sull'ultimo OSX (avevo già disabilitato rootless). +1 – jpaljasma

+0

Sono stato colpito qui per un giorno intero, e questo ha fatto il trucco .... thx –

14
  1. brew install openssl
  2. ln -s /usr/local/Cellar/openssl/1.0.2d_1/include/openssl /usr/local/include/openssl
+1

Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti da un autore, lascia un commento sotto il loro post - puoi sempre commentare i tuoi post, e una volta che hai [reputazione] sufficiente (http://stackoverflow.com/help/whats-reputation) essere in grado di [commentare qualsiasi post] (http://stackoverflow.com/help/privileges/comment). – Nullify

+0

@ 200OK mi permetta di chiarire: se hai già installato homebrew, non hai bisogno di fare casino con csrutil. poiché consente di modificare/usr/local. Penso che questo sia comune poiché la maggior parte di noi usa homebrew o macports ecc. Questa risposta è quella corretta senza riavviare o eseguire csrutil. (Ho provato con El-capitan 10.11.2, homebrew 0.9.5 per PHP7 per mongodb driver 1.2 per PHP7 e ovviamente con successo) – risyasin

+0

È possibile che sia installata sul sistema una versione diversa di openssl e quindi è necessario cambiare il percorso sul secondo comando. – sepehr

0

Sto usando OS X e ho una generazione personalizzata di OpenSSL in/usr/local/OpenSSL

così:

ln -s /usr/local/openssl/include/openssl /usr/local/include/openssl 
Problemi correlati