编译php7.4
的版本的make && make install
这一步出现错误,提示:
virtual memory exhausted: Cannot allocate memory
Makefile:197: recipe for target 'libmagic/apprentice.lo' failed
下面是make
编译后的详细信息:
liasing -DZEND_SIGNALS -c /usr/local/src/php-7.4.16/ext/fileinfo/libmagic/apprentice.c -o ext/fileinfo/libmagic/apprentice.lo
virtual memory exhausted: Cannot allocate memory
make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1
原因
==这个意思是内存不足,无法完成编译。==
本次使用的是Aliyun ecs.t5-lc1m1.small
实例,实际上其内存有1GB,但是还是出现本次的错误,应该是同时运行的其他程序导致内存不足。
解决办法
既然这样,物理内存不足我们没办法,但是可以通过自行增加虚拟内存的方法来解决。
创建swap
分区
通过free -m
来查看下内存使用状况
$ free -m
total used free shared buff/cache available
Mem: 990 271 616 0 102 597
Swap: 0 0 0
创建一个2GB
大小的文件
$ mkdir -p /opt/images
$ dd if=/dev/zero of=/opt/images/swap bs=1024 count=2048000
2048000+0 records in
2048000+0 records out
2097152000 bytes (2.1 GB) copied, 18.6413 s, 113 MB/s
把创建的文件变成SWAP
分区
$ mkswap /opt/images/swap
Setting up swapspace version 1, size = 2047996 KiB
no label, UUID=56051496-4f81-47f0-85bf-e4d850714726
启用这个SWAP
文件
$ swapon /opt/images/swap
swapon: /opt/images/swap: insecure permissions 0644, 0600 suggested.
$ free -m
total used free shared buff/cache available
Mem: 990 274 62 0 653 572
Swap: 1999 0 1999