0

所以我试图在我的本地安装 mcrypt 进行开发。我以前从未从源代码编译过,所以请多多包涵,但我所做的不足是:

  1. 下载并安装 libmcrypt-2.5.8(来自源代码)
  2. 从http://www.viames.it/mac-os-x.html下载已编译的 mcrypt.so (注意:编译后的 gd.so 似乎工作正常)
  3. 更新 php.ini(包括相关行)
  4. 重启网络共享(apache);页面无法加载
  5. 删除 extension=mcrypt.so 行并重新启动 apache,页面再次加载)
  6. 从 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]
4

1 回答 1

0

通过 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
于 2013-04-02T21:22:57.887 回答