[英]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.