2015
12-13

云服务器编译安装phalcon失败

这两天萌生想法,想做一个自己的东西。在框架选型方面,打算用Phalcon框架。一方面是上手这个框架已经三年多时间了,顺手且轻车熟路;另一方面,也是在公司大大小小的项目中经受住了洗礼。初步选型既已经确定,就即刻开始环境的准备。既然是自己的小项目,那就用自己的阿里云服务器(ECS)。
这里先简单列下ECS的配置:

1核CPU+1G内存 64位centos

问题起因

下面开始Phalcon框架的编译安装。

#下载phalcon 2.0.9安装文件
wget https://github.com/phalcon/cphalcon/archive/phalcon-v2.0.9.tar.gz

#解压phalcon 2.0.9安装文件 
tar -zxvf phalcon-v2.0.9.tar.gz
cd cphalcon-phalcon-v2.0.9/build/

#执行安装脚本
./install

在脚本执行到“make”步骤时,报错:

gcc: Internal error: Killed (program cc1)


初步诊断

这是什么鬼?在公司所有服务器及本地环境中,phalcon都是经过此步骤编译安装成功的。
在查阅相关资料,并咨询了阿里云相关技术支持的情况下,初步判断这是因为ECS服务器的内存不足、且阿里云ECS默认情况下关闭了swap引起的。初步确定了原因,那就对症下药解决之。

对症解决

有两种解决方法,一种是提升ECS系统内存。但是却要真金白银跟阿里云去购买的。另一种,则是手动创建swap交换文件。下面来介绍第二种方法。
首先确定系统是否已经开启swap交换分区:

swapon -s

如下所示,即表示未启用swap交换分区。
555555.png

下面来介绍开启swap交换文件的步骤,如下:

#创建交换分区目录
sudo mkdir -p /var/cache/swap/

#创建用于交换分区的文件。count=2048 代表设置2048MB大小swap文件
sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=1M count=2048
sudo chmod 0600 /var/cache/swap/swap0

#设置交换分区文件
sudo mkswap /var/cache/swap/swap0 

#立即启用交换分区文件
sudo swapon /var/cache/swap/swap0

再次通过“swapon -s”命令查看开启情况,如下图所示即表示开启成功。
66666.png

swap交换文件启用成功后,重新执行phalcon的编译安装步骤,即可安装成功~~

后续处理

阿里云服务器初始状态未配置swap,是因为开启swap分区会导致硬盘IO性能下降。那么成功编译安装Phalcon框架之后,是否可以关闭swap交换文件呢?执行如下命令:

swapoff /var/cache/swap/swap0

执行完毕后,再次通过“swapon -s”命令查看swap交换文件使用情况,即可看到已关闭swap交换文件功能。

友情提示

在阿里云1核CPU、1G内存、64位centos的配置下,phalcon3.0+ 的版本通过开启swap交换分区能正常安装,只是相对耗时,请耐心等待 :)

参考资料:http://help.aliyun.com/knowledge_detail/5988582.html

「真诚赞赏,手留余香」
您的支持将鼓励我继续创作 :)