无法在OS X Mavericks上加载PHP扩展

5
我升级到了OS X 10.9 Mavericks,并且正在重新设置本地开发环境。我按照这个帖子中提到的运行了xcode-select --install,这样可以成功编译扩展程序。我确认扩展程序存在于/usr/lib/php/extensions/no-debug-non-zts-20100525中,并且我已经在php.ini文件中添加了extension=redis.so
我没有看到任何与无法加载扩展程序相关的错误,并且phpinfo()报告了预期的extension_dir,并在其输出中显示了extension=redis.so,确认我将其放入了正确的文件中。不幸的是,这是phpinfo()输出中唯一的'redis'痕迹。
当我进入我的应用程序时,会出现以下错误: Fatal error: Class 'Redis' not found in /Volumes/Storage/ty/Sites/audiomack/application/Bootstrap.php on line 95 我曾经使用sudo pecl install redis进行安装,并手动下载phpredis zip并自己编译过一次,但结果相同。
为什么PHP不能加载扩展程序呢?
我得到了一个看起来不相关的奇怪警告,但是我会提到它以保证完整性:在php.ini中,我设置了date.timezone = America/New_York,但我的设置似乎被忽略了。PHP info的“date”部分仍将date.timezone显示为“no value”,并给出了我们都看过一百次的警告: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /Volumes/Storage/ty/Sites/audiomack/public/phpinfo.php on line 2 编辑:是的,我已经反复重启了apache,但没有进展。

不清楚edis相关的内容,但对于时区部分,请确保您正在编辑正确的.ini文件。phpinfo()的输出将告诉您哪些文件正在被解析。您可能已经修改了控制CLI的文件,但是正在使用SAPI .ini文件。 - Marc B
啊啊啊啊啊……php.ini文件中include_path行缺少引号是罪魁祸首。我很震惊居然没有因为这个问题抛出语法/解析错误。 - Ty W
2个回答

3

糟糕。php.ini文件中的include_path行有一个开头的引号,但没有闭合引号。PHP读取了大部分php.ini文件作为include_path的值。惊讶的是,竟然没有因此抛出任何语法或解析错误。


0

只需将php.ini.default重命名为php.ini并重新启动Apache服务器:sudo apachectl restart


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接