Installer l'extension mcrypt pour PHP sur OSX Mountain Lion

toutes mes excuses à l'avance pour les questions n00b potentielles, j'essaie d'installer L'extension mcrypt pour PHP sur ma machine OSX Mountain Lion.

les étapes suivantes dans le terminal est ce que j'ai fait jusqu'à présent pour réaliser mon installation PHP""

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

Qui semble bien fonctionner et installe PHP 5.3.21 amende. J'ai ensuite fait

sudo nano /private/etc/php.ini

et inclus

extension=mcrypt.so

Avec Un Apache redémarrez, phpinfo () ne montre pas que l'extension mcrypt est chargée.

j'ai alors essayé de spécifier l'extension_dir à l'intérieur de php.ini, encore une fois sans succès.

j'ai fait

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

et a essayé les deux répertoires comme extension_dir, sans succès.

j'ai aussi essayé ce qui suit, après avoir beaucoup cherché sur Google

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

qui semble fonctionner bien, mais ensuite sur "faire", il retourne

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

encore une fois, pas de succès.

Qu'est-ce que je fais de mal? On dirait la compilation physique de mcrypt.ce n'est pas le cas, ou la compilation est incorrecte car je suspecterais qu'il y ait un autre mcrypt.donc trouvé sous localisez?

Quelqu'un peut nous aider? J'ai parcouru les pages sur les pages de Google searches sans succès!

39
demandé sur user2023687 2013-01-30 06:45:01

16 réponses

j'ai tendance à utiliser Homebrew sur Mac. Il installera et configurera toutes les choses pour vous.

http://mxcl.github.com/homebrew /

alors vous devriez être en mesure de l'installer avec brew install mcrypt php53-mcrypt et il ne fonctionnera (tm).

vous pouvez remplacer le 53 par N'importe quelle version de PHP que vous utilisez, comme php56-mcrypt ou php70-mcrypt . Si vous n'êtes pas sûr, utilisez brew search php .

rappelez-vous aussi que si vous utilisez le Mac PHP intégré, il est installé dans /usr/bin vous pouvez voir quel php vous utilisez avec which php au terminal et il retournera le chemin.

76
répondu David Yell 2016-10-05 08:28:54

je viens de traverser ça sur Mountain Lion. Homebrew bloqué sur libiconv qu'il pensait avoir disparu mais était en fait à jour. Après une heure à essayer de le faire reconnaître libiconv, j'ai abandonné et je l'ai installé à l'ancienne, ce qui a pris cinq minutes...

(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.il en est de même pour votre dir PHP exter ( /usr/lib/php/extensions/no-debug-non-zts-20090626/ dans mon cas), maintenant vous devez ajouter à php.ini comme un module

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

Fait - pas de brasser nécessaire. HTH quelqu'un.

50
répondu ckm 2015-09-12 19:54:28

installation de php - mcrypt sans l'utilisation de port ou brew

Note: ces instructions sont longues parce qu'elles visent à être approfondies. Le processus est en fait assez simple. Si vous êtes un optimist, vous pouvez passer à la construction de l'extension mcrypt section, mais vous pouvez très bien voir les erreurs que j'ai faites, me disant de installer autoconf et libmcrypt premier.

je viens de passer par ce sur une nouvelle installation de OSX 10.9. La solution qui a fonctionné pour moi était très proche de celle de ckm - je suis en incluant leurs étapes ainsi que la mienne dans son intégralité, pour l'exhaustivité. Mon but principal (autre que "avoir mcrypt ") était d'effectuer l'installation d'une manière qui a laissé le moins d'impact sur le système dans son ensemble. Que signifie faire les choses manuellement (pas de port , pas de brew )

pour faire les choses manuellement, vous aurez d'abord besoin de quelques dépendances: une pour la construction de modules PHP, et une autre pour mcrypt spécifiquement. Ce sont autoconf et libmcrypt , l'un ou l'autre que vous pourriez avoir déjà, mais ni l'un ni l'autre que vous aurez sur une nouvelle installation de OSX 10.9.

autoconf

Autoconf (faute d'une meilleure description) est utilisé pour dire pas tout à fait disparate, mais encore très différent, les systèmes comment compiler les choses. Il vous permet d'utiliser le même ensemble de commandes de base pour construire des modules sur Linux que vous le feriez sur OSX, par exemple, malgré leurs différentes hiérarchies de système de fichiers, etc. J'ai utilisé la méthode décrite par Ares sur StackOverflow , que je vais reproduire ici pour l'exhaustivité. C'est très simple:

$ 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

ensuite, vérifier l'installation en exécutant:

$ which autoconf

qui doit retourner /usr/local/bin/autoconf

libmcrypt

ensuite, vous aurez besoin de libmcrypt , utilisé pour fournir les tripes de l'extension mcrypt (l'extension elle-même étant une provision D'une interface PHP dans cette bibliothèque). La méthode que j'ai utilisée était basée sur celle décrite ici , mais j'ai essayé de simplifier les choses du mieux que je peux:

First, télécharger la source libmcrypt , disponible à partir de SourceForge , et disponible au moment de la rédaction du présent document, plus précisément à:

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

vous aurez besoin de sauter à travers les cerceaux Standard SourceForge pour obtenir le lien de téléchargement réel, mais une fois que vous l'avez, vous pouvez le passer à quelque chose comme ceci:

$ 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

le seul moyen que je connaisse pour vérifier que cela a fonctionné est l'étape ./configure pour l'extension mcrypt elle-même (ci-dessous)

construction de l'extension mcrypt

C'est notre but. Espérons que le bref passage dans l'enfer de la dépendance est terminé maintenant.

tout d'abord, nous allons avoir besoin du code source pour l'extension mcrypt . C'est la plus facilement disponible enterré dans le code source pour tout PHP. Alors: déterminez quelle version du code source PHP vous avez besoin.

$ php --version # to get your PHP version

maintenant, si vous êtes chanceux, votre version actuelle sera disponible pour téléchargement à partir des miroirs principaux. Si c'est le cas, vous pouvez taper quelque chose comme:

$ 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

malheureusement, ma version actuelle (5.4.17, dans ce cas) n'était pas disponible, donc j'ai dû utiliser les liens alternatifs/historiques à http://downloads.php.net/stas / (également un site de téléchargement PHP officiel). Pour ceux-ci, vous pouvez utiliser quelque chose comme:

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

à nouveau, basé sur votre version actuelle.

une fois que vous l'avez (et toutes les dépendances ci-dessus), vous pouvez vous rendre au processus principal de construction/installation du module.

$ 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

en théorie, mcrypt.so est maintenant dans votre répertoire D'extension PHP. Ensuite, nous devons le dire PHP à ce sujet.

configurer l'extension mcrypt

votre fichier php.ini doit être chargé mcrypt . Par défaut dans OSX 10.9, il a en fait des informations de configuration spécifiques à mcrypt , mais il n'active pas réellement mcrypt à moins que vous ne le lui demandiez.

le fichier php.ini n'existe pas par défaut. Au lieu de cela, le fichier /private/etc/php.ini.default liste la configuration par défaut, et peut être utilisé comme un bon modèle pour créer le" vrai " php.ini , si elle n'existe pas déjà.

pour déterminer si php.ini existe déjà, Lancez:

$ ls /private/etc/php.ini

S'il y a un résultat, il existe déjà, et vous devriez sauter la commande suivante.

pour créer le fichier php.ini , Lancez:

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

Ensuite, vous devez ajouter la ligne:

extension=mcrypt.so

quelque part dans le fichier. Je recommande de chercher dans le fichier ;extension= et de l'ajouter immédiatement avant le premier événement.

une fois que cela est fait, l'installation et la configuration sont terminées. Vous pouvez vérifier que cela a fonctionné en exécutant:

php -m | grep mcrypt

Qui devrait sortir " mcrypt ", et rien d'autre.

si votre utilisation de PHP repose sur le httpd D'Apache , vous devrez le redémarrer avant que vous remarquez les changements sur le web. Vous pouvez le faire via:

$ sudo apachectl restart

et c'est fini.

38
répondu Will Palmer 2017-05-23 12:18:16

pourquoi vous obtenez cette erreur

PHP se plaint si l'un des fichiers comme mcrypt.so est inclus en utilisant la syntaxe extension="mcrypt.so" mais le fichier n'est pas dans le chemin extension_dir (utilisez <?php phpinfo(); ?> ou php -i pour vérifier cela).

il vous indiquera également quel fichier de configuration php.ini est chargé afin que vous sachiez d'où viennent les paramètres. Il sera probablement quelque chose comme /usr/local/etc/php/5.4/php.ini si vous utilisez le homebrew version.

prenez note de la partie sous elle qui dit quelque chose comme" scanner ce dir pour plus .fichiers ini" parce que cela signifie qu'il vous donne un endroit pour mettre votre propre fichier, comme tweaks.ini qui est chargé après le fichier de configuration principal de sorte que vous pouvez faire des changements et suivre avec eux facilement. Rappelez-vous aussi que tous les fichiers de ce répertoire sont chargés dans l'ordre alphabétique, donc si vous avez un appelé adjustments.ini qui contient mcrypt directives , et il y a un mcrypt.ini , très probablement vos paramètres seront dépassés.

une alternative à la spécification extension="mcrypt.so" est de spécifier le chemin complet vers le fichier mcrypt.so . L'autre option est d'éditer le paramètre extension_dir .

ce qui a fonctionné pour moi

sur Mavericks Je n'ai pas eu à le faire non plus. J'ai fait une nouvelle installation de homebrew et j'ai ensuite ajouté le robinet josegonzalez en utilisant:

brew tap josegonzalez/homebrew-php

(mon autre ordinateur portable était running mountain Lion et utilisait également homebrew dans cette configuration.)

après avoir tapé ce super repo vous pouvez installer php et mcrypt en utilisant quelque chose comme:

brew install php54 php54-mcrypt

et si cela ne fonctionne pas (et pourquoi devrais-je utiliser homebrew de toute façon?)

je vous conseille vivement d'essayer cette route avant téléchargement et installation à partir des sources. Il n'est pas difficile à construire à partir de la source, mais je ne veux pas avoir à maintenir. C'est l'une des raisons d'utiliser homebrew en premier lieu - c'est un gestionnaire de paquets (avec une énorme communauté).

Il ya beaucoup de développement sur le projet homebrew et - si vous avez des problèmes, je vous suggérerais de vérifier leur questions page

donc oui vous pouvez le construire à partir source et qui pourrait sembler une bonne option si vous voulez juste mcrypt, mais il peut vous détester pour cela plus tard...

si vous ne voulez pas utiliser php54 il y a aussi la branche php53 . Ils ont quelques instructions au repo sur la façon de les utiliser tous les deux / passer entre eux.

si vous êtes nouveau à homebrew, vous devez savoir que vous vérifiez ce qui est disponible en utilisant brew search php54 , ce qui donne quelque chose comme:

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

  • vous devez utiliser homebrew pour installer mcrypt si possible
  • si vous avez des erreurs, c'est probablement parce que vos fichiers de configuration sont endommagés. Cochez le chemin extension_dir et déterminez où se trouve le fichier mcrypt.so et voyez s'il y a une divergence (ou spécifiez le chemin complet)
10
répondu cwd 2013-11-21 01:11:17

pour moi, sur Yosemite

$ brew install mcrypt php56-mcrypt

redémarrer l'ordinateur

a fait l'affaire.

8
répondu Sinan Eldem 2014-12-12 12:04:38

Solution avec brassage travaillé seulement après le suivant: dans votre php.ini

nano /private/etc/php.ini

ajouter cette ligne:

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

attention! Définir la version PHP correcte.

5
répondu Turtletrail 2013-09-08 15:19:17

je recommande d'installer tout via homebrew si vous avez l'option. J'ai tourné en rond pendant un moment, mais en installant php 5.x via brew et puis les modules nécessaires ont fonctionné un treat. Je travaillais avec php 5.4 et j'ai utilisé ceci pour commencer:

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

et ensuite installé les modules supplémentaires avec:

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

...

4
répondu sinewave 2013-05-23 15:21:32

une autre possibilité pour ceux qui veulent garder OS X aussi propre que possible, est d'utiliser vagrant [1] pour définir un environnement de développement php. Vagrant peut utiliser VirtualBox [2] en mode sans tête (~3% du CPU sur mon MacBook Pro de 13 pouces Mid 2009) pour exécuter une machine virtuelle avec le serveur web et php et tout.

pour créer facilement l'environnement Vagabond, vous pouvez utiliser ce grand outil https://puphpet.com /

  1. http://www.vagrantup.com /
  2. https://www.virtualbox.org /
3
répondu Davide Vernizzi 2013-07-23 09:27:54

je créerais un script shell pour installer le module mcrypt pour PHP 5.3 sans homebrew.

les scripts installent php autoconf si nécessaire et compilent le module pour votre version php.

le lien est ici: https://gist.github.com/lucasgameiro/8730619

Merci

2
répondu Lucas Blaschi Gameiro 2014-01-31 12:56:41

rien n'a fonctionné et l'a finalement obtenu en utilisant la ressource @ ici et ici ; rappelez-vous juste pour OSX Mavericks (10.9) devrait utiliser PHP 5.4.17 ou PHP 5.4.22 source Stable pour compiler mcrypt. Source Php 5.4.22 ici

1
répondu star18bit 2013-11-16 07:15:08

Brasser de la base de la solution a fonctionné pour moi

  1. installez ces paquets

    $ brew install brew install mcrypt php54-mcrypt

  2. Copier par défaut de php.ini.par défaut à php.ini

    $ sudo cp/private/etc / php.ini.défaut /private/etc/php.ini

  3. ajouter cette ligne à php.extension de fichier ini section - veuillez vérifier le chemin d'extension avec l'emplacement d'installation dans votre machine

    extension="/usr/local/Cave/php54-mcrypt/5.3.26/mcrypt.donc,"

  4. redémarrer votre serveur apache

    $ apache restart

1
répondu sushilprj 2014-08-29 07:59:42

C'est ce que j'ai fait:

$ 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

Ensuite, vous devez ajouter la ligne:

extension=mcrypt.so

$ sudo apachectl restart
1
répondu Roozbeh Zabihollahi 2014-12-29 23:12:11

mycrypt.o et mcrypt_filter.o sont dans le ext/.libs de votre répertoire php téléchargé. Il suffit de copier les fichiers vers ext/mcrypt, puis d'exécuter make && make install à nouveau.

0
répondu Tim Nong 2013-09-07 06:49:18

avec des changements récents dans brew (deprecation of homebrew/php) vous installez maintenant php avec mcrypt avec ce qui suit.

brew install php@5.6 -with-mcrypt=mcrypt

vous pourriez avoir à désinstaller les installations précédentes de php

0
répondu james.c.funk 2018-04-26 15:52:31

donc après avoir lancé brew install mcrypt php , j'ai dû installer php-mcrypt via pecl:

pecl install mcrypt-1.0.1

au moment de l'écriture, mcrypt n'a pas de version pecl stable, 1.0.1 étant la version actuelle pour php 7.2 et 7.3, et brew install php installera php 7.2.

0
répondu curiosity26 2018-07-05 19:17:28

sudo apt-get install php5-mcrypt

ln-s/etc/php5/mods-available / mcrypt.ini / etc/php5/fpm / conf.d / mcrypt.ini

service php5-fpm restart

service NGINX restart

-4
répondu user4116497_kiik 2014-10-08 04:05:24