这两天萌生想法,想做一个自己的东西。在框架选型方面,打算用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交换分区。
下面来介绍开启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”命令查看开启情况,如下图所示即表示开启成功。
swap交换文件启用成功后,重新执行phalcon的编译安装步骤,即可安装成功~~
后续处理
阿里云服务器初始状态未配置swap,是因为开启swap分区会导致硬盘IO性能下降。那么成功编译安装Phalcon框架之后,是否可以关闭swap交换文件呢?执行如下命令:
swapoff /var/cache/swap/swap0
执行完毕后,再次通过“swapon -s”命令查看swap交换文件使用情况,即可看到已关闭swap交换文件功能。
友情提示
在阿里云1核CPU、1G内存、64位centos的配置下,phalcon3.0+ 的版本通过开启swap交换分区能正常安装,只是相对耗时,请耐心等待 :)

- 本站文章除注明转载外,均为本站原创
- 欢迎任何形式的转载,但请务必注明出处,尊重他人劳动
- 转载请注明:文章转载自:Marser [https://www.marser.cn]
- 本文标题:云服务器编译安装phalcon失败
- 本文固定链接: https://www.marser.cnarticle/106.html