Article ID: 117768, created on Jan 8, 2014, last review on May 1, 2014

  • Applies to:
  • Plesk 11.5 for Linux

Sintomi

  1. Durante il tentativo di aggiungere un gestore PHP si ottiene il messaggio di errore:

    Registrazione del gestore PHP non riuscita: impossibile ottenere la versione da /usr/bin/php-cgi
    
  2. PHP presenta l'errore "Segmentation fault" :

    ~# php -v
    PHP 5.3.3-7+squeeze17 with Suhosin-Patch (cli) (built: Aug 23 2013 15:06:16)
    Copyright (c) 1997-2009 The PHP Group
    Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
        with the ionCube PHP Loader v4.2.2, Copyright (c) 2002-2012, by ionCube Ltd., and
        with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technologies
    Segmentation fault
    

Causa

L'installazione di PHP potrebbe essere danneggiata.

Soluzione

  1. Usa il comando "strace" per vedere i file che sono aperti nel processo "php" prima che si verifichi l'errore:

    ~# strace -vts4096 -ostrace.log php -v
    

    Una volta completato il comando strace, controlla il file strace.log dal basso verso l'alto e verifica quali file erano aperti prima dell'errore. È molto probabile che qualche modulo incluso sia la causa del problema.

  2. Un altro modo di eseguire il debug del processo php è quello di usare GNU Debugger (gdb):

    1. Se sul server non è installato alcun gdb, installalo mediante uno dei seguenti comandi:

      • CentOS/RedHat: yum install gdb
      • Debian/Ubuntu: apt-get install gdb
    2. Abilita i principali dump nella sessione shell:

      ~# ulimit -c unlimited
      
    3. Esegui il comando php nuovamente per generare un file dump principale:

      ~# php -v
      PHP 5.3.3-7+squeeze17 with Suhosin-Patch (cli) (built: Aug 23 2013 15:06:16)
      Copyright (c) 1997-2009 The PHP Group
      Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
          with the ionCube PHP Loader v4.2.2, Copyright (c) 2002-2012, by ionCube Ltd., and
          with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technologies
      Segmentation fault (core dumped)
      
    4. Apri il file principale in GDB:

      ~# gdb `which php` core
      Program terminated with signal 11, Segmentation fault.
      #0  0x00007fa57086d617 in ?? ()
      
    5. Controlla la traccia della parte posteriore del file principale, che può darti un'idea delle librerie e le funzioni che potrebbero essere coinvolte nell'errore:

      (gdb) bt
      #0  0x00007fa57086d617 in ?? ()
      #1  0x0000000000d45600 in ?? ()
      #2  0x000000000068953f in ?? ()
      #3  0x0000000000690362 in ?? ()
      #4  0x00000000006905e8 in zend_hash_graceful_reverse_destroy ()
      #5  0x0000000000684285 in ?? ()
      #6  0x000000000062ecdd in php_module_shutdown ()
      #7  0x00000000007134e0 in ?? ()
      #8  0x00007fa57774cc8d in __libc_start_main () from /lib/libc.so.6
      #9  0x000000000042d6e9 in _start ()
      

    Nell'esempio sopra il problema è stato l'estensione Zend, chiaramente esposto nella parte finale del file.

a914db3fdc7a53ddcfd1b2db8f5a1b9c 56797cefb1efc9130f7c48a7d1db0f0c 01bc4c8cf5b7f01f815a7ada004154a2 29d1e90fd304f01e6420fbe60f66f838 0a53c5a9ca65a74d37ef5c5eaeb55d7f

Email subscription for changes to this article
Save as PDF