位置:首页 > 网络编程 > PHP笔记
解决:cc: Internal error: Killed (program cc1)的问题
日期:2023-01-03 人气:

大家好,对解决:cc: Internal error: Killed (program cc1)的问题感兴趣的小伙伴,下面一起跟随三零脚本的小编来看看解决:cc: Internal error: Killed (program cc1)的问题的例子吧。

在给一个vps安装php扩展的时候,进行make编译时候报错,报错信息:cc: Internal error: Killed (program cc1),感觉莫名其妙。google了一下,发现是内存太小的问题(太穷了,买不起内存大的vps),网上的解决方案大致两种,我测试了下有效,特地写出来,完善一下解决方案。

方法1:增加交换区(虚拟内存)

该方法为通用方法, 在其他程序编译出现类似错误的时候也可以使用,不仅仅针对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 删除交换分区

 

方法2:设置编译参数

在php的编译参数后增加

 

--disable-fileinfo

 

重新编译,问题得到解决。

 

您可能感兴趣的文章