繁体   English   中英

如何让php7通过apache加载扩展

[英]How to get php7 to load extensions via apache

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

php70 安装在 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] => Core [1] => date [2] => libxml [3] => pcre [ 4] => 反射 [5] => SPL [6] => 标准 [7] => mysqlnd [8] => apache2handler)

并且错误日志显示无法读取扩展:

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

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

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

使用 Apache/2.4.18 (FreeBSD)

任何帮助将不胜感激。

您可能已经更新到 PHP70 和相关的扩展而不更新 mod_php,它不包含在 PHP70 端口/包中。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM