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!
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.
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.
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
etlibmcrypt
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.
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 installermcrypt
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 fichiermcrypt.so
et voyez s'il y a une divergence (ou spécifiez le chemin complet)
pour moi, sur Yosemite
$ brew install mcrypt php56-mcrypt
redémarrer l'ordinateur
a fait l'affaire.
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.
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
...
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 /
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
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
Brasser de la base de la solution a fonctionné pour moi
-
installez ces paquets
$ brew install brew install mcrypt php54-mcrypt
-
Copier par défaut de php.ini.par défaut à php.ini
$ sudo cp/private/etc / php.ini.défaut /private/etc/php.ini
-
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,"
-
redémarrer votre serveur apache
$ apache restart
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
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.
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
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.
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