2013-02-04 119 views
4

我想在使用Homebrew的山狮上使用php 5.4.11安装mcrypt支持,并且我遇到了问题,无法解决。在山狮上使用Homebrew安装mcrypt支持的问题

我已经在我的Mac上手动安装了PHP 5.4.11。以前使用Homebrew安装过mcrypt。

当我加载phpMyAdmin时,它会告诉我mcrypt未启用。

因此,搜索谷歌,我意识到,不知何故,mcrypt没有被加载,因为当我加载我的phpinfo文件没有提及它。

@DavidYell在另一个问题的响应,Installing mcrypt extension for PHP on OSX Mountain Lion提出以下修补程序

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 

sudo apachectl restart我重启动Apache后重新加载phpinfo,仍然没有mcrypt。

由于php54-mcrypt安装在PHP的Homebrew安装中,我继续使用brew uninstall php54-mcrypt卸载它,然后使用brew install php54-mcrypt --without-homebrew-php重新安装。

重新启动apache并加载phpinfo,仍然没有mcrypt。

如何解决此问题。我很乐意为我安装自制软件,php,crypt和phpmyadmin,但我似乎无法用我当前的设置来解决这个问题,该设置基于http://mac.tutsplus.com/tutorials/server/upgrading-the-native-php-installation-on-os-x-mountain-lion/中的建议。

谢谢。

回答

12

那么,经过多次试验和错误,我解决了这个问题。

我第一次不得不卸载php54-mcrypt再次删除--without-homebrew-php标志并重新安装它支持由自制软件安装的PHP版本。

$ brew uninstall php54-mcrypt 
Uninstalling /usr/local/Cellar/php54-mcrypt/5.4.11... 
$ brew install php54-mcrypt 
... 
==> Summary 
    /usr/local/Cellar/php54-mcrypt/5.4.11: 3 files, 56K, built in 33 seconds 

然后,我编辑了我的httpd.conf文件并更改了php的位置。我刚刚注释掉了系统PHP,并在通过Homebrew安装的PHP中为LoadModule指令添加了一个新行。

#LoadModule php5_module libexec/apache2/libphp5.so 
LoadModule php5_module /usr/local/Cellar/php54/5.4.11/libexec/apache2/libphp5.so 

然后我通过安装自制的phpmyadmin与

brew install phpmyadmin

然后添加以下到httpd.conf文件的底部

Alias /phpmyadmin /usr/local/share/phpmyadmin 
    <Directory /usr/local/share/phpmyadmin/> 
     Options Indexes FollowSymLinks MultiViews 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 

我所做的任何更改我需要做在位于/usr/local/etc/php/5.4/php.ini的自制软件中安装了php.ini,并修改了位于的phpmyadmin的配置文件。

我然后使用sudo apachectl restart

所有这些都是好的去重新启动Apache的!

+0

是的。这在我的机器上不起作用。 –

+1

@EricLeroy:您可能需要从上面的php5_module链接中删除“usr”。当我这样做,它为我工作。 (如果问题是PHP版本) 如果是mcrypt,我必须使用“brew卸载mcrypt”然后“brew install php55-mcrypt”。 (对于PHP5.5)最终你会得到它。 –

+0

经过长时间的搞乱mcrypt之后,我发现'brew卸载mcrypt'是缺少的一块。 – tomvo