我最近将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文件会导致相同的结果。
我解决了我自己的问题。我注意到phpinfo
有Scan this dir for additional .ini files
,这是/Library/Server/Web/Config/php
。我创建了这些目录,设置了正确的所有者和权限,复制了我的php.ini
文件,并重新启动了服务器。我又得到了一个空白的信息文件,这意味着我的ini文件中的某些东西导致了这个问题。我删除了所有东西,除了我添加的指令,如extension=mcrypt.so
,重新启动web服务器,信息显示完全如我所料。
希望这有助于如果breakit2fixit
的答案没有帮助。我运行以下命令来查找系统上的其他php.ini文件:
find / -name php'*ini
我发现了一个隐藏在另一个PHP版本中的小东西,不知怎么的,它找到了我的盒子。
在本例中,它位于/usr/local/php5-5.5.14/lib/php.ini
一旦我改变了,我运行:
sudo apachectl restart
这对我起了作用。关键是找到一个不合适的PHP安装。奇怪的是,运行php --ini
告诉我它正在加载/etc/php.ini
文件…