2017-09-05 201 views
0

extension=geoip.so(或mysqli.so)一起使用.user.ini文件我试图加载相关模块失败:在Php 7.1(或甚至Php5.4)的phpinfo()页面中,模块从不显示。Php扩展未加载

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

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

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

每个建议都是值得欢迎的。

回答

0

.user.ini文件只能设置certain PHP ini settings。它恰好是extension设置不是其中之一。实际上,according to the manual,extension设置仅在核心php.ini文件中有效。所以把extension=geoip.so放在你主要的php.ini文件里。

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

另一个侧面说明:由于您可能使用CGI SAPI和可能需要不同的网站加载不同的模块(专),你也许可以考虑让Web服务器在不同php.ini文件指向的CGI PHP 。我只是假设你想要实现这样的事情。但是,使用.user.ini文件加载某些目录的模块是不可能的。