编译php扩展报错 virtual memory exhausted: Cannot allocate memory [libmagic/apprentice.lo] Error 1解决办法
编译php扩展的时候报错:
libmagic/.libs/apprentice.o
virtual memory exhausted: Cannot allocate memory
make: *** [libmagic/apprentice.lo] Error 1
今天我遇到了这个问题 因为内存不足1G编译fileinfo扩展的时候遇到的,提示虚拟内存耗尽。
解决这个问题很简单,如果你不需要这个扩展直接关掉 --disable-fileinfo 用这个参数就可以不编译fileinfo.
但是如果非要这个扩展按以下方法解决;
free -h #可以查看一下内存情况 #创建一个1G的swap文件,几秒钟就完事儿,当然你可以建一个更大的,自定义的路径(/tmp/swap) #比如/home/swapfile dd if=/dev/zero of=/tmp/swap bs=1024 count=1024000 du -h /tmp/swap #用这个命令可以看一下创建的swap文件的大小 mkswap /tmp/swap #将刚才创建的swap文件转换为swap格式 swapon /tmp/swap #再将swap文件挂载在swap分区 free -h #再次用这个命令就可以看到虚拟内存是否已经扩展成功 vi /etc/fstab #如果需要永远保留这个分区,需要修改/etc/fstab文件,在文件末尾加上下面一行/tmp/swap swap swap default 0 0
一切问题都解决了 ,再编译的时候则不会再报错了.
留言(0)