今天在编译好php7.3.4的时候,因为编译时候没有安装php 的redis和mcrypt扩展,安装好后,在php.ini 中添加 好
extension="redis.so"
extension="mcrypt.so"
然后使用 php -m 查看模块,报如下警告:
PHP Warning: Module 'redis' already loaded in Unknown on line 0
PHP Warning: Module 'mcrypt' already loaded in Unknown on line 0
意思这个两个模块重复加载了, 网上查到的都是说,
一种是配置文件里面重复加载了 这两个模块,我把php所有文件都搜索了一边,根本不可能有重复加载。
第二种是php编译的时候加载了这个模块,然后php.ini 又动态加载了一边,但是我手动注销了php.ini 的模块后,php -m 随即就看不到了这两个模块。这也说明模块不可能是编译进去了,通过 php -i|grep configure 查看也可以看到,编译选项里面是没有上面两个模块的。
那问题处在哪里呢?
难道是版本的bug, 查了网上,没有说这个版本有这样bug呀。
后来我仔细检查了编译选项中,有这两个编译选项:
'--with-config-file-path=/usr/local/php/etc' '--with-config-file-scan-dir=/usr/local/php/etc'
这两个选项都是指定php的配置文件路径的。
--with-config-file-path=/usr/local/php/etc 设定在此目录下可以找到php.ini 文件。
--with-config-file-scan-dir=/usr/local/php/etc 设置在此目录下扫描*.ini “附加”配置文件。
而在 /usr/local/php/etc 目录下两个选项都找到了php.ini 文件 这个可以通过 php --ini 打印出来:
Configuration File (php.ini) Path: /usr/local/php/etc
Loaded Configuration File: /usr/local/php/etc/php.ini
Scan for additional .ini files in: /usr/local/php/etc
Additional .ini files parsed: /usr/local/php/etc/mcrypt.ini,
/usr/local/php/etc/php.ini,
/usr/local/php/etc/redis.ini
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!