我正在尝试使用 Homebrew 在 Mountain Lion 上的 php 5.4.11 中安装 mcrypt 支持,但遇到了无法解决的问题。
我已经在我的 Mac 上手动安装了 PHP 5.4.11。mcrypt 以前是使用 Homebrew 安装的。
当我加载 phpMyAdmin 时,它会告诉我未启用 mcrypt。
所以,搜索谷歌,我意识到不知何故,mcrypt 没有被加载,因为当我加载我的 phpinfo 文件时没有引用它。
@DavidYell 在回答另一个问题时,在 OSX Mountain Lion 上为 PHP 安装 mcrypt 扩展建议进行以下修复
brew install mcrypt php53-mcrypt
以下是我发出命令的结果:
$ brew install mcrypt php54-mcrypt
Error: mcrypt-2.5.8 already installed
==> Installing php54-mcrypt dependency: autoconf
==> Downloading http://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/autoconf/2.69
==> make install
/usr/local/Cellar/autoconf/2.69: 69 files, 2.0M, built in 29 seconds
==> Installing php54-mcrypt dependency: freetype
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/freetype-2.4.10.mountainlion.bottle.tar.gz
######################################################################## 100.0%
==> Pouring freetype-2.4.10.mountainlion.bottle.tar.gz
/usr/local/Cellar/freetype/2.4.10: 56 files, 2.5M
==> Installing php54-mcrypt dependency: gettext
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/gettext-0.18.2.mountain_lion.bottle.tar.gz
######################################################################## 100.0%
==> Pouring gettext-0.18.2.mountain_lion.bottle.tar.gz
==> Caveats
This formula is keg-only: so it was not symlinked into /usr/local.
OS X provides the BSD gettext library and some software gets confused if both are in the library path.
Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:
LDFLAGS: -L/usr/local/opt/gettext/lib
CPPFLAGS: -I/usr/local/opt/gettext/include
==> Summary
/usr/local/Cellar/gettext/0.18.2: 366 files, 11M
==> Installing php54-mcrypt dependency: libpng
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/libpng-1.5.13.mountainlion.bottle.tar.gz
######################################################################## 100.0%
==> Pouring libpng-1.5.13.mountainlion.bottle.tar.gz
/usr/local/Cellar/libpng/1.5.13: 14 files, 1.0M
==> Installing php54-mcrypt dependency: zlib
==> Downloading http://zlib.net/zlib-1.2.7.tar.gz
######################################################################## 100.0%
==> Patching
patching file configure
==> ./configure --prefix=/usr/local/Cellar/zlib/1.2.7
==> make install
==> Caveats
This formula is keg-only: so it was not symlinked into /usr/local.
Mac OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.
Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:
LDFLAGS: -L/usr/local/opt/zlib/lib
CPPFLAGS: -I/usr/local/opt/zlib/include
==> Summary
/usr/local/Cellar/zlib/1.2.7: 9 files, 384K, built in 15 seconds
==> Installing php54-mcrypt dependency: php54
==> Downloading http://www.php.net/get/php-5.4.11.tar.bz2/from/this/mirror
######################################################################## 100.0%
==> Downloading patches
######################################################################## 100.0%
==> Patching
patching file Makefile.global
patch unexpectedly ends in middle of line
==> ./configure --prefix=/usr/local/Cellar/php54/5.4.11 --localstatedir=/usr/local/var --sysconfdir=/usr/local/etc/php/5.4 --with-config-file-path=/usr/local/etc/php/5.4 --with-config-file-scan-dir=/usr/local/etc/php/5.4/conf.d --with-iconv-dir=/usr --enable-dba --with-ndbm=/usr --enable-exif --enable-soap --enable-w
==> make
==> make install
==> /usr/local/Cellar/php54/5.4.11/bin/pear config-set php_ini /usr/local/etc/php/5.4/php.ini
==> Caveats
To enable PHP in Apache add the following to httpd.conf and restart Apache:
LoadModule php5_module /usr/local/Cellar/php54/5.4.11/libexec/apache2/libphp5.so
The php.ini file can be found in:
/usr/local/etc/php/5.4/php.ini
✩✩✩✩ PEAR ✩✩✩✩
If PEAR complains about permissions, 'fix' the default PEAR permissions and config:
chmod -R ug+w /usr/local/Cellar/php54/5.4.11/lib/php
pear config-set php_ini /usr/local/etc/php/5.4/php.ini
✩✩✩✩ Extensions ✩✩✩✩
If you are having issues with custom extension compiling, ensure that this php is
in your PATH:
PATH="$(brew --prefix josegonzalez/php/php54)/bin:$PATH"
PHP54 Extensions will always be compiled against this PHP. Please install them
using --without-homebrew-php to enable compiling against system PHP.
==> Summary
/usr/local/Cellar/php54/5.4.11: 485 files, 37M, built in 7.2 minutes
==> Installing php54-mcrypt
==> Downloading http://www.php.net/get/php-5.4.11.tar.bz2/from/this/mirror
######################################################################## 100.0%
==> /usr/local/Cellar/php54/5.4.11/bin/phpize
==> ./configure --prefix=/usr/local/Cellar/php54-mcrypt/5.4.11 --with-php-config=/usr/local/Cellar/php54/5.4.11/bin/php-config --with-mcrypt=/usr/local/Cellar
==> make
==> Caveats
To finish installing mcrypt for PHP 5.4:
* /usr/local/etc/php/5.4/conf.d/ext-mcrypt.ini was created,
do not forget to remove it upon extension removal.
* Restart your webserver.
* Write a PHP page that calls "phpinfo();"
* Load it in a browser and look for the info on the mcrypt module.
* If you see it, you have been successful!
==> Summary
/usr/local/Cellar/php54-mcrypt/5.4.11: 3 files, 56K, built in 111 seconds
重新启动 apache 后,sudo apachectl restart
我重新加载了 phpinfo,但仍然没有 mcrypt。
由于 php54-mcrypt 安装在 php 的 Homebrew 安装中,因此我继续brew uninstall php54-mcrypt
使用 将其卸载,然后使用brew install php54-mcrypt --without-homebrew-php
.
重新启动apache并加载phpinfo,仍然没有mcrypt。
我该如何解决这个问题。我很乐意让 homebrew 为我安装 php、crypt 和 phpmyadmin,但我目前的设置似乎无法解决这个问题,这是基于http://mac.tutsplus.com中的建议/tutorials/server/upgrading-the-native-php-installation-on-os-x-mountain-lion/。
谢谢。