Errori PHP comuni: diagnosi e correzione : errori php

Gli errori PHP comuni si diagnosticano partendo dal messaggio completo, dal file e dalla riga indicata. Parse error, TypeError, fatal error, warning e notice hanno significati diversi; la correzione deve essere testata fuori produzione e accompagnata dal controllo dei log.

Nota di aggiornamento: Non mostrare errori dettagliati ai visitatori in produzione. Registra i messaggi nei log e abilita il debug visibile soltanto in un ambiente controllato.

Informazioni aggiornate e controlli essenziali

Questo tutorial è dedicato ai nostri clienti possessori di un VPS o di un Server Dedicato (unManaged).

La compilazione PHP è altamente personalizzabile, ma non è un processo semplice e potrai incontrare qualche difficoltà.

Di seguito ti elenchiamo gli errori più comuni PHP e le relative soluzioni:

ERRORE 1 :

checking for BZip2 support… yes
checking for BZip2 in default path… not found
configure: error: Please reinstall the BZip2 distribution

Soluzione:

yum install bzip2-devel

 

ERRORE 2 :

checking for cURL support… yes
checking if we should use cURL for url streams… no
checking for cURL in default path… not found
configure: error: Please reinstall the libcurl distribution –
easy.h should be in /include/curl/

Soluzione:

yum install curl-devel

 

ERRORE 3 :

checking for fabsf… yes
checking for floorf… yes
configure: error: jpeglib.h not found.

checking for fabsf… yes
checking for floorf… yes
checking for jpeg_read_header in -ljpeg… yes
configure: error: png.h not found.

Soluzione:

yum install libpng-devel

 

ERRORE 4 :

checking for curl_multi_strerror in -lcurl… yes
checking for QDBM support… no
checking for GDBM support… no
checking for NDBM support… no
configure: error: DBA: Could not find necessary header file(s).

Soluzione:

yum install db4-devel

 

ERRORE 5 :

checking for png_write_image in -lpng… yes
If configure fails try –with-xpm-dir=

configure: error: freetype.h not found.

Soluzione:

Fix: Riconfigura PHP con le seguenti opzioni.
–with-xpm-dir=/usr

 

ERRORE 6 :

checking for png_write_image in -lpng… yes
configure: error: libXpm.(a|so) not found.

Soluzione:

yum install libXpm-devel

 

ERRORE 7 :

checking for bind_textdomain_codeset in -lc… yes
checking for GNU MP support… yes
configure: error: Unable to locate gmp.h

Soluzione:

yum install gmp-devel

 

ERRORE 8 :

checking for utf8_mime2text signature… new
checking for U8T_DECOMPOSE…
configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.

Soluzione:

yum install libc-client-devel

 

ERRORE 9 :

checking for LDAP support… yes, shared
checking for LDAP Cyrus SASL support… yes
configure: error: Cannot find ldap.h

Soluzione:

yum install openldap-devel

 

ERRORE 10 :

checking for mysql_set_character_set in -lmysqlclient… yes
checking for mysql_stmt_next_result in -lmysqlclient… no
checking for Oracle Database OCI8 support… no
checking for unixODBC support… configure: error: ODBC header file ‘/usr/include/sqlext.h’ not found!

Soluzione:

yum install unixODBC-devel

 

ERRORE 11 :

checking for PostgreSQL support for PDO… yes, shared
checking for pg_config… not found
configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path

Soluzione:

yum install postgresql-devel

 

ERRORE 12 :

checking for sqlite 3 support for PDO… yes, shared
checking for PDO includes… (cached) /usr/local/src/php-5.3.7/ext
checking for sqlite3 files in default path… not found
configure: error: Please reinstall the sqlite3 distribution

Soluzione:

yum install sqlite-devel

 

ERRORE 13 :

checking for utsname.domainname… yes
checking for PSPELL support… yes
configure: error: Cannot find pspell

Soluzione:

yum install aspell-devel

 

ERRORE 14 :

checking whether to enable UCD SNMP hack… yes
checking for default_store.h… no

checking for kstat_read in -lkstat… no
checking for snmp_parse_oid in -lsnmp… no
checking for init_snmp in -lsnmp… no
configure: error: SNMP sanity check failed. Please check config.log for more information.

Soluzione:

yum install net-snmp-devel

 

ERRORE 15 :

checking whether to enable XMLWriter support… yes, shared
checking for xml2-config path… (cached) /usr/bin/xml2-config
checking whether libxml build works… (cached) yes
checking for XSL support… yes, shared
configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution

Soluzione:

yum install libxslt-devel

 

ERRORE 16 :

configure: error: xml2-config not found. Please check your libxml2 installation.

Soluzione:

yum install libxml2-devel

 

ERRORE 17 :

checking for PCRE headers location… configure: error: Could not find pcre.h in /usr

Soluzione:

yum install pcre-devel

 

ERRORE 18 :

libtool: link: cannot find the library `/usr/lib/libidn.la’ or unhandled argument `/usr/lib/libidn.la’
make: *** [sapi/cgi/php-cgi] Error 1

Soluzione:

cd /usr/src/
wget http://ftp.gnu.org/gnu/libidn/libidn-1.26.tar.gz
tar -zvxf libidn-1.26.tar.gz
cd libidn-1.26
./configure
make
make install
ln -s /usr/local/lib/libidn.la /usr/lib/libidn.la

 

ERRORE 19 :

libtool: link: `/usr/lib/libxml2.la’ is not a valid libtool archive
make: *** [ext/xsl/xsl.la] Error 1

Soluzione:

cd /usr/src/
wget ftp://xmlsoft.org/libxml2/libxml2-2.7.3.tar.gz
tar -zvxf libxml2-2.7.3.tar.gz
cd libxml2-2.7.3
./configure –prefix=/usr
make
make install

 

ERRORE 20 :

configure: error: Your t1lib distribution is not installed correctly. Please reinstall it.

Soluzione:

yum install t1lib-devel.x86_64

 

ERRORE 21:

configure: error: mcrypt.h not found. Please reinstall libmcrypt.

Soluzione:

yum install libmcrypt-devel.x86_64

 

ERRORE 22 :

configure: error: Cannot find libtidy

Soluzione:

yum install libtidy libtidy-devel

 

Alla Prossima.

 

Approfondimenti correlati

Fonte ufficiale: Manuale PHP: livelli di errore.

Domande frequenti

Perché la riga indicata non è sempre la causa?

Un errore di sintassi può essere rilevato quando il parser incontra il token successivo. Occorre controllare anche le righe precedenti.

Come gestire gli errori in produzione?

Disabilita la visualizzazione pubblica, abilita logging sicuro, limita accesso ai log e monitora gli errori ricorrenti.

Un aggiornamento PHP può creare errori?

Sì. Funzioni deprecate, tipi più rigorosi e incompatibilità di plugin o codice personalizzato possono emergere dopo il cambio versione.

Questa guida è dedicata ai nostri clienti che utilizzano uno dei nostri VPS SSD unManaged, senza cPanel.

La compilazione PHP non è un processo semplice, molte dipendenze sono necessarie per poterlo compilare da un codice sorgente. Utilizzando dei pacchetti le dipendenze vengono rilevate automaticamente e vengono installate automaticamente con il pacchetto corrispondente.

Di seguito elenchiamo alcuni errori di compilazione PHP con la soluzione:


checking for BZip2 support… yes
checking for BZip2 in default path… not found
configure: error: Please reinstall the BZip2 distribution

Soluzione:
yum install bzip2-devel


checking for cURL support… yes
checking if we should use cURL for url streams… no
checking for cURL in default path… not found
configure: error: Please reinstall the libcurl distribution –
easy.h should be in /include/curl/

Soluzione:
yum install curl-devel


checking for fabsf… yes
checking for floorf… yes
configure: error: jpeglib.h not found.
checking for fabsf… yes
checking for floorf… yes
checking for jpeg_read_header in -ljpeg… yes
configure: error: png.h not found.

Soluzione:
yum install libpng-devel


checking for curl_multi_strerror in -lcurl… yes
checking for QDBM support… no
checking for GDBM support… no
checking for NDBM support… no
configure: error: DBA: Could not find necessary header file(s).

Soluzione:
yum install db4-devel


checking for png_write_image in -lpng… yes
If configure fails try –with-xpm-dir=
configure: error: freetype.h not found.

Soluzione:
Configurare PHP con le seguenti opzioni:
–with-xpm-dir=/usr


checking for png_write_image in -lpng… yes
configure: error: libXpm.(a|so) not found.

Soluzione:
yum install libXpm-devel


checking for bind_textdomain_codeset in -lc… yes
checking for GNU MP support… yes
configure: error: Unable to locate gmp.h

Soluzione:
yum install gmp-devel


checking for utf8_mime2text signature… new
checking for U8T_DECOMPOSE…
configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.

Soluzione:
yum install libc-client-devel


checking for LDAP support… yes, shared
checking for LDAP Cyrus SASL support… yes
configure: error: Cannot find ldap.h

Soluzione:
yum install openldap-devel


checking for mysql_set_character_set in -lmysqlclient… yes
checking for mysql_stmt_next_result in -lmysqlclient… no
checking for Oracle Database OCI8 support… no
checking for unixODBC support… configure: error: ODBC header file ‘/usr/include/sqlext.h’ not found!

Soluzione:
yum install unixODBC-devel


checking for PostgreSQL support for PDO… yes, shared
checking for pg_config… not found
configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path

Soluzione:
yum install postgresql-devel


checking for sqlite 3 support for PDO… yes, shared
checking for PDO includes… (cached) /usr/local/src/php-5.3.7/ext
checking for sqlite3 files in default path… not found
configure: error: Please reinstall the sqlite3 distribution

Soluzione:
yum install sqlite-devel


checking for utsname.domainname… yes
checking for PSPELL support… yes
configure: error: Cannot find pspell

Soluzione:
yum install aspell-devel


checking whether to enable UCD SNMP hack… yes
checking for default_store.h… no
checking for kstat_read in -lkstat… no
checking for snmp_parse_oid in -lsnmp… no
checking for init_snmp in -lsnmp… no
configure: error: SNMP sanity check failed. Please check config.log for more information.

Soluzione:
yum install net-snmp-devel


 

PARTE2

 

 

PARTE 1


checking whether to enable XMLWriter support… yes, shared
checking for xml2-config path… (cached) /usr/bin/xml2-config
checking whether libxml build works… (cached) yes
checking for XSL support… yes, shared
configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution

Soluzione:
yum install libxslt-devel


configure: error: xml2-config not found. Please check your libxml2 installation.

Soluzione:
yum install libxml2-devel


checking for PCRE headers location… configure: error: Could not find pcre.h in /usr

Soluzione:
yum install pcre-devel


libtool: link: cannot find the library `/usr/lib/libidn.la’ or unhandled argument `/usr/lib/libidn.la’

make: *** [sapi/cgi/php-cgi] Error 1

Soluzione:
cd /usr/src/
wget http://ftp.gnu.org/gnu/libidn/libidn-1.26.tar.gz
tar -zvxf libidn-1.26.tar.gz
cd libidn-1.26
./configure
make
make install
ln -s /usr/local/lib/libidn.la /usr/lib/libidn.la


libtool: link: `/usr/lib/libxml2.la’ is not a valid libtool archive

make: *** [ext/xsl/xsl.la] Error 1

Soluzione:
cd /usr/src/
wget ftp://xmlsoft.org/libxml2/libxml2-2.7.3.tar.gz
tar -zvxf libxml2-2.7.3.tar.gz
cd libxml2-2.7.3
./configure –prefix=/usr
make
make install


configure: error: Your t1lib distribution is not installed correctly. Please reinstall it.

Soluzione:
yum install t1lib-devel.x86_64


configure: error: mcrypt.h not found. Please reinstall libmcrypt.

Soluzione:
yum install libmcrypt-devel.x86_64


configure: error: Cannot find libtidy

Soluzione:
yum install libtidy libtidy-devel


 

Alla Prossima.