2015-10-03 7 views
7

Ich versuche Mongo PHP-Erweiterung auf OSX 10.11 aber den Befehl zu installieren:io_stream.lo Fehler 1 bei der Installation von PHP-Erweiterung

sudo pecl install mongo

gibt die folgenden Fehler:

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

Haben Sie in der Installation von OpenSSL auch geschaut? – Filype

Antwort

0

evp is high-level cryptographic functions.

Try to install development libraries:

Ubuntu: sudo apt-get install libssl-dev

CentOS: yum install openssl-devel

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

+1

Zwei Dinge sollten hier erwähnt werden ... 1) Ich bin auf Mac nicht ubuntu oder Centos und 2) openssl ist bereits installiert und aktiviert ... –

+0

Klingt wie ein sehr ähnliches Problem zu http://stackoverflow.com/questions/29262848/Fehler-während-Installation-Mongo-Treiber-für-PHP-on-Amazon-Linux Nein? – Filype

8

Sie müssen den Mac OSX El Capitán wurzellosen Mechanismus deaktivieren:

  1. Stiefel mit Cmd-R
  2. Open Terminal
  3. Typ csrutil disable
  4. Reboot

Auf dem Mac benötigen Sie Xcode zu installieren und den Symlink bauen für die openssl mit kommt Xcode, dh

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

dh /usr/include/openssl zeigt auf Xcode-Bibliothek.

Erstellen Sie Ihre Mongo-Php-Bibliothek.

Sobald es fertig ist, sollten Sie die wurzellos Sicherheitsschutz aktivieren müssen:

  1. Stiefel mit Cmd-R
  2. Open Terminal
  3. Typ csrutil enable
  4. Reboot
+0

Dies hat mir auf jeden Fall geholfen, den 'sudo pecl install mongo' auf dem neuesten OSX fertig zu bekommen (ich hatte bereits rootless deaktiviert). +1 – jpaljasma

+0

Ich wurde hier für einen ganzen Tag geschlagen, und das hat den Trick .... thx –

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

Dies liefert keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag - du kannst deine eigenen Beiträge jederzeit kommentieren, und sobald du genügend [Reputation] (http://stackoverflow.com/help/whats-reputation) hast, wirst du das tun in der Lage sein [jeden Beitrag kommentieren] (http://stackoverflow.com/help/privileges/comment). – Nullify

+0

@ 200OK lassen Sie mich klären: Wenn Sie bereits Homebrew installiert haben, müssen Sie nicht mit Csrutil versauen. da es/usr/local erlaubt, geändert zu werden. Ich denke, das ist üblich, da die meisten von uns Homebrew oder Macports usw. verwenden. Diese Antwort ist die richtige ohne Neustart oder Ausführen von csrutil. (Ich habe mit El-Capitan 10.11.2, Homebrew 0.9.5 für PHP7 für Mongodb-Treiber 1.2 für PHP7-Zweig und natürlich mit Erfolg getestet) – risyasin

+0

Es ist möglich, dass verschiedene Version von OpenSSL auf Ihrem System installiert ist und Sie daher ändern müssen der Pfad auf dem zweiten Befehl. – sepehr

0

I OS X benutzen und eine benutzerdefinierte Version von OpenSSL in/usr/local haben/openssl

so:

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