提问者:小点点

PHP模块显示在php cli中,而不是在Apache中(XAMPP,Mac OS Mojave)


我已经设法在我的机器上启用了intl模块(这很棘手),当我执行php-m|grep intl时,我看到列出的模块。我的问题是看起来这个模块已经启用了,但是XAMPP仍然可能在加载其他版本的PHP。

哪个php的输出是:

/usr/local/opt/php@7.1 /bin/php

php-v的输出是:

PHP 7.1.26(cli)(内置: 2月26 2019 10:26:24)(NTS)版权(c)1997-2018 PHP集团Zend Engine v3.1.0,版权(c)1998-2018 Zend Technologies与Zend OPache v7.1.26,版权(c)1999-2018,由Zend Technologies

php-i|grep intl的输出是:

配置命令

以下是我的bash配置文件中的路径:

导出PATH="/usr/本地/选择/php@7.1 /bin:$PATH"导出PATH="/usr/本地/选择/php@7.1 /sbin:$PATH"

然后,在php.ini中取消注释这一行:

扩展=intl.so

xdebug也已启用:

;启用xdebugzend_extension="/usr/lib/php/扩展/no-debug-non-zts-20160303/xdebug.so"xdebug.remote_enable=xdebug.remote_handler=dbgpxdebug.remote_host=localhostxdebug.remote_port=9000xdebug.max_nesting_level=500

httpd.conf中,我这样加载PHP模块:

加载模块php7_模块/usr/local/opt/php@7.1/lib/httpd/modules/libphp7。所以

我已经检查了httpd.conf没有包含在附加文件中(正如这个答案所建议的)。我得到了这个:

包括"/应用程序/XAMPP/xamppfile/apache2/conf/httpd.conf"

但该附加配置文件仅包含虚拟目录。

我的phpinfo吐这个PHP版本:

PHP版本7.1。13

我已经读到PHP cli和Apache2的PHP模块不一定有相同的版本,但我的问题是:

为什么intl模块在PHP cli中正确加载,而不是在Apache2 PHP模块中?

PS:日志中没有关于加载错误模块的错误,在我将其从php_intl.dll重命名为intl.so之前就有错误,但现在没有了。


共1个答案

匿名用户

XAMPP有自己的捆绑ApachePHP。它以apache模块的形式运行php。

要将php作为apache模块运行,您应该使用参数从源代码重新编译mod php——使用apxs。