安装 php-mcrypt
不使用port
orbrew
注意:这些说明很长,因为它们打算彻底。这个过程实际上相当简单。如果你是一个乐观主义者,你可以跳到构建 mcrypt 扩展
部分,但你很可能会看到我所做的错误,告诉我先安装autoconf
和安装libmcrypt
。
我刚刚在全新安装的 OSX 10.9 上完成了此操作。对我有用的解决方案与ckm的解决方案非常接近——为了完整起见,我将他们的步骤以及我自己的步骤都包括在内。我的主要目标(除了“拥有”)是以对整个系统影响最小的方式执行安装。这意味着手动做事(不,不)mcrypt
port
brew
要手动执行操作,您首先需要几个依赖项:一个用于构建 PHP 模块,另一个用于mcrypt
专门的。这些是autoconf
and libmcrypt
,您可能已经拥有其中任何一个,但在全新安装的 OSX 10.9 中您将不会拥有这两个。
自动配置
Autoconf(由于缺乏更好的描述)用于告诉不完全不同但仍然非常不同的系统如何编译东西。它允许您使用与在 OSX 上相同的一组基本命令在 Linux 上构建模块,例如,尽管它们具有不同的文件系统层次结构等。我使用了 Ares 在 StackOverflow 上描述的方法,我将在此处重现为了完整性。这个非常简单:
$ 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
接下来,通过运行验证安装:
$ which autoconf
应该返回/usr/local/bin/autoconf
libmcrypt
接下来,您将需要libmcrypt
, 用于提供mcrypt
扩展的内容(扩展本身就是为这个库提供的 PHP 接口)。我使用的方法基于此处描述的方法,但我已尽力简化事情:
首先,下载libmcrypt
源代码,可从SourceForge获得,并且在撰写本文时可用,具体而言,位于:
http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2/download
你需要跳过标准的 SourceForge 箍来获得真正的下载链接,但是一旦你有了它,你可以把它传递给这样的东西:
$ 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
我知道验证这是否有效的唯一方法是通过扩展本身的./configure
步骤(如下)mcrypt
构建 mcrypt 扩展
这是我们的实际目标。希望短暂的依赖地狱现在已经结束。
首先,我们需要获取mcrypt
扩展的源代码。这是所有 PHP 源代码中最容易获得的。所以:确定你需要什么版本的 PHP 源代码。
$ php --version # to get your PHP version
现在,如果你幸运的话,你的当前版本将可以从主镜像下载。如果是,您可以键入以下内容:
$ 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
不幸的是,我当前的版本(在本例中为 5.4.17)不可用,所以我需要使用http://downloads.php.net/stas/(也是官方 PHP 下载站点)上的替代/历史链接。对于这些,您可以使用以下内容:
$ mkdir -p ~/mcrypt/php
$ cd ~/mcrypt/php
$ curl -LO http://downloads.php.net/stas/php-5.4.17.tar.bz2
同样,基于您当前的版本。
一旦你有了它,(以及上面的所有依赖项),你就可以进入实际构建/安装模块的主要过程。
$ 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
理论上,mcrypt.so
现在在您的 PHP 扩展目录中。接下来,我们需要告诉 PHP 这件事。
配置 mcrypt 扩展
您的php.ini
文件需要被告知加载mcrypt
. 默认情况下,在 OSX 10.9 中,它实际上具有特定的配置信息,但除非您告诉它,否则mcrypt
它实际上不会激活。mcrypt
默认情况下,该php.ini
文件不存在。相反,该文件/private/etc/php.ini.default
列出了默认配置,并且可以用作创建 "true" 的良好模板php.ini
(如果它尚不存在)。
要确定是否php.ini
已经存在,请运行:
$ ls /private/etc/php.ini
如果有结果,它已经存在,你应该跳过下一个命令。
要创建php.ini
文件,请运行:
$ sudo cp /private/etc/php.ini.default /private/etc/php.ini
接下来,您需要添加以下行:
extension=mcrypt.so
文件中的某处。我建议在文件中搜索;extension=
,并在第一次出现之前立即添加它。
一旦完成,安装和配置就完成了。您可以通过运行来验证这是否有效:
php -m | grep mcrypt
哪个应该输出“ mcrypt
”,没有别的。
如果您使用的 PHP 依赖于 Apache 的httpd
,您将需要重新启动它,然后才能注意到 Web 上的更改。您可以通过以下方式进行:
$ sudo apachectl restart
你完成了。