我已经设法在我的机器上启用了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
之前就有错误,但现在没有了。
XAMPP有自己的捆绑ApachePHP。它以apache模块的形式运行php。
要将php作为apache模块运行,您应该使用参数从源代码重新编译mod php——使用apxs。