1. 问题描述:
在 linux 服务器使用 composer 部署 yii 项目时,出现“proc_open(): fork failed – Cannot allocate memory”
也就是提示“提示内存不足”,我们可以通过创建 swap 分区解决这个问题。
2. 解决方法:
- 先运行 free -m 看下空间是多少
- 在命令行环境依次运行以下三条命令
dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
mkswap /var/swap.1
swapon /var/swap.1
- 举例:[以下是我在服务器运行的结果]
dd if=/dev/zero of=/var/swap.1 bs=1M count=1024 // 第一条指令
1024+0 records in // 这个是返回的内容
1024+0 records out // 这个是返回的内容
1073741824 bytes (1.1 GB) copied, 10.0607 s, 107 MB/s // 这个是返回的内容
mkswap /var/swap.1 // 第二条指令
Setting up swapspace version 1, size = 1048572 KiB // 这个是返回的内容
no label, UUID=f6280c41-21b4-4039-bc3e-c26284b47b0c // 这个是返回的内容
swapon /var/swap.1 // 第三条指令
swapon: /var/swap.1: insecure permissions 0644, 0600 suggested. // 这个是返回的内容
- 解释:
dd 从 /dev/zero 设备复制出一个 1G 大小的文件 /var/swap.1
mkswap 格式化 /var/swap.1
swapon 将 swap 分区挂在到文件系统
然后输入 free -m 查看内存使用量信息
- 最后再次执行 composer update 就成功了
参考的博客有:http://www.zfsphp.com/31.html