【发布时间】:2014-05-17 14:15:56
【问题描述】:
我最近将mcrypt 安装到 OS X 10.9 中的 PHP 的默认安装中,在完成所有配置和安装后,我去打开了php.ini 中的 so。我注意到没有默认的php.ini,所以我复制了php.ini.default,重命名它,添加extension=mcrypt.so,然后重新启动Apache。
执行此操作后,我的phpinfo() 页面什么也没有显示,并且我的 php 脚本都不起作用。
我可以从命令行运行php -i,看看phpinfo()应该显示什么,crypt库显示在那里,没有错误。
如果我从/etc 或/private/etc 中删除所有php.ini 文件,然后重新启动Apache,PHP 将再次开始工作。
查看phpinfo,它将/etc 显示为php.ini 文件的位置。 php.ini 是否有一些默认位置在丢失时获取 ini 文件?
我认为它一定是php.ini 中的某些内容导致了错误并使 php 无法工作,但使用默认的 ini 文件会导致相同的结果。
【问题讨论】:
-
您可以使用
ini_get()和ini_set()函数来帮助调试您的问题。 -
如果 php 无法运行,那么这些函数将无法在脚本中运行。当我可以运行它时,没有 ini 文件,我可以运行 phpinfo(),它包含 ini_get 将返回的所有变量。
-
“我可以从命令行运行
php -i,看看phpinfo()中应该显示什么……”这个假设是你的第一个问题。 CLI PHP 和 Apache PHP 模块使用不同的php.ini配置文件。因此,您正在运行的php -i永远不会帮助您解决问题。此外,您可能会检查您是否仅为 PHP CLI 编译了mcrypt,并且由于路径混乱等原因,Apache 模块现在正在阻塞它。一般来说,我建议您改用 MAMP (Mac OS X LAMP) 来做这样的事情。在 Mac OS X 上从源代码编译对于这样的事情很糟糕。
标签: php osx-mavericks ini