Назад | Перейти на главную страницу

Ошибка компиляции PHP 5.5.9 на CentOS 6.5 во время выполнения команды make

Вот сообщение об ошибке:

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 емкостью 512 МБ.

Я использую vagrant / ansible с той же конфигурацией локально для dev, и он отлично скомпилирован, это первая облачная виртуальная машина, которую я пытаюсь подготовить. Единственная разница в том, что базовый образ для моего сервера DO поступает от DO, а для моего локального разработчика я создал свой собственный Vagrant box через VirtualBox из стандартной базовой установки сервера CentOS. Я вытаскиваю его из своего 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

Заранее благодарю за любую помощь. :)

Это произошло из-за события OOM (нехватки памяти), которое привело к остановке процесса компилятора, что я смог определить с помощью «Some Linux Nerds». Чтобы обойти это, когда вы не можете просто добавить в машину память, я использовал файл подкачки. Вот какие команды я нашел Вот:

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

Я не включил его сохранение после перезагрузки, потому что 512 МБ достаточно для того, что мне нужно в этом поле на повседневной основе, поэтому я пропустил эту команду. Я переделал свой make в исходный код PHP, и он успешно завершился.