从 PHP 5.2.8 源代码在 Mac OSX (10.5) 上安装 mcrypt 测试失败,我该怎么办?
Posted
技术标签:
【中文标题】从 PHP 5.2.8 源代码在 Mac OSX (10.5) 上安装 mcrypt 测试失败,我该怎么办?【英文标题】:Installing mcrypt on Mac OSX (10.5) from PHP 5.2.8 source fails tests, what do I do? 【发布时间】:2010-12-06 09:34:43 【问题描述】:所以我正在尝试在本地安装 mcrypt 以进行开发。我以前从未从源代码编译过,所以请多多包涵,但我所做的不足是:
-
下载并安装 libmcrypt-2.5.8(从源代码)
从http://www.viames.it/mac-os-x.html 下载已编译的 mcrypt.so(注意:已编译的 gd.so 似乎可以正常工作)
更新 php.ini(以包含相关行)
重启网络共享(apache);页面无法加载
删除 extension=mcrypt.so 行并重新启动 apache,页面再次加载)
从 php.net 下载 PHP 5.2.8 源码,并尝试从 /ext/mcrypt 配置和安装 mcrypt
此时,当我运行 make test 时,一切都失败了。
Number of tests : 36 36
Tests skipped : 0 ( 0.0%) --------
Tests warned : 0 ( 0.0%) ( 0.0%)
Tests failed : 36 (100.0%) (100.0%)
Expected fail : 0 ( 0.0%) ( 0.0%)
Tests passed : 0 ( 0.0%) ( 0.0%)
以防万一,我继续执行 sudo make install,更新 php.ini,并尝试加载页面。页面加载正常。我去了我的 phpinfo 页面,但那里根本没有显示 mcrypt。我为此来回走了几次,但仍然没有发生任何事情。
我对现在该做什么感到困惑,因为我不确定当 make 测试失败时我应该做什么,我怀疑这就是为什么我的 mcrypt 根本不工作(即使.so 文件在那里)。我在下面包含了 make 测试失败的摘要结果。
任何帮助将不胜感激:)
失败的测试总结 -------------------------------------------------- ------------------ 测试河豚兼容性 [tests/blowfish.phpt] 错误 #35496(在没有正确初始化的情况下 mcrypt_generic()/mdecrypt_generic() 崩溃)。 [测试/bug35496.phpt] 错误 #37595(mcrypt_generic 以错误的方式计算数据长度)[tests/bug37595.phpt] 错误 #41252(在没有先调用 mcrypt_generic_init 的情况下调用 mcrypt_generic 崩溃)[tests/bug41252.phpt] 错误 #46010(在 ecb 模式下错误地为 iv 生成警告)[tests/bug46010.phpt] 错误 #8040(MCRYPT_MODE_* 似乎不存在)[tests/bug8040.phpt] mcrypt_cbc [测试/mcrypt_cbc.phpt] mcrypt_cbf [测试/mcrypt_cbf.phpt] mcrypt_create_iv [测试/mcrypt_create_iv.phpt] mcrypt_decrypt [测试/mcrypt_decrypt.phpt] mcrypt_ecb [测试/mcrypt_ecb.phpt] mcrypt_enc_get_algorithms_name [测试/mcrypt_enc_get_algorithms_name.phpt] mcrypt_enc_get_block_size [测试/mcrypt_enc_get_block_size.phpt] mcrypt_enc_get_iv_size [测试/mcrypt_enc_get_iv_size.phpt] mcrypt_enc_get_key_size [测试/mcrypt_enc_get_key_size.phpt] mcrypt_enc_get_modes_name [测试/mcrypt_enc_get_mode_name.phpt] mcrypt_enc_get_supported_key_sizes [测试/mcrypt_enc_get_supported_key_sizes.phpt] mcrypt_enc_is_block_algorithm [测试/mcrypt_enc_is_block_algorithm.phpt] mcrypt_enc_is_block_algorithm_mode [测试/mcrypt_enc_is_block_algorithm_mode.phpt] mcrypt_enc_is_block_mode [测试/mcrypt_enc_is_block_mode.phpt] mcrypt_enc_self_test [测试/mcrypt_enc_self_test.phpt] mcrypt_get_block_size [测试/mcrypt_get_block_size.phpt] mcrypt_get_cipher_name [测试/mcrypt_get_cipher_name.phpt] mcrypt_enc_get_iv_size [测试/mcrypt_get_iv_size.phpt] mcrypt_get_key_size [测试/mcrypt_get_key_size.phpt] mcrypt_list_algorithms [测试/mcrypt_list_algorithms.phpt] mcrypt_list_modes [测试/mcrypt_list_modes.phpt] mcrypt_module_get_algo_block_size [测试/mcrypt_module_get_algo_block_size.phpt] mcrypt_module_get_algo_key_size [测试/mcrypt_module_get_algo_key_size.phpt] mcrypt_module_get_supported_key_sizes [测试/mcrypt_module_get_supported_key_sizes.phpt] mcrypt_module_is_block_algorithm [测试/mcrypt_module_is_block_algorithm.phpt] mcrypt_module_is_block_algorithm_mode [测试/mcrypt_module_is_block_algorithm_mode.phpt] mcrypt_module_is_block_mode [测试/mcrypt_module_is_block_mode.phpt] mcrypt_module_open [测试/mcrypt_module_open.phpt] mcrypt_module_self_test [测试/mcrypt_module_self_test.phpt] mcrypt_ofb [测试/mcrypt_ofb.phpt]
【问题讨论】:
【参考方案1】:通过 AppStore 安装 Xcode
安装 MacPorts (http://guide.macports.org/#installing.macports)
使用端口安装 libmcrypt
port install libmcrypt
下载 PHP 源码 (http://php.net/downloads.php)
在安装前编译扩展
cd /directory/to/php/source/ext/mcrypt
phpize .
./configure \
--with-php-config=`which php-config` \
--with-mcrypt=/opt/local
make
sudo make install
【讨论】:
以上是关于从 PHP 5.2.8 源代码在 Mac OSX (10.5) 上安装 mcrypt 测试失败,我该怎么办?的主要内容,如果未能解决你的问题,请参考以下文章
Mac / OSx - 更改在 bash 中调用的 PHP 版本
compile php with openssl on mac osx error 填坑
升级到 Mac OSX Sierra 时面临 mcrypt 错误问题