2017-10-18 44 views
-1

我可以让PHP通过命令行加载扩展,但不通过apache。如何让php7通过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] =>核心[1] =>日期[2] => libxml [3] => pcre [4] =>反射 [5] => SPL [6] =>标准[7] => mysqlnd [8] => apache2handler)

AND错误日志显示分机不能被读取:

  • 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)

任何帮助将不胜感激。

+0

检查还有'php-fmp -m'包含所有模块 – nbari

+0

它确实显示了所有的模块。这是否意味着我应该学习从mod_php迁移到php-fmp? – meh

回答

0

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

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

+0

感谢您的建议。为了完整性,我安装了php70,php70_extensions,ports/www/mod_php70(在安装php70之后);仍然没有运气,仍然卡住(w/apache重新启动)。我转移到php-fmp(它工作)。如果知道解决方案是否存在,仍然会很高兴。 – meh