【问题标题】:PHP 5.4 extensionsPHP 5.4 扩展
【发布时间】:2013-03-04 12:00:35
【问题描述】:

我正在尝试确认我最近安装的 MAMP 版本上是否安装了 mysql 扩展和 mod_mcrypt、mod_mbstring 以及 openssl。我在 phpmyinfo 下查看并查看配置命令部分。例如 './configure' '--with-mysql=/Applications/MAMP/Library' 只是将其输入终端还是我需要做的其他事情..

【问题讨论】:

  • 向下滚动配置命令下方的已安装扩展的长列表。
  • 检查 PHP 运行时配置的一种方法是编写一个仅包含 <? phpinfo(); ?> 行的小脚本,然后查看生成的页面。

标签: php macos openssl


【解决方案1】:

如果你创建一个只包含以下内容的 php 页面:

<?php phpinfo(); ?>

然后查看输出可以看到各个模块是否启用。如果启用了 mcrypt;led 你将看到它的部分和 mbstring 的部分。

以下是我安装的输出(抱歉格式化丢失)

mcrypt

已启用 mcrypt 支持

2.5.7 版

API 编号 20021217

支持的密码 cast-128 gost rijndael-128 twofish arcfour cast-256 loki97 rijndael-192 safeplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 Tripledes

支持的模式 cbc cfb ctr ecb ncfb nofb ofb 流

指令局部值主值

mcrypt.algorithms_dir 无值无值

mcrypt.modes_dir 无值无值

【讨论】:

  • 对于 mbstring 我得到了.. Multibyte Support enabled Multibyte string engine libmbfl HTTP input encoding translation disabled libmbfl version 1.3.2 这是否意味着它已启用?谢谢
【解决方案2】:

这些只是在构建 PHP 时传递给 C 编译器的命令行选项。大多数扩展都没有定义这样的选项。

最简单的方法是查看phpinfo() 的其余输出(可能使用浏览器的“搜索”功能)。许多扩展在那里添加自己的表。此外,一些扩展(不是全部!)提供您可以使用phpversion() 检索的版本信息,例如:

var_dump( phpversion('mysqli') );
// 0.1

但最通用和恕我直言可靠的方法只是测试扩展提供的功能是否可供您使用。你可以使用function_exists()class_exists()

echo 'Mcrypt: ' . (function_exists('mcrypt_encrypt') ? 'Available' : 'Not available');

【讨论】:

  • 对于 mbstring 我有多字节支持 - 已启用。但 HTTP 输入编码转换 - 已禁用。这是否意味着启用或禁用 mstring?谢谢
  • @NATHANC PHP 不加载禁用的扩展。如果它出现在 phpinfo() 中,它就在那里。但是您没有启用HTTP input encoding translation 功能。如果需要,请启用它。
  • 如何启用 HTTP 输入编码转换?
  • @NATHANC - 不清楚你的问题是什么。你知道如何更改 PHP 指令吗?
  • 我只想知道如何启用你提到的 HTTP 功能,如果它已经被禁用的话。不确定我是否需要它,但现在我想。我不确定如何更改 PHP 指令。
猜你喜欢
  • 1970-01-01
  • 2012-09-18
  • 2016-10-05
  • 1970-01-01
  • 2019-08-25
  • 2012-04-14
  • 2012-12-15
  • 2012-07-31
  • 1970-01-01
相关资源
最近更新 更多