MacOS与Windows下XAMPP使用libsodium加密失效问题求助
解决跨平台XAMPP下libsodium加密功能失效的问题
嘿,我来帮你理清楚这个问题,你遇到的情况在跨平台开发里挺常见的,咱们一步步来解决:
核心结论先给你
Windows端必须单独配置libsodium扩展,和Mac端的情况不一样——Mac的XAMPP可能默认打包了libsodium,或者你系统安装的libsodium能被XAMPP的PHP识别,但Windows的XAMPP是独立的封闭环境,完全不会依赖系统安装的库,所以得手动配置。
1. 关于php.ini的配置
- 没错,你需要在Windows的XAMPP对应的php.ini里启用libsodium扩展:
- 如果你的PHP版本是7.2及以上,添加(或者取消注释)这一行:
extension=sodium(注意是sodium,不是libsodium,PHP 7.2+把扩展名简化了) - 如果是PHP 7.1及以下,才需要写
extension=libsodium - 怎么找到php.ini?打开XAMPP控制面板,点Apache模块的「Config」按钮,选「PHP (php.ini)」,直接在文件里搜
extension=相关的行,找到对应项去掉前面的;,没有的话就手动加一行在扩展列表里。
- 如果你的PHP版本是7.2及以上,添加(或者取消注释)这一行:
2. libsodium文件的放置(重点!)
Windows下不能依赖系统环境,必须把对应的库文件放到XAMPP的目录里:
- 先确认你XAMPP里PHP的版本(比如8.1、7.4)和架构(32/64位),然后下载完全匹配的libsodium预编译扩展包
- 把包里的
php_sodium.dll(或者对应版本的扩展文件)放到XAMPP的php\ext目录下 - 另外还要把包里的
libsodium.dll(系统级的运行库)放到XAMPP的php目录,或者apache\bin目录里——这样Apache启动时才能加载到这个依赖库 - 划重点:版本不匹配的话,扩展肯定加载失败,一定要对应好PHP的版本和位数!
3. 验证配置是否成功
- 重启XAMPP的Apache服务(必须重启,不然配置不生效)
- 在XAMPP的
htdocs目录里新建一个phpinfo.php,内容写:<?php phpinfo(); ?> - 浏览器访问
http://localhost/phpinfo.php,页面里搜索「sodium」,如果能看到完整的扩展信息模块,就说明配置成功了,这时候加密功能应该就能正常工作了。
额外小提示
Mac端之所以不用配置,大概率是因为你的XAMPP版本默认已经集成了libsodium扩展,或者你系统安装的libsodium被XAMPP的PHP环境识别到了,但Windows的XAMPP没有这个默认配置,所以必须手动操作。
内容的提问来源于stack exchange,提问作者eL-Prova
相关产品推荐
相关产品推荐

