L'installation de php-mcrypt
sans l'utilisation d' port
ou brew
Remarque: ces instructions sont longues parce qu'ils ont l'intention d'être approfondie. Le processus est en fait assez simple. Si vous êtes un
optimiste, vous pouvez passer directement à la construction de l'extension mcrypt
l'article, mais vous pouvez très bien voir les erreurs que j'ai fait, en me disant de me
installez autoconf
et libmcrypt
première.
J'ai juste passé par sur une nouvelle installation de OSX 10.9. La solution qui a fonctionné pour moi a été très proche de celle de ckm - je suis notamment leurs démarches ainsi que mon propre dans son intégralité, à des fins d'exhaustivité. Mon objectif principal (autres que les "ayant mcrypt
") a été pour effectuer l'installation dans un chemin qui a laissé le moins d'impact possible sur l'ensemble du système. Que signifie faire les choses manuellement (pas de port
, n brew
)
Pour faire les choses manuellement, vous aurez d'abord besoin d'un couple de dépendances: un pour construire des modules PHP, et un autre pour mcrypt
précisément. Ce sont des autoconf
et libmcrypt
, soit de ce qui vous a peut-être déjà, mais ni d'où vous aurez une nouvelle installation de OSX 10.9.
autoconf
Autoconf (par manque d'un meilleur description) est utilisé pour dire " pas tout à fait disparates, mais encore très différents, des systèmes de comment compiler les choses. Il vous permet d'utiliser le même ensemble de commandes de base pour construire des modules sur Linux comme vous le feriez sur OSX, par exemple, en dépit de leurs différents fichiers système de hiérarchies, etc. J'ai utilisé la méthode décrite par Ares sur StackOverflow, je vais reproduire ici par souci d'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 cours d'exécution:
$ which autoconf
qui doit renvoyer /usr/local/bin/autoconf
libmcrypt
Ensuite, vous aurez besoin d' libmcrypt
, utilisés pour fournir les entrailles de l' mcrypt
extension (extension étant elle-même une disposition 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:
Tout d'abord, téléchargez l' libmcrypt
de la source, disponible à partir de SourceForge, et disponibles au moment d'écrire ces lignes, 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 passer par le biais de la norme SourceForge cerceaux pour obtenir le vrai lien de téléchargement, mais une fois que vous l'avez, vous pouvez passer à quelque chose comme ceci:
$ mkdir -p ~/mcrypt/dependencies/libmcrypt
$ cd ~/mcrypt/dependencies/libmcrypt
$ curl -o curl -o libmcrypt.tar.bz2 '<SourceForge direct link URL>'
$ tar xjf libmcrypt.tar.bz2
$ cd libmcrypt-*/
$ ./configure
$ make
$ sudo make install
La seule façon que je connaisse pour vérifier que cela a fonctionné est par l'intermédiaire de l' ./configure
étape pour l' mcrypt
extension de lui-même (ci-dessous)
la construction de l'extension mcrypt
C'est notre objectif premier. J'espère que le bref passage dans la dépendance de l'enfer est fini maintenant.
Tout d'abord, nous allons avoir besoin d'obtenir le code source pour l' mcrypt
extension. C'est la plus facilement disponible enterré dans le code source de PHP. Donc: déterminer quelle version du code source PHP dont vous avez besoin.
$ php --version # to get your PHP version
maintenant, si vous êtes chanceux, votre version sera disponible pour téléchargement à partir de la principale miroirs. Si elle l'est, vous pouvez écrire 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, j'ai donc besoin d'utiliser les solutions de rechange/liens historiques au http://downloads.php.net/stas/ (aussi un officiel de 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, à partir de ci-dessus), vous pouvez obtenir le processus principal de la 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 dossier d'extension PHP. Ensuite, nous devons le dire à PHP à ce sujet.
la configuration de l'extension mcrypt
Votre php.ini
le fichier doit être dit de charger mcrypt
. Par défaut dans OS x 10.9, il a réellement mcrypt
-les informations de configuration spécifiques, mais il ne fait pas les activer mcrypt
sauf si vous lui dites.
L' php.ini
le fichier n'est pas, par défaut, existent. Au lieu de cela, le fichier /private/etc/php.ini.default
les listes la configuration par défaut, et peut être utilisé comme un bon modèle pour la création de la "vraie" php.ini
, si elle n'existe pas déjà.
Pour déterminer si php.ini
existe déjà, exécutez:
$ ls /private/etc/php.ini
Si il y a un résultat, il existe déjà, et vous devez passer à la prochaine commande.
Pour créer l' php.ini
le fichier, 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 recommande la recherche le fichier pour ;extension=
, et en l'ajoutant immédiatement avant la première occurrence.
Une fois que ceci est fait, l'installation et la configuration est terminée. Vous pouvez vérifier qu'il a travaillé en exécutant:
php -m | grep mcrypt
Qui devrait de sortie "mcrypt
", et rien d'autre.
Si votre utilisation de PHP s'appuie sur Apache httpd
, vous devez redémarrer l'ordinateur avant de vous remarquerez les changements sur le web. Vous pouvez le faire via:
$ sudo apachectl restart
Et vous avez terminé.