it-swarm.com.de

Mcrypt-Erweiterung für installieren PHP auf OSX Mountain Lion

Ich entschuldige mich im Voraus für die möglichen n00b-Fragen. Ich versuche, die mcrypt-Erweiterung für PHP auf meinem OSX Mountain Lion-Computer zu installieren.

Die folgenden Schritte in terminal sind die, die ich bisher gemacht habe, um meine PHP -Installation durchzuführen

cd /path/to/downloaded/php-5.3.21/ext/mcrypt/
/usr/bin/phpize
./configure
cd /path/to/downloaded/php-5.3.21
./configure --with-config-file-path=/private/etc/php.ini --with-apxs2=/usr/sbin/apxs
make
Sudo make install

Das scheint gut zu funktionieren und installiert PHP 5.3.21 in Ordnung. Habe ich dann gemacht

Sudo nano /private/etc/php.ini

Und eingeschlossen

extension=mcrypt.so

Zusammen mit einem Apache-Neustart zeigt phpinfo () nicht, dass die mcrypt-Erweiterung geladen ist.

Ich habe dann versucht, das extension_dir in php.ini anzugeben, wieder ohne Erfolg. 

Ich habe getan

locate mcrypt.so
/opt/local/lib/php/extensions/no-debug-non-zts-20090626/mcrypt.so
/usr/local/Cellar/php53-mcrypt/5.3.18/mcrypt.so

Und versuchte beide Verzeichnisse als extension_dir, ohne Erfolg.

Ich habe auch folgendes versucht, nachdem ich viel gegoogelt habe

./configure --with-config-file-path=/private/etc/php.ini --with-apxs2=/usr/sbin/apxs --with-mcrypt

Was scheint OK zu funktionieren, aber dann bei "make" kehrt es zurück

ext/mcrypt/mcrypt.o: No such file or directory
ext/mcrypt/mcrypt_filter.o: No such file or directory

Wieder kein Erfolg.

Was mache ich falsch? Es scheint, als ob die physische Kompilierung von mcrypt.so nicht geschieht oder falsch kompiliert wird, da ich vermuten würde, dass eine andere mcrypt.so unter locate gefunden wird?

Jemand bitte helfen Ich habe Seiten auf Seiten von Google-Suchen ohne Erfolg durchgegangen!

39
user2023687

Ich neige dazu, Homebrew auf einem Mac zu verwenden. Es wird alles für Sie installieren und konfigurieren.
http://mxcl.github.com/homebrew/

Dann sollten Sie in der Lage sein, es mit brew install mcrypt php53-mcrypt zu installieren und es wird Just Work (tm) funktionieren. 

Sie können den 53 durch die von Ihnen verwendete Version von PHP ersetzen, z. B. php56-mcrypt oder php70-mcrypt. Wenn Sie sich nicht sicher sind, verwenden Sie brew search php.

Denken Sie auch daran, wenn Sie den eingebauten Mac PHP verwenden, der in /usr/bin installiert ist, können Sie sehen, welchen PHP-Code Sie mit which php am Terminal verwenden, und der Pfad wird zurückgegeben.

77
David Yell

Ich habe das gerade auf Mountain Lion durchgemacht. Homebrew blockierte libiconv, was seiner Meinung nach vermisst wurde, aber eigentlich auf dem neuesten Stand war. Nach einer Stunde des Versuchens, libiconv zu erkennen, gab ich es auf und installierte es auf die alte Art und Weise, was fünf Minuten dauerte ...

(download your php version)
$ wget http://www.php.net/get/php-5.3.21.tar.gz/from/a/mirror
$ tar -xvzf php-5.3.21.tar.gz
$ cd php-5.3.21/ext/mcrypt
$ phpize
$ ./configure
$ make
$ make test
$ Sudo make install 

mcrypt.so ist jetzt in Ihrem PHP ext-Verzeichnis (in meinem Fall /usr/lib/php/extensions/no-debug-non-zts-20090626/), jetzt müssen Sie die php.ini als Modul hinzufügen

$ vi /etc/php.ini
$ (insert) extension=mcrypt.so
$ Sudo apachectl restart

Fertig - kein Aufguss nötig HTH jemand.

50
ckm

Php -mcrypt ohne die Verwendung von port oder brew installieren

Hinweis: Diese Anweisungen sind lang, weil sie gründlich sein sollen. Der Vorgang ist eigentlich recht unkompliziert. Wenn Sie ein -Optimist sind, können Sie zur bauen, um die mcrypt-Erweiterung aufzubauen) Abschnitt, aber Sie können die Fehler, die ich gemacht habe, sehr gut sehen und mir sagen, dass autoconf und libmcrypt zuerst installiert werden müssen.

Ich habe dies gerade bei einer Neuinstallation von OSX 10.9 durchlaufen. Die Lösung, die für mich funktionierte, war sehr nahe an der von ckm - Ich schließe ihre Schritte ebenso wie meine eigenen vollständig ein, zur Vollständigkeit. Mein Hauptziel (außer "mit mcrypt") war es, die Installation so auszuführen, dass das System insgesamt am wenigsten beeinträchtigt wird. Das bedeutet, Dinge manuell auszuführen (keine port, keine brew)

Um Dinge manuell auszuführen, benötigen Sie zunächst einige Abhängigkeiten: eine für das Erstellen von PHP - Modulen und eine andere für mcrypt. Dies sind autoconf und libmcrypt, von denen Sie beide möglicherweise bereits haben, aber keine davon wird eine Neuinstallation von OSX 10.9 haben.

autoconf

Autoconf (mangels einer besseren Beschreibung) wird verwendet, um nicht ziemlich unterschiedlichen, aber immer noch sehr unterschiedlichen Systemen mitzuteilen, wie Dinge kompiliert werden sollen. Es erlaubt Ihnen, die gleichen grundlegenden Befehle zum Erstellen von Modulen unter Linux zu verwenden, wie Sie es beispielsweise unter OSX trotz unterschiedlicher Dateisystemhierarchien usw. tun würden. Ich habe die von Ares auf StackOverflow beschriebene Methode verwendet Ich werde mich hier zur Vollständigkeit reproduzieren. Dieser ist sehr einfach:

$ mkdir -p ~/mcrypt/dependencies/autoconf
$ cd ~/mcrypt/dependencies/autoconf
$ curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-latest.tar.gz
$ tar xzf autoconf-latest.tar.gz
$ cd autoconf-*/
$ ./configure --prefix=/usr/local
$ make
$ Sudo make install

Überprüfen Sie als Nächstes die Installation, indem Sie Folgendes ausführen:

$ which autoconf

die sollte /usr/local/bin/autoconf zurückgeben

libmcrypt

Als Nächstes benötigen Sie libmcrypt, um den Kern der Erweiterung mcrypt anzugeben (die Erweiterung selbst ist eine Bereitstellung einer PHP - Schnittstelle in dieser Bibliothek). Die Methode, die ich verwendete, basierte auf der hier beschriebenen hier , aber ich habe versucht, die Dinge so gut wie möglich zu vereinfachen:

Laden Sie zunächst die libmcrypt-Quelle herunter, die unter SourceForge verfügbar ist und ab dem Zeitpunkt dieses Schreibens verfügbar ist, insbesondere unter:

http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2/download

Sie müssen durch die standardmäßigen SourceForge-Hoops springen, um den Download-Link zu erhalten. Sobald Sie ihn jedoch haben, können Sie ihn an etwas wie das folgende weitergeben:

$ mkdir -p ~/mcrypt/dependencies/libmcrypt
$ cd ~/mcrypt/dependencies/libmcrypt
$ curl -L -o libmcrypt.tar.bz2 '<SourceForge direct link URL>'
$ tar xjf libmcrypt.tar.bz2
$ cd libmcrypt-*/
$ ./configure
$ make
$ Sudo make install

Die einzige Möglichkeit, zu überprüfen, ob dies funktioniert hat, ist über den Schritt ./configure für die Erweiterung mcrypt selbst (unten).

erstellen der Erweiterung mcrypt

Dies ist unser eigentliches Ziel. Hoffentlich ist der kurze Einstieg in die Hölle der Abhängigkeit jetzt vorbei.

Zuerst müssen wir den Quellcode für die Erweiterung mcrypt erhalten. Dies ist am leichtesten im Quellcode für PHP verfügbar. Also: Ermitteln Sie, welche Version des Quellcodes PHP Sie benötigen.

$ php --version # to get your PHP version

wenn Sie Glück haben, können Sie Ihre aktuelle Version von den Hauptspiegeln herunterladen. Wenn ja, können Sie Folgendes eingeben:

$ mkdir -p ~/mcrypt/php
$ cd ~/mcrypt/php
$ curl -L -o php-5.4.17.tar.bz2 http://www.php.net/get/php-5.4.17.tar.bz2/from/a/mirror

Leider war meine aktuelle Version (in diesem Fall 5.4.17) nicht verfügbar. Daher musste ich die alternativen/historischen Links unter http://downloads.php.net/stas/ verwenden (auch eine offizielle PHP Download-Site). Für diese können Sie Folgendes verwenden:

$ mkdir -p ~/mcrypt/php
$ cd ~/mcrypt/php
$ curl -LO http://downloads.php.net/stas/php-5.4.17.tar.bz2

Wieder basierend auf Ihrer aktuellen Version.

Sobald Sie es (und alle Abhängigkeiten von oben) haben, können Sie den Hauptprozess der eigentlichen Erstellung/Installation des Moduls erreichen.

$ cd ~/mcrypt/php
$ tar xjf php-*.tar.bz2
$ cd php-*/ext/mcrypt
$ phpize
$ ./configure # this is the step which fails without the above dependencies
$ make
$ make test
$ Sudo make install

Theoretisch befindet sich mcrypt.so jetzt im Erweiterungsverzeichnis von PHP. Als Nächstes müssen wir PHP darüber informieren.

konfigurieren der mcrypt-Erweiterung

Ihre php.ini-Datei muss aufgefordert werden, mcrypt zu laden. In OSX 10.9 enthält es standardmäßig mcrypt-spezifische Konfigurationsinformationen, aktiviert mcrypt jedoch nicht, es sei denn, Sie teilen dies mit.

Die php.ini-Datei ist standardmäßig nicht vorhanden. Die Datei /private/etc/php.ini.default listet stattdessen die Standardkonfiguration auf und kann als gute Vorlage für die Erstellung des "True" php.ini verwendet werden, sofern noch nicht vorhanden.

Um festzustellen, ob php.ini bereits existiert, führen Sie Folgendes aus:

$ ls /private/etc/php.ini

Wenn ein Ergebnis vorliegt, ist es bereits vorhanden, und Sie sollten den nächsten Befehl überspringen.

Führen Sie zum Erstellen der php.ini-Datei Folgendes aus:

$ Sudo cp /private/etc/php.ini.default /private/etc/php.ini

Als nächstes müssen Sie die Zeile hinzufügen:

extension=mcrypt.so

Irgendwo in der Datei. Ich würde empfehlen, die Datei nach ;extension= zu durchsuchen und unmittelbar vor dem ersten Auftreten hinzuzufügen.

Danach ist die Installation und Konfiguration abgeschlossen. Sie können überprüfen, ob dies funktioniert hat, indem Sie Folgendes ausführen:

php -m | grep mcrypt

Welche sollte "mcrypt" ausgeben und sonst nichts.

Wenn Sie PHP auf Apaches httpd zurückgreifen, müssen Sie es erneut starten, bevor Sie die Änderungen im Web feststellen. Sie können dies über:

$ Sudo apachectl restart

Und du bist fertig.

38
Will Palmer

Warum erhalten Sie diesen Fehler?

PHP beschwert sich, wenn eine der Dateien wie mcrypt.so mit der Syntax extension="mcrypt.so" enthalten ist, die Datei sich jedoch nicht im extension_dir-Pfad befindet (verwenden Sie <?php phpinfo(); ?> oder php -i, um dies zu überprüfen).

Außerdem erfahren Sie, welche php.ini-Konfigurationsdatei geladen wird, damit Sie wissen, woher die Einstellungen kommen. Wenn Sie die Homebrew-Version verwenden, wird es höchstwahrscheinlich so etwas wie /usr/local/etc/php/5.4/php.ini sein.

Notieren Sie sich den Teil, der so etwas wie "Scanne dieses Verzeichnis für zusätzliche INI-Dateien" besagt, da dies bedeutet, dass Sie einen Platz für Ihre eigene Datei haben, wie tweaks.ini, der nach der Hauptkonfigurationsdatei geladen wird kann Änderungen vornehmen und einfach mithalten. Denken Sie auch daran, dass alle Dateien in diesem Verzeichnis in alphabetischer Reihenfolge geladen werden. Wenn Sie also adjustments.ini mit mcrypt-Direktiven aufgerufen haben und ein mcrypt.ini-Code vorhanden ist, werden Ihre Einstellungen höchstwahrscheinlich überschrieben.

Eine Alternative zur Angabe von extension="mcrypt.so" besteht darin, den vollständigen Pfad zur mcrypt.so-Datei anzugeben. Die andere Option besteht darin, die Einstellung extension_dir zu bearbeiten.

Was hat bei mir funktioniert?

Auf Mavericks musste ich auch nicht machen. Ich habe eine Neuinstallation von homebrew durchgeführt und dann den Josegonzalez-Tap hinzugefügt:

brew tap josegonzalez/homebrew-php

(Mein anderer Laptop lief mit Mountain Lion und verwendete in diesem Setup auch Homebrew.)

Nachdem Sie auf DIESES FANTASTISCHE REPO getippt haben, können Sie php und mcrypt folgendermaßen installieren:

brew install php54 php54-mcrypt

Was ist, wenn dies nicht funktioniert (und warum sollte ich trotzdem Homebrew verwenden?)

Ich würde dringend empfehlen, diese Route auszuprobieren, bevor Sie sie herunterladen und aus dem Quellcode erstellen. Es ist nicht schwer aus der Quelle zu bauen - aber ich möchte das nicht beibehalten. Es ist einer der Gründe, homebrew zu verwenden - es ist ein Paket-Manager (mit einer riesigen Community).

Das Projekt homebrew ist sehr in der Entwicklung und - wenn Sie Probleme haben, empfehle ich Ihnen, die Problemseite auszuprobieren. 

Ja, Sie können es also aus dem Quellcode erstellen und das scheint jetzt eine gute Option zu sein, wenn Sie möchten, dass mcrypt funktioniert, aber Sie hassen sich vielleicht selbst dafür, dies später zu tun ...

Wenn Sie php54 nicht verwenden möchten, gibt es auch den Zweig php53. Sie haben beim Repo einige Anweisungen, wie sie beide verwenden bzw. zwischen ihnen wechseln können.

Wenn Sie mit Homebrew noch nicht vertraut sind, sollten Sie wissen, dass Sie mit brew search php54 herausfinden, was sonst noch verfügbar ist.

php54                php54-lzf          php54-snappy        
php54-amqp           php54-mailparse    php54-solr          
php54-apc            php54-mcrypt       php54-ssh2          
php54-apcu           php54-memcache     php54-stats         
php54-boxwood        php54-memcached    php54-svm           
php54-chdb           php54-midgard2     php54-tidy          
php54-couchbase      php54-mongo        php54-timezonedb    
php54-dbase          php54-msgpack      php54-tokyotyrant   
php54-ev             php54-mysqlnd_ms   php54-twig          
php54-gearman        php54-oauth        php54-uploadprogress
php54-geoip          php54-opcache      php54-uuid          
php54-gmagick        php54-parsekit     php54-varnish       
php54-graphdat       php54-pcntl        php54-wbxml         
php54-http           php54-pdflib       php54-xcache        
php54-igbinary       php54-phalcon      php54-xdebug        
php54-imagick        php54-proctitle    php54-xhgui         
php54-inclued        php54-pspell       php54-xhp           
php54-intl           php54-pthreads     php54-xhprof        
php54-ioncubeloader  php54-raphf        php54-xmldiff       
php54-jsmin          php54-redis        php54-yac           
php54-judy           php54-riak         php54-yaf           
php54-leveldb        php54-runkit       php54-yaml          
php54-libevent       php54-scrypt       php54-yaz           
php54-libvirt

TLDR

  • Sie sollten homebrew verwenden, um mcrypt zu installieren, sofern dies möglich ist
  • Wenn Sie Fehler erhalten, liegt dies wahrscheinlich daran, dass Ihre Konfigurationsdatei (en) fehlerhaft sind. Überprüfen Sie den extension_dir-Pfad und finden Sie heraus, wo sich die mcrypt.so-Datei befindet, und prüfen Sie, ob eine Abweichung vorliegt (oder geben Sie den vollständigen Pfad an).
10
cwd

Für mich auf Yosemite

$ brew install mcrypt php56-mcrypt

starte den Computer neu

hat den Trick gemacht.

8
Sinan Eldem

Solution with brew funktionierte nur nach folgendem: In Ihrer php.ini

nano /private/etc/php.ini

füge diese Zeile hinzu:

extension="/usr/local/Cellar/php53-mcrypt/5.3.26/mcrypt.so"

Warnung! Legen Sie die korrekte PHP -Version fest.

5
Turtletrail

Ich würde empfehlen, alles über Homebrew zu installieren, wenn Sie die Option haben. Ich ging eine Zeit lang in Kreisen, aber die Installation von PHP 5.x via brew und die erforderlichen Module funktionierten sehr gut. Ich arbeitete mit PHP 5.4 und nutzte dies, um anfangs loszulegen:

https://github.com/josegonzalez/homebrew-php

und installierte dann die zusätzlichen Module mit:

brew install php54-redis
brew install php54-xdebug
brew install php54-mcrypt

...

4
sinewave

Eine weitere Möglichkeit für diejenigen, die OS X so sauber wie möglich halten möchten, ist Vagrant [1], um eine PHP-Entwicklungsumgebung zu definieren. Vagrant kann VirtualBox [2] im Headless-Modus (~ 3% der CPU auf meinem 13-Zoll-MacBook Pro 2009) verwenden, um eine virtuelle Maschine mit dem Webserver und PHP und allen anderen auszuführen.

Um die Vagabundumgebung auf einfache Weise zu erstellen, können Sie dieses großartige Tool verwenden https://puphpet.com/

  1. http://www.vagrantup.com/
  2. https://www.virtualbox.org/
3
Davide Vernizzi

Ich würde ein Shell-Skript erstellen, um mcrypt-Modul für PHP 5.3 ohne Homebrew zu installieren.

Die Skripts installieren bei Bedarf php autoconf und kompilieren das Modul für Ihre PHP-Version.

Der Link ist hier: https://Gist.github.com/lucasgameiro/8730619

Vielen Dank

Nichts hat funktioniert und schließlich wurde es mit der Ressource @ Here und Here ; Denken Sie daran, dass für OSX Mavericks (10.9) PHP 5.4.17 oder Stable PHP 5.4.22 source zum Kompilieren von mcrypt verwendet werden soll. Php Source 5.4.22 hier

1
star18bit

Brew-Base-Lösung für mich gearbeitet

  1. Installieren Sie diese Pakete

    $ brew install brew installieren mcrypt php54-mcrypt

  2. Kopieren Sie die Standarddatei php.ini.default in php.ini

    $ Sudo cp /private/etc/php.ini.default /private/etc/php.ini

  3. Fügen Sie diese Zeile zum Abschnitt der php.ini-Dateierweiterung hinzu. Überprüfen Sie den Erweiterungspfad mit dem Installationspfad auf Ihrem Computer

    extension = "/ usr/local/Cellar/php54-mcrypt/5.3.26/mcrypt.so"

  4. Starten Sie Ihren Apache-Server neu

    $ Apache neu starten

1
sushilprj

Das habe ich gemacht:

$ wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download
$ tar xzvf libmcrypt-2.5.8.tar.gz
$ ./configure
$ make
$ Sudo make install

$ brew install autoconf

$ wget file:///Users/rmatikolai/Downloads/php-5.4.24.tar.bz2
$ tar xjvf php-5.4.24.tar.bz2
$ cd php-5.4.24/ext/mcrypt
$ phpize
$ ./configure # this is the step which fails without the above dependencies
$ make
$ make test
$ Sudo make install


$ Sudo cp /private/etc/php.ini.default /private/etc/php.ini
$ Sudo vi /private/etc/php.ini

Als nächstes müssen Sie die Zeile hinzufügen:

extension=mcrypt.so

$ Sudo apachectl restart
1

mycrypt.o und mcrypt_filter.o befinden sich in den ext/.libs des von PHP heruntergeladenen Verzeichnisses. Kopieren Sie die Dateien einfach nach ext/mcrypt und führen Sie dann erneut make && make install aus.

0
Tim Nong

Mit den letzten Änderungen in Brew (deprecation of homebrew/php) installieren Sie jetzt php mit mcrypt mit den folgenden.

brew install [email protected] -with-mcrypt=mcrypt

Möglicherweise müssen Sie vorherige Installationen von PHP deinstallieren

0
james.c.funk

Nachdem ich brew install mcrypt php ausgeführt hatte, musste ich php-mcrypt über pecl installieren:

pecl install mcrypt-1.0.1

Zum Zeitpunkt des Schreibens hat mcrypt keine stabile pecl-Version, 1.0.1 ist die aktuelle Version für PHP 7.2 und 7.3, und brew install php installiert PHP 7.2.

0
curiosity26