[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Riminilug-general] Apache2 e LD_LIBRARY_PATH
Il 27/04/06, Paolo Sala<piviul@xxxxxxxxxxxx> ha scritto:
> Qualche tempo fa ho chiesto il vostro aiuto per ricompilare php con il
> supporto ad oracle. Tutto è andato bene tranne che ora non posso più
> riavviare apache2; se lo riavvio ottengo:
>
> > # /etc/init.d/apache2 restart
> > Stopping web server: Apache2Syntax error on line 1 of
> > /etc/apache2/mods-enabled/php4.load:
> > Cannot load /usr/lib/apache2/modules/libphp4.so into server:
> > libclntsh.so.10.1: cannot open shared object file: No such file or
> > directory
>
> Per riavviare apache devo riavviare il pc e mi sembra di essere
> ritornato a winzoz... Poi anche il log rotate mi fallisce dicendo:
>
> >/etc/cron.daily/logrotate:
> >Syntax error on line 1 of /etc/apache2/mods-enabled/php4.load:
> >Cannot load /usr/lib/apache2/modules/libphp4.so into server: libclntsh.so.10.1: cannot open shared object file: No such file or directory
> >error: error running shared postrotate script for /var/log/apache2/*.log
> >run-parts: /etc/cron.daily/logrotate exited with return code 1
> >
> >
>
> Ho inserito in /etc/apache2/envvars l'export di LD_LIBRARY_PATH, e allo
> stesso modo in /etc/environment ho settato LD_LIBRARY_PATH alle librerie
> oracle; se lancio ldd /usr/lib/apache2/modules/libphp4.so tutte le
> librerie vengono risolte correttamente (inclusa libclntsh.so.10.1)...
> non è strano?
>
> Qualcuno ha qualche idea o suggerimento per tentare di risolvere il
> problema.
>
ciao,
molto probabilmente l'ambiente con cui fai partire apache2 non
corrisponde all'ambiente con cui gira crond (e quindi il logrotate),
in particolare in quello del crond non viene impostata (o, se lo è,
non viene passata ai processi figli) la variabile di ambiente
LD_LIBRARY_PATH.
Hai due possibilità:
A) Assicurati che nel contesto in cui viene fatto il restart (o
graceful) di apache2 venga impostata LD_LIBRARY_PATH allo stesso
valore che trovi in /etc/init.d/apache2.
Hint: occhio allo script di logrotate per apache2
postrotate
export LD_LIBRARY_PATH=....
....
endscript
B)
Prima di iniziare la compilazione di php4 per far trovare al configure
le librerie oracle, oltre ad impostare LD_LIBRARY_PATH imposta anche
la variabile LD_RUN_PATH=$LD_LIBRARY_PATH.
Questo inserisce DENTRO la libreria (libphp4.so) le informazioni che
serviranno al linker per risolvere le dipendenze.
B è meno flessibile di A (se sposti le librerie) ma non dipende dalle
variabili di ambiente.
Spero di esserti stato di aiuto.
ciao,
daniele
_______________________________________________
Riminilug-general mailing list
Riminilug-general@xxxxxxxxxxxx
http://riminilug.it/mailman/listinfo/riminilug-general