Intereting Posts
Приложение Client Server с PHP и Python Только первое слово строки, появляющееся в форме HTML при использовании строковой ссылки Как вызвать функцию в URL (PHP) PHP с использованием CURL: есть ли способ эмулировать куки-файл вместо сохранения его в файл? Ошибка: эта функция недоступна для используемой базы данных. Удалить идентификатор статьи из URL-адреса Joomla 3 Ищете эквивалент array_map для работы с ключами в ассоциативных массивах Переустановите mysql в ожидаемом формате для hansontable Неустранимая ошибка: Class 'Memcache' не найден (установлен с pecl) поиск расширения файла, загружаемого с помощью php Подписать политику загрузки S3 с использованием учетных данных профиля экземпляра Как установить заголовок JSON в фреймворке Slim 3 (PHP)? Ошибка OAuth Facebook: достигнут предел запроса приложения как удалить файлы с удаленного сервера с помощью phpStorm подготовленный параметризованный запрос с PDO

CoreDumpDirectory не работает на ubuntu; получение ошибки сегментации с помощью php

Я пытаюсь решить проблему сегментации. Это сообщение появляется в моем apache-error.log:

[уведомление] child pid 3979 сигнал выхода Ошибка сегментации (11)

Я попытался отключить некоторые модули apache и php, но я все равно получаю ту же ошибку.

Я также попытался поместить это в apache2.conf:

CoreDumpDirectory / tmp / apache2-gdb-dump

а затем chmod 777, chown www-data … чтобы сервер мог писать.

Я не вижу файлов дампа ядра, чтобы дать мне подсказку об ошибке.

У кого-нибудь есть идея, почему CoreDumpDirectory не работает на Ubuntu?

ответов: $ ulimit -a основной размер файла
(блоки, -c) неограниченный размер данных seg
(kbytes, -d) неограниченный приоритет планирования (-e) 0 размер файла (блоки, -f) неограниченные ожидающие сигналы (-i) 15863 максимальная заблокированная память
(kbytes, -l) Максимальный объем памяти 32
(kbytes, -m) неограниченные открытые файлы
(-n) 1024 размер трубы (512 байт, -p) 8 очереди сообщений POSIX
(байты, -q) 819200 приоритет в реальном времени (-r) 0 размер стека
(кбайт, с) 8192 процессорного времени
(секунды, -t) неограниченные максимальные пользовательские процессы (-u) 15863 виртуальная память (кбайты, -v) неограниченные блокировки файлов
(-x) неограниченно

Наконец, я смог увидеть основной дамп Apache в Ubuntu:

  1. изменить /etc/default/apport
  2. edit apache2.conf:

      CoreDumpDirectory /tmp/apache2-gdb-dump 
  3. убедитесь, что Apache может написать:

     # chmod 777 /tmp/apache2-gdb-dump 
  4. удалить ограничение размера дампа ядра:

     # ulimit -c unlimited 
  5. При желании измените шаблон имени основных дампов:

     # echo 'coredump-%e.%p' > /proc/sys/kernel/core_pattern 

Для анализа использования дампа используйте gdb :

 $ gdb apache2 /tmp/apache2-gdb-dump/coredump-xx 

Чтобы увидеть детали stacktrace, в gdb:

 gdb> where 

Это я сделал, и я получил ядро-дамп. Однако моя проблема не была решена, посмотрев на coredump; это, по-видимому, проблема в моем php-скрипте.

Дополнительная информация: http://matrafox.info/apache-child-pid-exit-signal-segmentation-fault.html

По умолчанию дампы ядра отключены по Ubuntu

Попробуй это:

 ulimit -c unlimited 

«ulimit -a» сообщает вам, что текущий предел (0 означает «отключено»)

Обратите внимание, что подкаталог в / tmp будет удален после перезагрузки, заставив apache не запускаться из-за ошибок конфигурации.

На второй ноте, chowning не нужно. / tmp chmodded 777, так что каждый может читать / писать там.

@arod sudo ulimit -c не работает, потому что -c также является аргументом sudo. Вам нужно sudo -s, затем ulimit -c