将我的 Mac 升级到 Mavericks 后,我遇到了一些小问题,其中大部分都已解决,但是当我尝试在命令行运行 PHP 脚本时,我没有收到这些警告...
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20100525/yaml.so' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20100525/yaml.so, 9): image not found in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20100525/apc.so' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20100525/apc.so, 9): image not found in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20100525/intl.so' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20100525/intl.so, 9): image not found in Unknown on line 0
目录 /usr/lib/php/extensions/no-debug-non-zts-20100525/ 存在,但其中只有 xdebug.so 和 mcryt.so 文件。
我尝试使用安装 yaml 扩展pecl
,但它说它已经安装。
如果我运行sudo php -a
而不是php -a
,其他错误就会消失。我需要在哪个文件夹上设置什么权限才能让非管理员帐户正常工作?
答案1
运行此命令:
diff /etc/php5/apache2/php.ini /etc/php5/cli/php.ini
或者
find /etc/* -name php.ini
diff /etc/.../apache2/php.ini /etc/.../cli/php.ini
也许存在一些差异,可以给你答案。
答案2
错误原因在于 PHP 版本冲突。您之前安装的 PHP 中一定有剩余的扩展。
您可以做的是ext-intl.so
从旧版本的 php 中删除该文件。我所做的是将内容(可能只有extension='/usr/local/Cellar/php55/phpx/
)复制到我的php.ini
文件中,注释掉那些选项,然后删除文件ext-intl.so
,解决了这个问题。