记一次代码上线故障

  1. 项目采用 Git 将项目上线之后,需要安装 Laravel 框架,及在开发过程中的一些第三发扩展,上线之后,使用 composer install 安装项目,发现未完整安装整个扩展,然后直接执行 composer update 进行更新安装,结果出现:

    图1

  1. 分析错误原因,是因为无法分配所致,无法分配内存一般都是内存不够分配的,使用free -m查看了下机器内存的使用情况,如下:

    图2

  2. 由于笔者实在太穷逼了,买不起高大上的服务器,自己买的是台1G内存的VPS,内存不够怎么办呢?笔者实在没钱在去升级VPS的内存了,索性就用swap分区代替吧。至于什么是交换分区,这里就不科普了,感兴趣的自行区Google吧。下面就开始,给服务器添加交换分配,交换分区的大小最好是内存的1-2倍:

    1
    2
    3
    # /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
    # /sbin/mkswap /var/swap.1
    # /sbin/swapon /var/swap.1
  3. 依次执行上面命令后,使用free -m命令,发现交换分区已经有了1G可用空间:

    图3

  4. 然后执行composer update操作,顺利安装完成所有扩展。查看composer官方故障诊断文档: https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors