Erro ao compilar o PHP 5.5.9 no CentOS 6.5 durante o comando make

2

Aqui está a mensagem de erro:

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

A última coisa que fizemos foi o processamento é apprentice.lo, que parece fazer parte das bibliotecas de manipulação de imagens (talvez?). Estou usando o Ansible para provisionar minha instância. É uma VM de 512 MB de núcleo único da Digital.

Eu tenho usado o vagrant / ansible com a mesma configuração local para o dev e ele compilou bem, essa é a primeira VM em nuvem que estou tentando provisionar. A única diferença é que a imagem de base do meu servidor DO vem do DO e, para o meu dev local, eu construí minha própria caixa do Vagrant via VirtualBox a partir de uma instalação básica do servidor CentOS. Eu puxo para baixo do meu DropBox.

O problema foi experimentado por outros e reportado como um relatório de erros php

Meu papel ansioso até o erro:

---
- 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

Agradecemos antecipadamente por qualquer ajuda. :)

    
por Christopher Mancini 29.05.2014 / 03:34

1 resposta

7

Isso ocorreu devido a um evento OOM (falta de memória) que causou a morte do processo do compilador, o que consegui determinar com a ajuda de 'Some Linux Nerds'. Para contornar isso quando você não pode simplesmente adicionar memória à máquina, eu usei um arquivo de troca. Aqui estão os comandos que usei e encontrei aqui :

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

Eu não o habilite para persistir após a reinicialização, pois 512MB são suficientes para o que eu preciso desta caixa no dia-a-dia, então omiti esse comando. Eu reran meu make no código-fonte do PHP e ele foi concluído com sucesso.

    
por 30.05.2014 / 18:42