树莓派4(64位内核)下PHP仅以32位模式运行的配置咨询
树莓派4(64位内核)下PHP仅以32位模式运行的配置咨询
从你给出的一系列测试信息来看,问题的核心其实很明确:你的树莓派虽然启用了64位内核,但用户空间程序环境仍然是32位的——你用file /bin/bash查到bash是32位ARM可执行文件,就说明当前系统的用户态还是32位(armhf架构),而非64位(aarch64),这也是PHP只能以32位模式运行的根本原因。
为什么会出现这种矛盾?
Raspberry Pi OS(原Raspbian)的官方镜像分32位和64位版本。如果你最初安装的是32位镜像,哪怕后来通过修改config.txt开启了64位内核(arm_64bit=1),用户空间的所有程序(包括你安装的PHP)依然是基于32位环境编译的,不会自动切换成64位。
可行的解决办法
方案1:重装为64位Raspberry Pi OS(推荐)
这是最省心也最彻底的解决方式:
- 去官方下载64位的Raspberry Pi OS镜像(Bullseye或更高版本都可以)
- 用烧录工具将镜像写入SD卡,重新完成系统安装
- 之后通过
apt安装的PHP默认就是64位版本,再运行php -r 'echo PHP_INT_MAX;'就能得到64位的整数最大值9223372036854775807
方案2:在32位系统中手动编译64位PHP(不推荐普通用户)
这种方式需要搭建64位的编译环境,要么用交叉编译,要么在当前系统中创建64位的chroot环境,步骤繁琐且容易出现兼容性问题,对于非开发人员来说,性价比远不如直接重装64位系统。
验证是否成功切换
等完成操作后,你可以用以下命令确认:
- 执行
file /usr/bin/php,输出应该包含ELF 64-bit LSB executable, ARM aarch64 - 再次运行
php -r 'echo PHP_INT_MAX;',得到64位的整数最大值
备注:内容来源于stack exchange,提问作者xy8000
相关产品推荐
相关产品推荐

