在 CentOS 6.5 上执行 make 命令时编译 PHP 5.5.9 时出错

在 CentOS 6.5 上执行 make 命令时编译 PHP 5.5.9 时出错

错误信息如下:

cc: internal compiler error: Killed (program cc1)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions.
make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1

make 处理的最后一件事是 apprentice.lo,它似乎是图像处理库的一部分(可能?)。我正在使用 Ansible 来配置我的实例。它是 Digital Ocean 单核 512MB VM。

我一直在本地使用 vagrant / ansible 进行开发,配置相同,编译良好,这是我尝试配置的第一个云 VM。唯一的区别是我的 DO 服务器的基本映像来自 DO,而对于我的本地开发,我通过 VirtualBox 从现有的 CentOS 基本服务器安装构建了自己的 Vagrant 盒。我从我的 DropBox 中将其拉下来。

其他人也遇到过此问题,并报告为php 错误报告

我的php ansible角色出现错误:

---
- name: Download php source
  get_url: url={{ php_source_url }} dest=/tmp
  register: get_url_result

- name: untar the source package
  command: tar -xvf php-{{ php_version }}.tar.gz chdir=/tmp
  when: get_url_result.changed or php_reinstall

- name: configure php 5.5
  command: >
    ./configure
    --prefix={{ php_prefix }}
    --with-config-file-path={{ php_config_file_path }}
    --enable-fpm
    --enable-ftp
    --enable-mbstring
    --enable-pdo
    --enable-soap
    --enable-sockets=shared
    --enable-zip
    --with-curl
    --with-fpm-group={{ nginx_group }}
    --with-fpm-user={{ nginx_user }}
    --with-freetype-dir=/usr/lib64/
    --with-gd
    --with-jpeg-dir=/usr/lib64/
    --with-libdir=lib64
    --with-mcrypt
    --with-openssl
    --with-pdo-mysql
    --with-pear
    --with-readline
    --with-tidy
    --with-xsl
    --with-zlib
    --without-pdo-sqlite
    --without-sqlite3
    chdir=/tmp/php-{{ php_version }}
  when: get_url_result.changed or php_reinstall

- name: make clean when reinstalling
  command: make clean chdir=/tmp/php-{{ php_version }}
  when: php_reinstall

- name: make php
  command: make chdir=/tmp/php-{{ php_version }}
  when: get_url_result.changed or php_reinstall

提前感谢你的帮助。:)

答案1

这是由于 OOM(内存不足)事件导致编译器进程被终止,我能够在“一些 Linux 书呆子”的帮助下确定这一点。为了在无法直接向机器添加内存的情况下规避这种情况,我使用了交换文件。以下是我找到的我使用的命令这里

dd if=/dev/zero of=/swapfile bs=1024 count=262144
mkswap /swapfile
swapon /swapfile

我没有启用它在重启后继续运行的功能,因为 512MB 足以满足我日常对这个盒子的需求,所以我省略了该命令。我在 PHP 源代码上重新运行了我的 make,它成功完成了。

相关内容