昨天在 Linux 服务器上部署 PHP 项目时遇到了一个问题,系统为 Centos 7 ,1 核 1G 的配置。通过 Git 拉取代码后,由于是基于 Laravel 框架的项目,所以需要使用 Composer 安装扩展包依赖,和平常一样,在项目根目录执行 composer install 但是直接输出了 killed,中断了安装,在网上查了一些资料,原因大致是内存不足导致的,程序不能正常使用,解决思路是 Linux 系统中内存不足时可以使用 Swap 分区进行扩充,具体操作步骤如下:
# 查看内存和 swap 的使用情况:
$ free -m # 在 var 目录创建制作swap文件
$ cd /var $ mkdir swap $ cd swap # 创建一个空文件, count 表示创建的文件大小,这里代表1GB
$ dd if=/dev/zero of=swapfile bs= count= # 将创建的文件制作为 swap 文件
$ mkswap swapfile # 使swap文件生效
$ swapon swapfile # 自动挂载
$ vim /etc/fstab # 写入
/var/swap/swapfile none swap sw #再次查看使用情况
$ free -m

完成上述的步骤后,应该 Swap 分区就可以正常使用了,再次执行 composer install 就可以正常安装了!

    最后需要说的是,这种方式也有很明显的缺点,因为内存和闪存的存取速度有相当的区别,我们是将闪存的一部分空间作为内存使用,闪存的速度会拖慢运行速度。最好还是买一个配置较高的服务器,一劳永逸!

参考:

临时解决执行 Composer Install 返回 Killed 的问题的更多相关文章

  1. 执行composer install 报错的解决办法

    执行composer install后报以下错误: Loading composer repositories with package informationInstalling dependenc ...

  2. php项目执行composer install时报错

    报错信息: Loading composer repositories with package informationInstalling dependencies (including requi ...

  3. 执行composer install后报错:执行composer install后报错: d11wtq/boris v1.0.10 requires ext-pcntl * -> the requested PHP extension pcntl is missing from your system.

    执行composer install后报错: d11wtq/boris v1.0.10 requires ext-pcntl * -> the requested PHP extension p ...

  4. composer update 或者 composer install提示killed解决办法

    出现此原因大多因为缓存不足造成,在linux环境可增加缓存解决. free -mmkdir -p /var/_swap_cd /var/_swap_#Here, 1M * 2000 ~= 2GB of ...

  5. 【PHP】Composer使用简介,composer install 和 update 区别

    1.composer是php的依赖包管理工具 2.符合PSR-0/1/2/3/4 规范 3.composer安装推荐使用国内镜像 4.composer require/install/update 区 ...

  6. composer install 出现“Please provide a valid cache path”

    本文背景:通过deployer部署PHP项目[deployer部署工具:https://deployer.org/] 问题:Php 的laravel框架中执行 composer install 后, ...

  7. laravel composer install 报错解决方法

    composer install 报错信息: 报错原因参考:http://blog.csdn.net/yicixing7/article/details/55050140 解决方法: 把compose ...

  8. composer install 时,提示:Package yiisoft/yii2-codeception is abandoned, you should avoid using it. Use codeception/codeception instead.的解决

    由 SHUIJINGWAN · 2017/11/24 1.composer install 时,提示:Package yiisoft/yii2-codeception is abandoned, yo ...

  9. composer install提示需要输入账号解决方法

    1.问题描述:输入composer install提示需要输入账号,如下所示: 2.解决方法,改用社区的源:composer config -g repo.packagist composer htt ...

随机推荐

  1. Oracle创表操作记录

    Oracle表操作 --主键,复合主键 create table example (id number primary key, name varchar2(20)); create table ex ...

  2. 出现 HTTP Status 500 - Servlet.init() for servlet springmvc threw exception 异常

    出现这种异常在网上搜了搜 ,大多数都是说jdk和tomcat版本的问题:而我前几天都是运行得好好的,今天就编写了代码一运行项目发现报了这个错误.后台仔细看了看错误信息.结果是在你的项目中有相同的req ...

  3. linux 下查看Tomcat的状态,以及开启停止服务命令

    1.首先进入你的tomcat 的bin目录下 cd /你的安装目录/tomcat/bin 查看服务启动情况 ps -ef|grep java 此条命令具体含义 ps:将某个进程显示出来 -A 显示所有 ...

  4. js的全局变量与var关键字

    var a = '1'; 如果定义在函数外,就是全局变量.如果定义在函数内,就不是全局变量,只能在函数内调用. 但是:如果在函数内定义变量,没有加var关键字,默认表示该变量是全局的.

  5. arcgis中的Join(合并连接)和Relate(关联连接)

    arcgis中的Join(合并连接)和Relate(关联连接) 一.区别 1.连接关系不一样. Relate(关联连接)方式连接的两个表之间的记录可以是“一对一”.“多对一”.“一对多”的关系 Joi ...

  6. 微信小程序--缓存,支持过期时间的二次开发封装

    简介 微信小程序提供了缓存的api,包括同步和异步两种,具体api不多说明,可自行查看官方文档 现在微信小程序缓存api存在一个问题就是没有设定过期时间,下面给大家介绍一下对小程序缓存的二次封装,使其 ...

  7. Day0 认识Java与变量类型

    字节码与虚拟机 Java介于编译型语言和解释型语言之间.编译型语言如C.C++,代码是直接编译成机器码执行,但是不同的平台(x86.ARM等)CPU的指令集不同,因此,需要编译出每一种平台的对应机器码 ...

  8. Hadoop架构: 流水线(PipeLine)

    该系列总览: Hadoop3.1.1架构体系——设计原理阐述与Client源码图文详解 : 总览 流水线(PipeLine),简单地理解就是客户端向DataNode传输数据(Packet)和接收Dat ...

  9. mybaitis

    resultType="java.util.HashMap" SELECT DISTINCT c.COMPANY_LEVEL, ) over ( partition BY COMP ...

  10. Node.js Learning Notes

    简介 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事件驱动I/O服务 ...