Toutes mes excuses pour les éventuelles questions sur n00b, j’essaie d’installer l’extension mcrypt pour PHP sur ma machine OSX Mountain Lion.
Les étapes suivantes dans terminal sont ce que j’ai fait jusqu’à présent pour réaliser mon installation de 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
Ce qui semble bien fonctionner et installe PHP 5.3.21 bien. J'ai ensuite fait
Sudo nano /private/etc/php.ini
Et inclus
extension=mcrypt.so
Avec un redémarrage Apache, phpinfo () n'indique pas que l'extension mcrypt est chargée.
J'ai ensuite essayé de spécifier le répertoire extension_dir dans le fichier php.ini, toujours 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 essayé les deux répertoires comme extension_dir, sans succès.
J'ai aussi essayé ce qui suit, après beaucoup de recherches sur Google
./configure --with-config-file-path=/private/etc/php.ini --with-apxs2=/usr/sbin/apxs --with-mcrypt
Ce qui semble fonctionner correctement, mais ensuite "make", 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 mal? Il semble que la compilation physique de mcrypt.so ne se produise pas ou que la compilation est incorrecte, car je soupçonnerais qu’il existe un autre fichier mcrypt.so situé sous localiser?
Quelqu'un s'il vous plaît aider? J'ai parcouru des pages sur des pages de recherches Google sans succès!
J'ai tendance à utiliser Homebrew sur Mac. Il va installer et configurer tout le matériel pour vous.
http://mxcl.github.com/homebrew/
Ensuite, vous devriez pouvoir l'installer avec brew install mcrypt php53-mcrypt
et ça fonctionnera Just Work (tm).
Vous pouvez remplacer le 53
par la version de PHP que vous utilisez, telle que php56-mcrypt
ou php70-mcrypt
. Si vous n'êtes pas sûr, utilisez brew search php
.
Rappelez-vous également que si vous utilisez le Mac intégré PHP installé dans /usr/bin
, vous pouvez voir quel php vous utilisez avec which php
sur le terminal et il renverra le chemin.
Je viens de traverser cela sur Mountain Lion. Homebrew a bloqué sur libiconv ce qui, à son avis, faisait défaut, mais était en fait à jour. Après une heure d’essais de le faire reconnaître libiconv, j’ai abandonné et l’installé à l’ancienne, ce qui prenait 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.so est maintenant dans votre répertoire PHP ext (/usr/lib/php/extensions/no-debug-non-zts-20090626/
dans mon cas), vous devez maintenant ajouter à php.ini un module
$ vi /etc/php.ini
$ (insert) extension=mcrypt.so
$ Sudo apachectl restart
Fait - aucune infusion n'est nécessaire. HTH quelqu'un.
mcrypt
sans utiliser port
ou brew
Remarque: ces instructions sont longues car elles ont l'intention d'être approfondies. Le processus est en réalité assez simple. Si vous êtes un optimiste .__, vous pouvez passer directement au qui construit l'extension mcrypt section, mais vous pouvez très bien voir les erreurs que j’ai faites en me disant d’installer installer
autoconf
etlibmcrypt
en premier.} _
Je viens de passer à travers cela lors d'une nouvelle installation d'OSX 10.9. La solution qui a fonctionné pour moi était très proche de celle de ckm - j'inclus leurs étapes ainsi que les miennes dans leur intégralité, par souci d'exhaustivité. Mon objectif principal (autre que "ayant mcrypt
") était d’effectuer l’installation de manière à laisser le moins d’impact possible sur le système dans son ensemble. Cela signifie que vous devez faire les choses manuellement (pas de port
, pas de brew
)
Pour faire les choses manuellement, vous aurez d’abord besoin de deux dépendances: une pour construire PHP modules, et une autre pour mcrypt
en particulier. Il s’agit de autoconf
et libmcrypt
, que vous avez peut-être déjà, mais que vous n’aurez pas non plus lors d’une nouvelle installation d’OSX 10.9.
Autoconf (faute d'une meilleure description) est utilisé pour indiquer aux systèmes peu disparates, mais toujours très différents, comment compiler des choses. Il vous permet d'utiliser le même ensemble de commandes de base pour construire des modules sous Linux que sous OSX, par exemple, malgré leurs hiérarchies de système de fichiers différentes, etc. J'ai utilisé la méthode décrite par Ares sur StackOverflow , qui Je vais reproduire ici pour être complet. Celui-ci 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érifiez l’installation en lançant:
$ which autoconf
qui devrait retourner /usr/local/bin/autoconf
Ensuite, vous aurez besoin de libmcrypt
, utilisé pour fournir les entrailles de l’extension mcrypt
(l’extension elle-même étant la fourniture 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:
Commencez par télécharger la source libmcrypt
, disponible sur SourceForge , et disponible au moment de la rédaction de cet article, plus précisément à l’adresse suivante:
http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2/download
Vous devrez parcourir les étapes standard de SourceForge pour obtenir le lien de téléchargement réel, mais une fois que vous l'avez, vous pouvez le transmettre à 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 via l'étape ./configure
pour l'extension mcrypt
elle-même (ci-dessous)
C'est notre objectif actuel. Espérons que le bref passage dans l'enfer de la dépendance est terminé.
Premièrement, nous allons devoir obtenir le code source pour l'extension mcrypt
. Ceci est le plus facilement disponible, enfoui dans le code source de PHP. Donc: déterminez quelle version du code source PHP dont vous avez besoin.
$ php --version # to get your PHP version
maintenant, si vous avez de la chance, votre version actuelle sera disponible au 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, je devais donc utiliser les liens alternatifs/historiques à l’adresse http://downloads.php.net/stas/ (également un officiel PHP site de téléchargement). 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
Encore une fois, en fonction de votre version actuelle.
Une fois que vous l'avez (et toutes les dépendances, d'en haut), vous pouvez accéder 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 PHP extension. Ensuite, nous devons en parler PHP.
Votre fichier php.ini
doit être chargé de charger mcrypt
. Par défaut, sous OSX 10.9, il contient en fait des informations de configuration spécifiques à mcrypt
, mais il n'active pas mcrypt
à moins que vous ne le lui indiquiez.
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 bon modèle pour créer le "vrai" php.ini
, s'il n'existe pas déjà.
Pour déterminer si php.ini
existe déjà, exécutez:
$ ls /private/etc/php.ini
S'il existe un résultat, il existe déjà et vous devez ignorer la commande suivante.
Pour créer le fichier php.ini
, exécutez:
$ 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 recommanderais de rechercher le fichier ;extension=
et de l'ajouter immédiatement avant la première occurrence.
Une fois que cela est fait, l'installation et la configuration est terminée. Vous pouvez vérifier que cela a fonctionné en lançant:
php -m | grep mcrypt
Ce qui devrait générer "mcrypt
", et rien d’autre.
Si votre utilisation de PHP repose sur la httpd
d'Apache, vous devrez le redémarrer avant de remarquer les modifications sur le Web. Vous pouvez le faire via:
$ Sudo apachectl restart
Et tu as fini.
PHP se plaint si l'un des fichiers tels que mcrypt.so
est inclus en utilisant la syntaxe extension="mcrypt.so"
mais que le fichier ne se trouve pas dans le chemin extension_dir
(utilisez <?php phpinfo(); ?>
ou php -i
pour le vérifier).
Il vous indiquera également quel fichier de configuration php.ini
est chargé afin que vous sachiez d'où viennent les paramètres. Ce sera probablement quelque chose comme /usr/local/etc/php/5.4/php.ini
si vous utilisez la version homebrew.
Prenez note de la partie sous celle-ci qui dit quelque chose comme "Recherchez dans ce répertoire des fichiers .ini supplémentaires", car cela vous donne la possibilité de placer votre propre fichier, tel que tweaks.ini
, chargé après le fichier de configuration principal afin peut faire des changements et les suivre facilement. N'oubliez pas non plus que tous les fichiers de ce répertoire sont chargés dans l'ordre alphabétique. Par conséquent, si vous en avez un appelé adjustments.ini
qui contient les directives mcrypt
et qu'il existe un mcrypt.ini
, vos paramètres seront probablement remplacés.
Une alternative à la spécification de extension="mcrypt.so"
consiste à spécifier le chemin complet du fichier mcrypt.so
. L'autre option consiste à modifier le paramètre extension_dir
.
Sur Mavericks, je n'avais pas à le faire non plus. J'ai fait une nouvelle installation de homebrew
, puis j'ai ajouté le robinet josegonzalez en utilisant:
brew tap josegonzalez/homebrew-php
(Mon autre ordinateur portable fonctionnait sous Mountain Lion et utilisait également l'homebrew dans cette configuration.)
Après avoir appuyé sur ce repo génial, vous pouvez installer php
et mcrypt
en utilisant quelque chose comme:
brew install php54 php54-mcrypt
Je conseillerais vivement d’essayer cet itinéraire avant de le télécharger et de le construire à partir des sources. Ce n’est pas difficile de construire à partir de la source - mais je ne veux pas avoir à le maintenir. C'est l'une des raisons d'utiliser homebrew
en premier lieu - c'est un gestionnaire de paquets (avec une communauté énorme).
Il y a beaucoup de développement sur le projet homebrew
et - si vous rencontrez des problèmes, je vous conseillerais de consulter leur page de problèmes
Alors oui, vous pouvez le construire à partir des sources et cela peut sembler une bonne option pour le moment si vous voulez juste que mcrypt fonctionne mais que vous vous détestiez pour le faire plus tard ...
Si vous ne voulez pas utiliser php54
, il existe également une branche php53
. Ils ont quelques instructions sur le repo sur la façon de les utiliser tous les deux/basculer entre eux.
Si vous êtes nouveau sur homebrew, sachez que vous vérifiez ce qui est disponible en utilisant brew search php54
, 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
homebrew
pour installer mcrypt
si possible.extension_dir
et déterminez où se trouve le fichier mcrypt.so
et voyez s'il y a une différence (ou spécifiez le chemin complet)Pour moi, sur Yosemite
$ brew install mcrypt php56-mcrypt
redémarrer l'ordinateur
a fait le tour.
La solution avec infusion ne fonctionnait qu'après ce qui suit: Dans votre php.ini
nano /private/etc/php.ini
ajoutez cette ligne:
extension="/usr/local/Cellar/php53-mcrypt/5.3.26/mcrypt.so"
Attention! Définissez la bonne version PHP.
Je recommanderais d'installer tout via homebrew si vous avez l'option. J'ai tourné en rond pendant un moment, mais l'installation de PHP 5.x via une infusion puis les modules nécessaires ont fonctionné à merveille. Je travaillais avec php 5.4 et l'ai utilisé pour commencer:
https://github.com/josegonzalez/homebrew-php
puis installé les modules supplémentaires avec:
brew install php54-redis
brew install php54-xdebug
brew install php54-mcrypt
...
Une autre possibilité pour ceux qui souhaitent garder OS X aussi propre que possible consiste à utiliser vagant [1] pour définir un environnement de développement php. Vagrant peut utiliser VirtualBox [2] en mode sans tête (~ 3% de l'UC sur mon MacBook Pro 13 pouces, Mid 2009) pour exécuter une machine virtuelle avec le serveur Web et php, etc.
Pour créer facilement l’environnement errant, vous pouvez utiliser ce formidable 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 a finalement fonctionné en utilisant la ressource @ Ici et Ici ; N'oubliez pas que pour OSX, Mavericks (10.9) doit utiliser la source PHP 5.4.17 ou la source Stable PHP 5.4.22 pour compiler mcrypt. Php Source 5.4.22 ici
La solution de base Brew a fonctionné pour moi
Installez ces paquets
$ brasser installer brasser installer mcrypt php54-mcrypt
Copiez php.ini.default par défaut dans php.ini
$ Sudo cp /private/etc/php.ini.default /private/etc/php.ini
Ajoutez cette ligne à la section d’extension de fichier php.ini - veuillez vérifier le chemin d’extension avec l’emplacement d’installation sur votre ordinateur
extension = "/ usr/local/Cellar/php54-mcrypt/5.3.26/mcrypt.so"
Redémarrez votre serveur Apache
$ Redémarrage Apache
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 les extensions/.libs de votre répertoire php téléchargé. Copiez simplement les fichiers sur ext/mcrypt, puis exécutez à nouveau make && make install.
Avec les récents changements dans Brew (obsolète de homebrew/php), vous installez maintenant php avec mcrypt avec les éléments suivants.
brew install [email protected] -with-mcrypt=mcrypt
Vous devrez peut-être désinstaller les installations précédentes de php
Donc, après avoir exécuté brew install mcrypt php
, j'ai dû installer php-mcrypt via pecl:
pecl install mcrypt-1.0.1
Au moment de la rédaction, mcrypt n’a pas de version stable pecl, la version 1.0.1 étant la version actuelle pour php 7.2 et 7.3, et brew install php
installera php 7.2.