大家好,对解决:cc: Internal error: Killed (program cc1)的问题感兴趣的小伙伴,下面一起跟随三零脚本的小编来看看解决:cc: Internal error: Killed (program cc1)的问题的例子吧。
在给一个vps安装php扩展的时候,进行make编译时候报错,报错信息:cc: Internal error: Killed (program cc1),感觉莫名其妙。google了一下,发现是内存太小的问题(太穷了,买不起内存大的vps),网上的解决方案大致两种,我测试了下有效,特地写出来,完善一下解决方案。
该方法为通用方法, 在其他程序编译出现类似错误的时候也可以使用,不仅仅针对PHP扩展出错。
命令如下:
sudo mkdir -p /var/cache/
sudo dd if=/dev/zero of=/var/cache/swap0 bs=2M count=1024
sudo mkswap /var/cache/swap0
sudo swapon /var/cache/swap0
解释一下上面的命令
首先虚拟内存就是硬盘上的一个文件,所以需要先创建该文件的文件目录
dd命令:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
可以理解为在创建虚拟内存时需要这么做。但是dd用处不仅仅是这一种场景。有兴趣的同学可以自己百度查一下。
dd参数:
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
count=blocks:仅拷贝blocks个块,块大小等于ibs/bs指定的字节数
mkswap 设置交换分区
swapon 启用交换分区
注意: 当服务器内存小于4G的时候,交换分区一般设置为是内存的2倍.
如果想删除这个交换区,则可以执行如下命令
sudo swapoff /var/cache/swap0
sudo rm /var/cache/swap0
swapoff 关闭交换分区
rm 删除交换分区
在php的编译参数后增加
--disable-fileinfo
重新编译,问题得到解决。