当前位置: 首页 > 知识库问答 >
问题:

在OSX Mountain Lion上安装用于PHP的mcrypt扩展

诸龙野
2023-03-14

为可能出现的n00b问题提前道歉,我正在尝试在我的OSX Mountain Lion机器上安装用于PHP的mcrypt扩展。

下面的步骤在终端是我所做的到目前为止实现我的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

这似乎工作得很好,安装PHP 5.3.21罚款。我已经完成了

sudo nano /private/etc/php.ini

包括

extension=mcrypt.so

在Apache重新启动时,phpinfo()不会显示已加载mcrypt扩展。

然后,我尝试在php中指定扩展_dir。伊尼,又一次没有运气。

我已经做了

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

尝试了两个目录作为extension_dir,没有运气。

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

这似乎工作正常,但在“制作”时,它会返回

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

同样,没有成功。

我做错了什么?似乎mcrypt.so的物理编译没有发生,或者编译错误,因为我怀疑在定位下发现了另一个mcrypt.so?

有人请帮忙吗?我浏览了一页又一页的谷歌搜索,运气不好!

共有3个答案

施俊哲
2023-03-14

注意:这些说明很长,因为它们要彻底。这个过程实际上相当直接。如果你是一个乐观主义者,你可以跳到构建mcrypt扩展部分,但是你很可能会看到我所做的错误,告诉我先安装autoconflibmcrypt

我刚刚在OSX 10.9的新安装上经历了这一点。对我有效的解决方案非常接近ckm的解决方案——为了完整起见,我包括了他们的步骤和我自己的步骤。我的主要目标(除了拥有mcrypt之外)是以一种对整个系统影响最小的方式执行安装。那就意味着手动做事(没有port,没有brew

要手动操作,首先需要两个依赖项:一个用于构建PHP模块,另一个用于mcrypt。它们是autoconflibmcrypt,您可能已经安装了它们中的任何一个,但在新安装的OSX 10.9上都不会安装。

Autoconf(由于缺乏更好的描述)用于告诉不是完全不同但仍然非常不同的系统如何编译东西。它允许您在Linux上使用与在OSX上相同的一组基本命令来构建模块,例如,尽管它们的文件系统层次结构不同,等等。我在StackOverflow上使用了Ares描述的方法,为了完整性,我将在这里重复该方法。这一条非常直截了当:

$ 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,用于提供mcrypt扩展的核心内容(扩展本身是对该库的PHP接口的提供)。我使用的方法是基于这里描述的方法,但是我已经尽力简化了事情:

首先,下载从SourceForge获得的libmCrypt源代码,并在撰写本文时提供,具体而言,请访问:

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

您需要跳过标准的SourceForge hoops才能获得真正的下载链接,但一旦获得了该链接,您就可以将其传递给以下内容:

$ 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

据我所知,验证此功能是否有效的唯一方法是通过/为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。因此现在位于PHP扩展目录中。接下来,我们需要告诉PHP关于它的情况。

你的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

文件里的某个地方。我建议在文件中搜索;扩展名=,并在第一次出现之前立即添加它。

完成此操作后,安装和配置就完成了。您可以通过运行以下命令来验证此操作是否有效:

php -m | grep mcrypt

它应该输出"mcrypt",而不是其他。

如果您对PHP的使用依赖于Apache的nicpd,您需要重新启动它才能注意到Web上的更改。您可以通过以下方式这样做:

$ sudo apachectl restart

你完成了。

闾丘鸣
2023-03-14

我刚刚在《山狮》上看过这个。Homebrew封锁了libconv,它认为它不见了,但实际上是最新的。经过一个小时的尝试,让它识别libconv,我放弃了,并安装了它的旧时尚的方式,这花了所有五分钟...

(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现在在你的PHP extdir(/usr/lib/php/扩展/no-debug-non-zts-20090626/在我的情况下),现在你需要添加到php.ini作为一个模块

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

完成-无需酿造。有人。

劳和歌
2023-03-14

我倾向于在Mac上使用自制软件。它会为你安装和配置所有的东西
http://mxcl.github.com/homebrew/

然后您应该能够使用brew install mcrypt php53 mcrypt安装它,它就可以正常工作了(tm)。

您可以将53替换为您正在使用的任何版本的PHP,例如php56 mcryptphp70 mcrypt。如果不确定,请使用brew搜索php

还请记住,如果您使用的是内置Mac PHP,它将安装到/usr/bin中,您可以在终端上看到您使用的PHP与哪个PHP,它将返回路径。

 类似资料:
  • 本文向大家介绍Linux下PHP安装mcrypt扩展模块笔记,包括了Linux下PHP安装mcrypt扩展模块笔记的使用技巧和注意事项,需要的朋友参考一下 系统环境:centOS6.3 APACHE:httpd-2.4.2 PHP:php-5.3.21 一.安装mcrypt 1.下载Libmcrypt,mhash,mcrypt安装包 2 .先安装Libmcrypt 3.安装mhash 4.安装mc

  • 我已经看过很多这样的帖子,并且都看过了,但是我仍然无法运行SQLSRV扩展。你能帮我吗?我将在下面发布我所有的信息: Windows 7 64位 WampServer 2.2 32位 PHP 5.4.3 32位 Apache 2.2.22(分不清VC6还是VC9) MicrosoftSQLServer 2012本地客户端64位 我下载了SQLSRV30。exe。我将dll文件解压缩到C:\wamp

  • 问题内容: 我有一个带有Phalcon3和php 7的Docker容器。我正在尝试安装php扩展名Mcrypt,但不走运。 如果我对容器执行ssh并执行: 我得到以下内容: 有没有办法安装它? 问题答案: 让我们看一下php docker镜像的 官方手册 部分PHP核心扩展 例如,如果您想要一个带有iconv,mcrypt和gd扩展名的PHP- FPM映像,则可以继承您喜欢的基本映像,并编写自己的

  • 我使用Centos6。我想安装mcrypt。我尽量 它安装了。当我再试一次时,它说: 但在我的网页上: 而在phpinfo上则不是 我该怎么解决呢? 谢谢

  • 我在让OCI8在我的服务器安装上工作时遇到了特定的问题。 第一次设置: Win 2008服务器32位 ZendServer for PHP with Apache2.2 PHP版本5.3.14,其中没有php_oci8文件 没有安装甲骨文的东西 我需要能够连接到远程oracle数据库,所以我发现应该使用OCI8扩展。为了使OCI8正常工作,我还应该在服务器上至少需要Oracle Instant C

  • 我安装laravel通过作曲家,但当运行的网站它给一个错误 我也安装了php5-mcrypt,但错误仍然存在。