|
|
Questa sezione raccoglie i più comuni errori che avvengono
durante l'installazione.
- 1.
Ho l'ultima versione di PHP e uso l'anonymous CVS, ma non c'è
nessuno script per la configurazione!
- 2.
Ho problemi nel configurare PHP per farlo lavorare con Apache.
Dice che è impossibile trovare il file httpd.h, ma questo è nel percorso che ho specificato!
- 3.
While configuring PHP (./configure), you come across
an error similar to the following:
- 4.
When I try to start Apache, I get the the following
message:
- 5.
Quando eseguo la configurazione, un messaggio di errore mi dice che non è
possibile trovare file inclusi o librerie per GD, gdbm o qualche altro pacchetto!
- 6.
Quando cerco di compilare il file language-parser.tab.c, un messaggio di errore mi dice
yytname undeclared.
- 7.
Quando eseguo make sembra che vada tutto bene, ma lo script si blocca quando cerca
di creare un collegamento all'applicazione finale, un messaggio di errore dice che non è possibile trovare alcuni file.
- 8.
Quando linko PHP, un messaggio di errore mi avvisa di parecchie undefined reference.
- 9.
Non riesco a capire come installare PHP con Apache 1.3.
- 10.
Ho seguito le istruzioni per installare Apache come modulo sotto UNIX,
ma il browser mi mostra il codice dei miei script PHP o mi viene
chiesto di salvare la pagina PHP sul disco.
- 11.
Un messaggio di errore mi dice di usare:
--activate-module=src/modules/php4/libphp4.a, ma questo file non
esiste, quindi l'ho cambiato in --activate-module=src/modules/php4/libmodphp4.a
ma il tutto non funziona. Che succede?
- 12.
Quando provo ad installare Apache con PHP come modulo statico usando
--activate-module=src/modules/php4/libphp4.a
un messaggio di errore mi dice che il mio compilatore non è compatibile con ANSI.
- 13.
Quando provo ad installare Apache usando --with-apxs
ricevo uno strano messaggio di errore.
- 14.
Quando eseguo make, ricevo errori nei microtime e
un sacco di errori RUSAGE_.
- 15.
Voglio aggiornare il mio PHP. Dove posso trovare la linea di ./configure
che è stata usata per creare la mia attuale versione di PHP?
- 16.
When building PHP with the GD library it either gives strange compile errors
or segfaults on execution.
1.
Ho l'ultima versione di PHP e uso l'anonymous CVS, ma non c'è
nessuno script per la configurazione!
Per generare lo script di configurazione dal file configure.in devi avere
il pacchetto autoconf di GNU installato sul tuo PC. Esegui
./buildconf nella cartella di livello più alto dopo aver
ottenuto i sorgenti dal server CVS. (A meno che tu non esegua la
configurazione con l'opzione --enable-maintainer-mode, lo
script di configurazione non ricostruirà automaticamente lo script quando il file
configure.in è aggiornato, così dovresti essere sicuro di farlo
manualmente quando ti accorgi che il file configure.in è cambiato.
Un segno di ciò è trovare cose simili a @VARIABLE@ nel tuo Makefile dopo aver eseguito
la configurazione o il config.status.)
2.
Ho problemi nel configurare PHP per farlo lavorare con Apache.
Dice che è impossibile trovare il file httpd.h, ma questo è nel percorso che ho specificato!
Nello script di configurazione/setup devi specificare il percorso
della cartella di livello più alto di Apache, cioè devi scrivere
--with-apache=/percorso/per/apache e non
--with-apache=/percorso/per/apache/src.
3.
While configuring PHP (./configure), you come across
an error similar to the following:
checking lex output file root... ./configure: lex: command not found
configure: error: cannot find output from lex; giving up |
Be sure to read the installation
instructions carefully and note that you need both flex and bison
installed to compile PHP. Depending on your setup you will install
bison and flex from either source or a package, such as a RPM.
4.
When I try to start Apache, I get the the following
message:
fatal: relocation error: file /path/to/libphp4.so:
symbol ap_block_alarms: referenced symbol not found |
This error usually comes up when one compiles the Apache
core program as a DSO library for shared usage. Try to
reconfigure apache, making sure to use at least the
following flags:
--enable-shared=max --enable-rule=SHARED_CORE |
For more information, read the top-level Apache
INSTALL file or the Apache
DSO manual page.
5.
Quando eseguo la configurazione, un messaggio di errore mi dice che non è
possibile trovare file inclusi o librerie per GD, gdbm o qualche altro pacchetto!
Puoi ordinare allo script di configurazione di cercare di gli header e le librerie anche
in posizioni non standard specificando flag addizionali da passare
al preprocessore C, come:
CPPFLAGS=.I/percorso/da/includere LDFLAGS=-L/percorso/per/la/libreria ./configure |
Se usi una variante di csh come shell di login (perché?), il codice diventa:
env CPPFLAGS=-I/percorso/da/includere LDFLAGS=-L/percorso/per/la/libreria ./configure |
6.
Quando cerco di compilare il file language-parser.tab.c, un messaggio di errore mi dice
yytname undeclared.
7.
Quando eseguo make sembra che vada tutto bene, ma lo script si blocca quando cerca
di creare un collegamento all'applicazione finale, un messaggio di errore dice che non è possibile trovare alcuni file.
Qualche vecchia versione di make non mette le
versioni compilate dei file nelle cartelle giuste. Prova ad eseguire
cp *.o functions e quindi e rieseguire make
e controlla se il messaggio di errore compare ancora. Se dovesse continuare ad
apparire avrai bisogno di scaricare una versione più recente di make GNU.
8.
Quando linko PHP, un messaggio di errore mi avvisa di parecchie undefined reference.
Controlla la linea relativa al link ed assicurati che tutte le librerie
appropriate siano state incluse alla fine dello script. Le librerie più comuni
che tu possa aver scordato sono le '-ldl' e quelle relative al supporto di qualche
database che hai incluso.
Se stai linkando Apache 1.2.x, ti sei ricordato di aggiungere le
informazioni appropriate nella linea EXTRA_LIBS del file di configurazione? Ti sei
ricordato di rieseguire lo script di configurazione di Apache? Guarda il file
INSTALL presente in questa
distribuzione per avere maggiori informazioni.
Qualcuno che aveva problemi a linkare Apache ha risolto aggiungendo
'-ldl' subito dopo libphp4.a.
9.
Non riesco a capire come installare PHP con Apache 1.3.
Installare PHP insieme con Apache 1.3 è veramente semplice. Segui queste istruzioni:
Scarica l'ultima distribuzione di Apache 1.3 da
http://www.apache.org/dist/httpd/.
Estrai prima l'archivio gzip e poi quello tar dove preferisci, per esempio in
/usr/local/src/apache-1.3.
Compila PHP per la prima volta eseguendo:
./configure --with-apache=/<percorso>/apache-1.3
Sostituisci <percorso> con il percorso che porta alla cartella di Apache 1.3
Scrivi make seguito da make install
per installare PHP e copiare i file necessari alla distribuzione di Apache.
Cambia il percorso delle cartelle fino al tuo /<percorso>/apache-1.3/src
e modifica il file di Configuration.
Aggiungi al file la riga seguente:
AddModule modules/php4/libphp4.a.
Scrivi: ./configure seguito da make.
Ora dovresti avere un eseguibile httpd abilitato per PHP!
Nota: puoi anche usare il nuovo script
./configure di Apache. Leggi le istruzioni
nel file README.configure presente nella tua
distribuzione di Apache. Leggi anche il file
INSTALL nella distribuzione di PHP.
10.
Ho seguito le istruzioni per installare Apache come modulo sotto UNIX,
ma il browser mi mostra il codice dei miei script PHP o mi viene
chiesto di salvare la pagina PHP sul disco.
Questo significa che il modulo PHP non viene invocato correttamente per una qualche ragione.
Prima di cercare ulteriore aiuto controlla tre cose:
Assicurati che l'httpd binario che stai eseguendo sia quello nuovo che hai appena installato.
Per fare ciò prova ad eseguire:
/percorso/per/il/file/eseguibile/httpd -l
Se nell'elenco non compare mod_php4.c,
significa che non stai eseguendo il
binario giusto: trova ed installa il binario corretto.
Assicurati di aver aggiunto il corretto Myme Type ad uno dei tuoi file
Apache .conf. Dovrebbe essere:
AddType application/x-httpd-php3 .php3 (per PHP 3)
o AddType application/x-httpd-php .php (per PHP 4)
Assicurati anche che questa linea AddType non sia nascosta all'interno
di un <Virtualhost> o di un blocco di <Directory> che
possa impedire l'applicazione al percorso dei tuoi script
di prova.
Infine sappi che il percorso predefinito del file di configurazione
di Apache 1.2 è diverso da quello di Apache 1.3. Dovresti controllare
che il file della linea AddType sia al momento letto. Puoi inserire
un errore di sintassi di proposito nel file httpd.conf o effettuare qualche
altro cambiamento che ti farà capire se il file è correntemente letto.
11.
Un messaggio di errore mi dice di usare:
--activate-module=src/modules/php4/libphp4.a, ma questo file non
esiste, quindi l'ho cambiato in --activate-module=src/modules/php4/libmodphp4.a
ma il tutto non funziona. Che succede?
Nota che si presume che il file libphp4.a non esista ancora.
Sarà un processo di Apache a crearlo!
12.
Quando provo ad installare Apache con PHP come modulo statico usando
--activate-module=src/modules/php4/libphp4.a
un messaggio di errore mi dice che il mio compilatore non è compatibile con ANSI.
Questo è un messaggio d'errore ingannevole di Apache, un bug che è stato corretto
nelle versioni più recenti.
13.
Quando provo ad installare Apache usando --with-apxs
ricevo uno strano messaggio di errore.
Per risolvere questo problema devi controllare tre cose. Per iniziare,
per qualche ragione, quando Apache installa gli script Perl apxs, ogni
tanto finisce senza il compilatore appropriato e le variabili flag.
Trova il tuo script apxs (prova il comando which apxs),
ogni tanto lo trova in /usr/local/apache/bin/apxs
o in /usr/sbin/apxs.
Aprilo e cerca linee simili a queste:
my $CFG_CFLAGS_SHLIB = ' '; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB = ' '; # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = ' '; # substituted via Makefile.tmpl |
Se vedi scritto esattamente questo, hai trovato il problema: queste
linee potrebbero contenere spazi o altri valori sbagliati, come 'q()'.
Cambia le linee precedenti come segue:
my $CFG_CFLAGS_SHLIB = '-fpic -DSHARED_MODULE'; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB = 'gcc'; # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-shared); # substituted via Makefile.tmpl |
Il secondo problema possibile potrebbe solo essere una particolare distribuzione di Red Hat 6.1 e
6.2. L'unità degli script apxs in Red Hat non è funzionante. Cerca una linea simile a questa:
my $CFG_LIBEXECDIR = 'modules'; # substituted via APACI install |
Se trovi una linea identica a quella precedente, cambiala come segue:
my $CFG_LIBEXECDIR = '/usr/lib/apache'; # substituted via APACI install |
Infine, se hai riconfigurato o reinstallato Apache, aggiungi un make clean
al processo dopo ./configure e prima di make.
14.
Quando eseguo make, ricevo errori nei microtime e
un sacco di errori RUSAGE_.
Se durante la parte di installazione che riguarda make hai incontrato problemi simili a questi,
significa che il tuo sistema ha qualche problema:
microtime.c: In function `php_if_getrusage':
microtime.c:94: storage size of `usg' isn't known
microtime.c:97: `RUSAGE_SELF' undeclared (first use in this function)
microtime.c:97: (Each undeclared identifier is reported only once
microtime.c:97: for each function it appears in.)
microtime.c:103: `RUSAGE_CHILDREN' undeclared (first use in this function)
make[3]: *** [microtime.lo] Error 1
make[3]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/master/php-4.0.1/ext'
make: *** [all-recursive] Error 1 |
Hai bisogno di fissare alcuni tuoi file in /usr/include
installando un pacchetto glibc-devel che corrisponda al tuo glibc. Questo non
ha assolutamente niente a che fare con PHP. Per controllare
se il tuo problema dipende da questo, prova questo semplice test:
$ cat >test.c <<X
#include <sys/resource.h>
X
$ gcc -E test.c >/dev/null |
Se ricevi messaggi d'errore, allora i tuoi file include sono incasinati.
15.
Voglio aggiornare il mio PHP. Dove posso trovare la linea di ./configure
che è stata usata per creare la mia attuale versione di PHP?
Puoi cercare nel file config.nice nel sorgente della tua attuale installazione di PHP o
eseguire questo semplice script:
Nella prima parte della pagina risultante è mostrata la linea ./configure
usata durante la precedente installazione di PHP.
16.
When building PHP with the GD library it either gives strange compile errors
or segfaults on execution.
Make sure your GD library and PHP are linked against the same depending
libraries (e.g. libpng).
|