繁体   English   中英

PHP扩展名未加载

[英]Php extension not loaded

我使用extension=geoip.so (或mysqli.so)的.user.ini文件,尝试加载相关模块失败:在php 7.1(甚至php5.4)的phpinfo()页面中,该模块从不如图所示。

1).user.ini文件正常工作,因为我能够修改变量memory_limit。

2)phpinfo()函数正确显示了包含我要加载的.so扩展名的extension_dir文件夹(但是,在php.ini文件中此变量不存在)。

3)php错误日志不包含任何消息。

任何建议都是值得欢迎的。

.user.ini文件只能设置某些PHP ini设置 碰巧extension设置不是其中之一。 实际上, 根据手册extension设置仅在核心php.ini文件中有效。 因此,将extension=geoip.so放入您的主要php.ini文件中。

附带说明 :我使用PHP所做的大部分工作都使用Ubuntu / Debian。 可通过Debian软件包档案获得的标准PHP发行版中已编译了额外的代码,可以进行分布式配置。 它的工作方式是SAPI模块扫描conf.d目录并包含所有ini文件。 通常,当您为Debian打包外部PHP扩展时(我可能会感到很痛苦-我已经为自己的扩展完成了此工作),您会包含一个包含该扩展名的ini文件(例如extension=myext.so )。 该软件包将其安装在分布式配置目录中,并在PHP启动时包含在php.ini文件中。 也许您打算像这样安装基于Debian的配置?

另一个注意事项 :由于您可能正在使用CGI SAPI,并且可能希望不同的站点加载不同的模块(排他性地),因此您可以考虑使Web服务器将CGI PHP指向另一个php.ini文件。 我只是假设您要实现这样的目标。 但是,无法使用.user.ini文件加载某些目录的模块。

尝试禁用或配置selinux。 检查selinux审核日志。

暂无
暂无

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

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