首页 文章

将OS X更新为El Capitan之后的Mcrypt问题

提问于
浏览
3

在将Yosemite更新为El Capitan后,我遇到了mcrypt(和Laravel)的问题 . 当我运行本地站点(Laravel Framework版本4.2.17)时,我得到了

需要Mcrypt PHP扩展 .

这是我的设置:

1)哪个php

/usr/local/bin/php

2)php --version

PHP 5.6.14 (cli) (built: Oct  3 2015 14:54:13) 
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
with Xdebug v2.3.3, Copyright (c) 2002-2015, by Derick Rethans

3)php --ini

Configuration File (php.ini) Path: /usr/local/etc/php/5.6
Loaded Configuration File:         /usr/local/etc/php/5.6/php.ini
Scan for additional .ini files in: /usr/local/etc/php/5.6/conf.d
Additional .ini files parsed:      /usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini,
/usr/local/etc/php/5.6/conf.d/ext-xdebug.ini,
/usr/local/etc/php/5.6/conf.d/redis.ini

4)cat /usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini | grep --color -i mcrypt

[mcrypt]
extension="/usr/local/opt/php56-mcrypt/mcrypt.so"

5)ll / usr / local / opt / php56-mcrypt /

total 112
drwxr-xr-x  5 olga  admin    170 Oct 29 07:31 .
drwxr-xr-x  5 olga  admin    170 Oct 29 07:31 ..
-rw-r--r--  1 olga  admin    373 Oct 29 07:31 INSTALL_RECEIPT.json
-rw-r--r--  1 olga  admin    107 Sep 30 01:35 TODO
-rwxr-xr-x  1 olga  admin  45284 Oct 29 07:31 mcrypt.so

6)php -i | grep --color -i mcrypt

Additional .ini files parsed => /usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini,
Registered Stream Filters => zlib.*, bzip2.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, mcrypt.*, mdecrypt.*
PHP Warning:  Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in Unknown on line 0
mcrypt
mcrypt support => enabled
mcrypt_filter support => enabled
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => no value => no value

7)php -m | grep --color -i mcrypt

mcrypt

8)echo $ PATH

/Volumes/project1/code/scripts/:/usr/local/mysql:/Applications/Adobe Flash Builder 4.6/sdks/4.5.0/bin:/Volumes/project1/code/tools/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Users/olga/.rvm/bin:~/Applications/arcanist/bin/:/usr/local/Cellar/php56/5.6.14/bin:~/.composer/vendor/phpunit/phpunit:/usr/local/bin:/usr/local/mysql/bin:/Users/olga/.composer/vendor/bin:/opt/apache-maven-3.3.3/bin

9)(来自$ PATH的php)/usr/local/Cellar/php56/5.6.14/bin/php --ini

Configuration File (php.ini) Path: /usr/local/etc/php/5.6
Loaded Configuration File:         /usr/local/etc/php/5.6/php.ini
Scan for additional .ini files in: /usr/local/etc/php/5.6/conf.d
Additional .ini files parsed:      /usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini,
/usr/local/etc/php/5.6/conf.d/ext-xdebug.ini,
/usr/local/etc/php/5.6/conf.d/redis.ini

我错过了什么?

先感谢您

1 回答

  • 2

    最后我修好了!仍然不知道原因,但是...这就是我如何解决它的原因

    1)把自制的php放到PATH上

    export PATH="/usr/local/opt/php56/bin":other_paths
    

    2)在apache中更改php模块(httpd.conf)

    LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
    #LoadModule php5_module libexec/apache2/libphp5.so`
    

    3)卸载所有版本的mcrypt和phpXX_mcrypt

    4)删除phpXX_mcrypt ini文件

    5)重启apache . 确保mcrypt不在php中(例如 php -i | grep --color -i mcrypt

    6)用brew安装mcrypt和phpXX_mcrypt

    brew search mcrypt
    brew install mcrypt
    brew install phpXX_mcrypt
    

    7)重启apache

    希望它会有所帮助:)

相关问题