由于某些历史原因,我们自定义构建了 PHP 安装,并将其安装到我们的 Apache 自定义编译中。
我们现在正试图让 Fileinfo 加载到 PHP 构建中,并尝试了通常的 Pecl install fileinfo 并在 php.ini 中启用它,但它没有奏效。
更奇怪的是,在 phpinfo() 输出中显示的 fileinfo 只是没有列出任何版本。尝试运行基本 finfo 函数会出现以下错误
Fatal error: Class 'finfo' not found
系统是 Debian Linux。PHP 是 5.2.10。由于 Joomla 没有使用它,我们无法迁移到 5.3.0。
如果有人可以指导我们找出可能导致这种情况的原因,我们将不胜感激。
您的 php.ini extension_dir 设置为什么?
在我们的例子中,pecl 将扩展安装到 /usr/local/lib/php/ext/no-debug-non-zts-20060613,但 extension_dir ini 设置是“./”或“/usr/local/lib/php /分机”。pecl 安装的输出应该告诉您它安装扩展的位置,因此您只需更改您的 extension_dir 以匹配或将 fileinfo.so 文件移动到 php.ini 中指定的目录。
我以前也有同样的问题。首先加载了 fileinfo 扩展名(应该显示在 phpinfo() 中)。然后检查 /usr/share 中是否有一个名为 'magic' 的符号链接。如果不只是创建一个指向文件/魔术的链接。
我们设法通过删除magic_mime然后将fileinfo直接编译到php安装中来对此进行排序。