錯誤解決:cc: Internal error: Killed (program cc1)

pythontab發表於2018-10-12

在給一個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


重新編譯,問題得到解決。


相關文章