Как стандартный трясиной Wordpress может установить повреждение PHP?

Я пытаюсь разместить сайт Wordpress на корне стандартной установки Apache на Ubuntu 14.04. Основная страница прекрасных загрузок сайта, но любая другая страница не вызывает "данные, полученные" сообщение в браузере и segfault в апачском журнале:

[Wed Sep 17 09:47:57.278168 2014] [core:notice] [pid 26097] AH00051: child pid 26123 exit signal Segmentation fault (11), possible coredump in /etc/apache2

Я могу использовать gdb, чтобы присоединить к процессу, попытаться загрузить связанную страницу, и это - то, что я вижу:

Program received signal SIGSEGV, Segmentation fault. _zend_mm_free_int (heap=0x7f7370b94920, p=0x7f735c138880) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_alloc.c:2104 2104 /build/buildd/php5-5.5.9+dfsg/Zend/zend_alloc.c: No such file or directory.

Я загрузил отладочные символы для Apache2 и PHP5, и это - след:

#0  _zend_mm_free_int (heap=0x7f7370b94920, p=0x7f735c138880) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_alloc.c:2104
#1  0x00007f736b4b7d55 in i_zval_ptr_dtor (zval_ptr=0x7f735c138880) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_execute.h:82
#2  zend_do_fcall_common_helper_SPEC (execute_data=<optimized out>) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:633
#3  0x00007f736b4319e8 in execute_ex (execute_data=0x7f7370108af0) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:363
#4  0x00007f736b3f7b59 in dtrace_execute_ex (execute_data=<optimized out>) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_dtrace.c:73
#5  0x00007f736b4b8300 in zend_do_fcall_common_helper_SPEC (execute_data=0x7f7370108960)
    at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:584
#6  0x00007f736b4319e8 in execute_ex (execute_data=0x7f7370108960) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:363
#7  0x00007f736b3f7b59 in dtrace_execute_ex (execute_data=<optimized out>) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_dtrace.c:73
#8  0x00007f736b4b8300 in zend_do_fcall_common_helper_SPEC (execute_data=0x7f7370108828)
    at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:584
#9  0x00007f736b4319e8 in execute_ex (execute_data=0x7f7370108828) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:363
#10 0x00007f736b3f7b59 in dtrace_execute_ex (execute_data=<optimized out>) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_dtrace.c:73
#11 0x00007f736b4b8300 in zend_do_fcall_common_helper_SPEC (execute_data=0x7f7370108710)
    at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:584
#12 0x00007f736b4319e8 in execute_ex (execute_data=0x7f7370108710) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:363
#13 0x00007f736b3f7b59 in dtrace_execute_ex (execute_data=<optimized out>) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_dtrace.c:73
#14 0x00007f736b4b658c in ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLER (execute_data=0x7f7370108600)
    at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:30964
#15 0x00007f736b4319e8 in execute_ex (execute_data=0x7f7370108600) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:363
#16 0x00007f736b3f7b59 in dtrace_execute_ex (execute_data=<optimized out>) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_dtrace.c:73
#17 0x00007f736b4b8300 in zend_do_fcall_common_helper_SPEC (execute_data=0x7f7370108480)
    at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:584
#18 0x00007f736b4319e8 in execute_ex (execute_data=0x7f7370108480) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:363
#19 0x00007f736b3f7b59 in dtrace_execute_ex (execute_data=<optimized out>) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_dtrace.c:73
#20 0x00007f736b4b8300 in zend_do_fcall_common_helper_SPEC (execute_data=0x7f7370108370)
    at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:584
#21 0x00007f736b4319e8 in execute_ex (execute_data=0x7f7370108370) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:363
#22 0x00007f736b3f7b59 in dtrace_execute_ex (execute_data=<optimized out>) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_dtrace.c:73
#23 0x00007f736b4b658c in ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLER (execute_data=0x7f7370108288)
    at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:30964
#24 0x00007f736b4319e8 in execute_ex (execute_data=0x7f7370108288) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:363
#25 0x00007f736b3f7b59 in dtrace_execute_ex (execute_data=<optimized out>) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_dtrace.c:73
#26 0x00007f736b4b7241 in ZEND_INCLUDE_OR_EVAL_SPEC_TMP_HANDLER (execute_data=0x7f73701081a0)
    at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:8053
#27 0x00007f736b4319e8 in execute_ex (execute_data=0x7f73701081a0) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:363
#28 0x00007f736b3f7b59 in dtrace_execute_ex (execute_data=<optimized out>) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_dtrace.c:73
#29 0x00007f736b4b7241 in ZEND_INCLUDE_OR_EVAL_SPEC_TMP_HANDLER (execute_data=0x7f73701080a0)
    at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:8053
#30 0x00007f736b4319e8 in execute_ex (execute_data=0x7f73701080a0) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_vm_execute.h:363
#31 0x00007f736b3f7b59 in dtrace_execute_ex (execute_data=<optimized out>) at /build/buildd/php5-5.5.9+dfsg/Zend/zend_dtrace.c:73
#32 0x00007f736b4095e0 in zend_execute_scripts (type=type@entry=8, retval=retval@entry=0x0, file_count=file_count@entry=3)
    at /build/buildd/php5-5.5.9+dfsg/Zend/zend.c:1316
#33 0x00007f736b3a94c5 in php_execute_script (primary_file=primary_file@entry=0x7ffff71b7b40)
    at /build/buildd/php5-5.5.9+dfsg/main/main.c:2506
#34 0x00007f736b4b993a in php_handler (r=<optimized out>) at /build/buildd/php5-5.5.9+dfsg/sapi/apache2handler/sapi_apache2.c:667
#35 0x00007f7370269680 in ap_run_handler (r=0x7f7370093130) at config.c:169
#36 0x00007f7370269bc9 in ap_invoke_handler (r=r@entry=0x7f7370093130) at config.c:439
#37 0x00007f737027ec2c in ap_internal_redirect (new_uri=<optimized out>, r=<optimized out>) at http_request.c:644
#38 0x00007f7369abdcfc in handler_redirect (r=0x7f73700990a0) at mod_rewrite.c:5063
#39 0x00007f7370269680 in ap_run_handler (r=0x7f73700990a0) at config.c:169
#40 0x00007f7370269bc9 in ap_invoke_handler (r=r@entry=0x7f73700990a0) at config.c:439
#41 0x00007f737027f16a in ap_process_async_request (r=0x7f73700990a0) at http_request.c:317
#42 0x00007f737027f444 in ap_process_request (r=r@entry=0x7f73700990a0) at http_request.c:363
#43 0x00007f737027bf02 in ap_process_http_sync_connection (c=0x7f737009f290) at http_core.c:190
#44 ap_process_http_connection (c=0x7f737009f290) at http_core.c:231
#45 0x00007f7370272cc0 in ap_run_process_connection (c=0x7f737009f290) at connection.c:41
#46 0x00007f73702730a8 in ap_process_connection (c=c@entry=0x7f737009f290, csd=<optimized out>) at connection.c:202
#47 0x00007f736caaa767 in child_main (child_num_arg=child_num_arg@entry=5) at prefork.c:704
#48 0x00007f736caaa9a6 in make_child (s=0x7f73701d8de0, slot=5) at prefork.c:800
#49 0x00007f736caab60e in perform_idle_server_maintenance (p=<optimized out>) at prefork.c:902
#50 prefork_run (_pconf=<optimized out>, plog=<optimized out>, s=<optimized out>) at prefork.c:1090
#51 0x00007f737025069e in ap_run_mpm (pconf=0x7f7370206028, plog=0x7f73701d4028, s=0x7f73701d8de0) at mpm_common.c:96
#52 0x00007f7370249e36 in main (argc=3, argv=0x7ffff71b82e8) at main.c:777

С одной стороны, почему Пехлеви включен вообще? Я предполагаю, что это - просто способ, которым создается PHP. Я не прокомментировал одну строку в php5.ini, который ссылается на нее, но это ничего не изменило.

Кажется довольно ясным, что вызов для загрузки связанной страницы в сайте Wordpress проходит mod_rewrite (как это должно), быть переданным к PHP, затем потеряться в наборе подвызовов к zend_vm_execute где это в конечном счете, кажется, ищет исходный файл, это не установлено. Я должен установить некоторую другую часть Пехлеви на моей установке? Не кажется, что мне придется установить небесплатное программное обеспечение для этого.

Я только что нашел ошибку? Это не походит на что-то столь же простое как запас, установка Wordpress раскрыла бы скрытую проблему.

Единственная другая часть загадки - то, что я переместил этот сайт в от общего хоста до выделенного сервера. Я использовал https://github.com/interconnectit/Search-Replace-DB для разбираний в изменении в URL. Это работало, когда я настроил его и использовал его неделю назад, и теперь это не. Я просмотрел все журналы с прошедшей недели, и существует только горстка сообщений о состоянии. Я ничего не установил или изменил что-либо, так как это работало. Я пошел для обновления сайта этим утром и нашел поврежденным.

Так как страница по умолчанию и панель инструментов работают, я использовал wp-администраторскую страницу для возврата конфигурации постоянной ссылки к значению по умолчанию и переместил запас .htaccess файл из пути. Другой след показал, что mod_rewrite теперь не в курсе, но проблема сохраняется.

0
задан 17 September 2014 в 17:23
1 ответ

Я обнаружил ту же ошибку в установке Drupal (Ubuntu 14, PHP-5.5.9) с довольно тяжелой темой.

Очевидно, что первым подозреваемым в этих случаях является код PHP. Но gdb не дал никаких подсказок о пользовательском коде и указал на zend_alloc.c, как в вашем случае.

Хорошо, похоже, что некоторые (игнорируемые) условия приводят к сбою движка Zend.

Я начал тогда чтобы поиграть с конфигурацией OPCache, и, наконец, я смог найти причину.

В моем случае в установке было несколько vhosts, при этом OPCache изначально был включен, а затем отключен в некоторых vhosts ... особенно в том, который дал ошибка сегментации.

Просто включите OPCache для этого конкретного виртуального хоста или просто отключите OPCache для всей установки, и ошибки сегментации исчезнут.

Кажется, что различная конфигурация OPcache между vhosts плюс некоторые (игнорируемые) условия PHP вызывают проблему, хотя это не должно быть.

Некоторый свет на это действительно был бы оценен ...

0
ответ дан 5 December 2019 в 13:19

Теги

Похожие вопросы