如何让php7通过apache加载扩展

时间:2017-10-18 22:16:17

标签: php apache mysqli freebsd

我可以通过命令行获取php加载扩展,但不能通过apache。

php50安装在FreeBSD上(10.3-RELEASE-p20)

从命令行运行:php -m 显示所有扩展目录中安装的模块。 php.ini文件是/usr/local/etc/php.ini,扩展名在/ usr / local / lib / php / 20151012中定义

但是通过apache(使用mod_php),我无法运行扩展程序:

<?php
print_r(php_ini_loaded_file());
echo "<br>";
print_r(get_loaded_extensions());
?>
<?php

显示相同的.ini文件(/usr/local/etc/php.ini) 但只列出了几个模块( [0] =&gt;核心[1] =&gt; date [2] =&gt; libxml [3] =&gt; pcre [4] =&gt;反射 [5] =&gt; SPL [6] =&gt;标准[7] =&gt; mysqlnd [8] =&gt; apache2handler)

错误日志显示无法读取扩展程序:

  • PHP警告:PHP启动:无法加载动态库 &#39; /usr/local/lib/php/20151012/mysqli.so' - /usr/local/lib/php/20151012/mysqli.so:未定义的符号 &#34; executor_globals&#34;在第0行的未知中
  • PHP警告:PHP启动:无法加载动态库 &#39; /usr/local/lib/php/20151012/hash.so' - /usr/local/lib/php/20151012/hash.so:未定义的符号 &#34; file_globals&#34;在第0行的未知中

这适用于位于2015102目录中的所有文件

这些文件确实存在,所有目录的权限都是drwxr-xr-x 所有文件都有r + x

使用Apache / 2.4.18(FreeBSD)

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可能已更新到PHP70及相关扩展而无需更新mod_php,这不包含在PHP70端口/包中。

无论如何,我的第一个建议是重新编译PHP70 *和mod_php,然后重启Apache。