64位Debian 9服务器PHP 7.2仍为32位问题求助
解决Debian 9上PHP_INT_SIZE为4(32位)的问题
从你的描述和lscpu输出来看,核心问题其实不是PHP本身,而是你的Debian系统是32位版本,尽管CPU支持64位。
先验证系统位数
首先运行这个命令确认系统架构:
uname -m
如果输出是i686,就说明当前系统是32位的——这就是为什么重装PHP后PHP_INT_SIZE还是4的原因:32位系统只能安装运行32位的PHP包,不管你怎么卸载重装,都改变不了这个事实。
你的lscpu里Architecture: i686也佐证了这一点,虽然CPU支持64位(CPU op-mode(s): 32-bit, 64-bit和lm标志都说明这一点),但操作系统本身是32位的,所以所有用户空间程序包括PHP都是32位的。
解决方案
最彻底的办法:重装64位Debian 9系统
这是唯一能让PHP变成64位的方式。重装时选择64位的安装镜像(amd64架构),之后再安装PHP 7.2,此时PHP_INT_SIZE就会返回8,Drupal的警告也会消失。为什么不能在32位系统上运行64位PHP?
32位内核不支持64位用户空间程序,即使你手动编译PHP,编译环境也是32位的,最终只能生成32位的PHP二进制文件,所以这个路径走不通。
总结一下:问题出在系统架构,不是PHP的安装方式,重装64位系统就能解决。
内容的提问来源于stack exchange,提问作者dmdip
相关产品推荐
相关产品推荐

