|
|
Questa sezione raccoglie i pi� comuni errori che avvengono durante l'installazione.
- 1.
Ho l'ultima versione di PHP ed uso l'anonymous CVS, ma non c'�
nessuno script per la configurazione!
- 2.
Ho problemi nel configurare PHP per farlo lavorare con Apache.
Un messaggio di errore mi dice che � impossibile trovare il file httpd.h,
ma questo file � presente nel percorso che ho specificato!
- 3.
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!
- 4.
Quando cerco di compilare il file language-parser.tab.c, un messaggio di errore mi dice
yytname undeclared.
- 5.
Quando eseguo make sembra che vada tutto bene, ma lo script si blocca quando cerca
di creare un collegamento all'applicazione finale, e un messaggio di errore mi dice che
non � possibile trovare qualche file.
- 6.
Quando faccio dei collagamenti in PHP, un messaggio di errore mi avvisa di un numero
indefinito di consultazioni.
- 7.
Non riesco a capire come installare PHP con Apache 1.3.
- 8.
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.
- 9.
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?
- 10.
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.
- 11.
Quando provo ad installare Apache usando --with-apxs ricevo uno strano messaggio
di errore.
- 12.
Quando eseguo make, ricevo errori nei microtime e un sacco di errori RUSAGE_.
- 13.
Voglio aggiornare il mio PHP. Dove posso trovare la linea di ./configure
che � stata usata per costruire la mia corrente versione di PHP?
1.
Ho l'ultima versione di PHP ed 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 ricevuto 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.
Un messaggio di errore mi dice che � impossibile trovare il file httpd.h,
ma questo file � presente 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.
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 stai usando un csh-variant per fare il login da shell (perch�?), modifica il codice
precedente in questo modo:
env CPPFLAGS=-I/percorso/da/includere LDFLAGS=-L/percorso/per/la/libreria ./configure |
4.
Quando cerco di compilare il file language-parser.tab.c, un messaggio di errore mi dice
yytname undeclared.
Devi aggiornare la tua versione di Bison. Puoi trovare l'ultima versione su
.
5.
Quando eseguo make sembra che vada tutto bene, ma lo script si blocca quando cerca
di creare un collegamento all'applicazione finale, e un messaggio di errore mi dice che
non � possibile trovare qualche file.
Qualche vecchia versione di make non posiziona le versioni compilate dei file nelle cartelle
giuste. Prova ad eseguire cp *.o functions a 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.
6.
Quando faccio dei collagamenti in PHP, un messaggio di errore mi avvisa di un numero
indefinito di consultazioni.
Controlla la linea relativa al collegamento 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 facendo un collegamento con 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
presente in questa
distribuzione per avere maggiori informazioni.
Qualcuno che aveva dei problemi con i collegamenti con Apache ha risolto aggiungendo
'-ldl' subito dopo libphp4.a.
7.
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 .
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 httpd binario abilitato per PHP!
Nota bene: 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.
8.
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/binario/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 <cartelle> 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.
9.
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. Sar� un processo di Apache a crearlo!
10.
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 riparato nelle versioni
pi� recenti.
11.
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 delle 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 � corrotta. 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'.
12.
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 inclusi sono sparpagliati.
13.
Voglio aggiornare il mio PHP. Dove posso trovare la linea di ./configure
che � stata usata per costruire la mia corrente 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 � mostrato il percorso di ./configure.
User Contributed Notes Problemi di installazione |
|
14-Oct-2001 07:43 |
|
Defining the right environment variables for my Apache "make"
invocation allowed the correct "apxs" file to be generated for
me. Your mileage may vary.
cd ../apache_1.3.22
CFLAGS_SHLIB="-fpic -DSHARED_MODULE" \
LD_SHLIB=gcc \
LDFLAGS_MOD_SHLIB="-shared" \
make
|
|
23-Jan-2002 12:49 |
|
Concerning question 12(broken includes etc.) :
i found that in my case HAVE_SYS_RESOURCE_H wasn't defined in microtime.c,
so sys/resource.h wasn't included. After commenting out the #ifdef
HAVE_SYS_RESOURCE_H (and the corresponding #endif of cause) everything
worked fine.
I think something went wrong during configure, but i couln't find out
what.
Regards,
Lukas
|
|
26-Jan-2002 01:21 |
|
Lukas's solution worked for me, as well - Slackware 7.0, gcc version 2.95.3
20010315, glibc 2.1.2
|
|
28-Feb-2002 06:28 |
|
The advice here that there must be something wrong with glibc should _not_
suggest to you that you want to go grab the latest glibc tar from GNU and
install it. That breaks gcc, and then if you grab the latest gcc from GNU
and try to install it, well, it just may not work (after taking hours to
almost finish building). Frankly, my glibc had always worked fine
including with prior versions of PHP 4, but that microtime thing did bite,
and I did believe the kind writer of this page who claimed there must be
something wrong on my system. (If only GNU had just a bit better quality
control on what _they're_ putting out, this wouldn't have been such a
waste.) Ah, now to restore from backup.
|
|
28-Feb-2002 07:15 |
|
Lukas's solution also works for Red Hat 6.0 with kernel 2.4.16, gcc version
2.7.2.3 or 2.95.3 and glibc 2.1.3-15. Evidently the PHP configuration
routine failes to define HAVE_SYS_RESOURCE_H on a variety of systems.
|
|
27-Mar-2002 10:04 |
|
I have needed to referer to this page several times during my recent 4.1.2
compiles, and I noticed one thing in point 13 that is missing. If you
need to find out what ./configure script was used to compile your present
php version, simply echo out phpinfo(). I keep a phpinfo.php page on
each of my webservers for refrence.
<?php echo phpinfo(); ?>
An additional note for PHP shell scripters: I also have a
phpinfo_shell.php that does the same for my "shell version" of
php (/usr/bin/php):
<?php echo `echo "<?php echo phpinfo(); ?>" |
/usr/bin/php -q`; ?>
it looks a bit funny, but it works great! =)
|
|
29-Jun-2002 12:12 |
|
I too had the same problem with q.12. Using Slackware 7.1, upgraded to
2.4.18 kernel (all required upgrades added as per kernel Changes docs).
Nothing was mentioned about glibc and I doubt Pat V got it wrong with
Slack 7.1. I've built many versions of PHP since moving to the 2.4 kernel
so why now would it all go wrong? Anyway, have commented code out as per
Lucas's post to see what happens.
|
|
30-Jun-2002 01:53 |
|
NEED HELP
i have the same probleme like the FAQ2 " I'm having problems
configuring PHP to work with Apache. It says it can't find httpd.h, but
it's right where I said it is! "
i am working on solaris 8 (sparc). The location of the top-level of my
Apache source tree is /usr/apache, i ve tried
"...--with-apache=/usr/apache" and
"...with-apache=/usr", it doesn't work both this example
thx for help
|
|
09-Jul-2002 10:18 |
|
i am getting the error
fatal error: failed opening required '
(include_path='.;c:\php4\pear') in
on line 19 while working with phpshop downloaded from sourceforge.net
|
|
09-Jul-2002 05:25 |
|
Wow this page has been a big help, but I'm still having problems. Here is
my rundown:
RedHat 6.1, Kernel 2.4.18, Apache 2.0.39, attempting PHP 3.0.18. I gave up
on version 4.
I was having problems regarding #12, took out the #ifdef and included
resource.h. I still get warnings regarding microtime.c AND posix.c
Says /usr/include/bits/resource.h warning 'RLM_INFINITY' redefined
/usr/include/asm/resource.h this is the location of previous function
?????????????
It continues to compile, then errors out with an undefined reference to
un_compress and compress from libmysqlclient.a(my_compress.o)
I believe I'm missing some mysql files. I am checking now. This is my
first time I've needed PHP and it is driving me nutz. Sorry for the long
post, but any help would be greatly apprciated. (even a good list to get
on would help!)
Thanks.
|
|
10-Jul-2002 05:11 |
|
Resolved my previous issue. configured php using --with-zlib and it got
past THAT problem. I switched back to PHP 4.2.1 and got further along. Now
have problems on the make install.
[install-sapi] error1
[install-recursive] error 1
My make ran fine! I did have to comment out the #ifdef section of
php_function.c to get it to work. *sigh*
|
|
10-Jul-2002 11:11 |
|
PHP 4.2.1 and Apache 2.0.39 to work
Finally! Wow, let me see if I can get this right. Here is what I did:
1) Downloaded and installed the following:
Latest STABLE php from snaps.php.net (dated 7/10/02 9 AM)
pth-1.4.1.tar.gz from ftp.gnu.org/gnu/pth/ (this 'may' have helped!)
2) reconfigured, apache using:
./configure --prefix=/path/to/apache --with-module=so
make clean, make, make install
(NOTE: I don't think this was needed, but I wanted clean! Also didn't
start it yet.)
3) installed the new STABLE php 4.2.1 and made some changes:
In 'path to php'/ext/standard commented out in microtime.c line 31
"#ifedf HAVE_SYS_RESOURCE_H" to "/* #ifedf
HAVE_SYS_RESOURCE_H */" NO quotes!
and also line 33
"#endif" to "/* #endif */" No Quotes!
I don't know what the problem was. I knew it needed the include on line
32.
so this just puts the darn thing in!
The previous problems in php_functions.c seemed to be fixed, so no change
there.
4) config php:
run 'make distclean'
./configure --with-mysql --with-zlib
--with-apxs2=/usr/local/apache/bin/apxs
Note: /usr/local/apache is my path! Yours could be
/I/like/grandma/bin/apxs!
make clean, make
NOTE: I get like 6 warnings about RLIM_INFINITY being redefined during
the make.
I believe it has to do with different versions of my resource.h.
I think this is due to uprading my kernel. Not to worry if you get this.
It is just a warning. Has to do with the declaration of the size of it I
think.
make install
5) back to /usr/local/apache/conf and edit httpd.conf
make sure that 'AddType application/x-httpd-php .php' is there
IT WASN'T! Rumor says it auto places it. HEH!
Also make sure 'LoadModule php4_module modules/libphp4.so' is there.
It was. Huh??? Oh well.
apachectl start
a edit quick helloworld.php
open fav web browser, bang!
Scream Haleluyah while dancing a jig! People in office look at you funny.
Man I hope I save someone some time!
|
|
|
| |