我使用与 5.4.13 版本相同的配置在 Linux 系统上编译了 PHP 5.4.14 版本。我运行以下 PHP -i 命令,得到:
[root@localhost php-5.4.14]# php -i
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/20100525/fileinfo.so' - /usr/lib64/20100525/fileinfo.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/20100525/json.so' - /usr/lib64/20100525/json.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/20100525/phar.so' - /usr/lib64/20100525/phar.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/20100525/zip.so' - /usr/lib64/20100525/zip.so: cannot open shared object file: No such file or directory in Unknown on line 0
现在我知道 JSON 现在是 PHP 核心的一部分,并且没有 JSON.SO (我假设其他人也是如此)。有谁知道为什么这是一个问题?我的 php.ini 文件中没有任何 extension=XXXX.so 行。我是在Centos 6.4下编译的。
最佳答案
明白了——添加了目录/etc/php.d。其中包含一堆 .ini 文件,这些文件被添加到 php.ini 的处理中。例如,json.ini 文件简单地说:extension=json.so
在花了很长时间寻找答案之后,我碰巧在 php -i 输出中发现了一行,指定了附加的 .ini 目录。希望有一天这可以节省某人的时间。
关于未找到 PHP 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16122348/