lighttpd forum lighty > lighty /php5 / gd-lib

Posted by Lars Scheithauer
on 03.05.2008 20:00
N'Abend, allesamt!

Ich habe Ubuntu 7.04 mit lighttpd, php5 und der libgd2 installiert. 
Leider erscheint die libgd2 nicht unter der phpinfo(), obwohl sie unter 
apache2 normal angezeigt wird. php5 wird bei lighty regulär über cgi 
eingebunden, und zwar über das conf.d/-Verzeichnis. Sowohl 
/etc/php5/apache2/conf.d als auch /etc/php5/cgi/conf.d zeigen per 
symlink auf /etc/php5/conf.d, und dort existiert der Eintrag gd.ini, der 
die gd-extension lädt. Nur leider nicht unter lighttpd / cgi. Aber alle 
anderen configs schon (Auszug aus phpinfo()):

lighttpd:
additional .ini files parsed
/etc/php5/cgi/conf.d/mysql.ini,
/etc/php5/cgi/conf.d/mysqli.ini,
etc/php5/cgi/conf.d/pdo.ini,
/etc/php5/cgi/conf.d/pdo_mysql.ini

Apache2:
additional .ini files parsed
/etc/php5/apache2/conf.d/gd.ini,
/etc/php5/apache2/conf.d/mysql.ini,
/etc/php5/apache2/conf.d/mysqli.ini,
/etc/php5/apache2/conf.d/pdo.ini,
/etc/php5/apache2/conf.d/pdo_mysql.ini


Beide Benutzer (für lighttpd und apache2) sind dieselben, die 
Berechtigungen stimmen, auch das direkte Eintragen von 
"extensions=gd.so" in die php.ini bringt nichts...

Hat jemand ne Idee? Danke im Voraus!
Posted by Olaf van der Spek
on 03.05.2008 22:16
Lars Scheithauer wrote:
> lighttpd:
> additional .ini files parsed
> /etc/php5/cgi/conf.d/mysql.ini,
> /etc/php5/cgi/conf.d/mysqli.ini,
> etc/php5/cgi/conf.d/pdo.ini,
> /etc/php5/cgi/conf.d/pdo_mysql.ini
> 
> Apache2:
> additional .ini files parsed
> /etc/php5/apache2/conf.d/gd.ini,
> /etc/php5/apache2/conf.d/mysql.ini,
> /etc/php5/apache2/conf.d/mysqli.ini,
> /etc/php5/apache2/conf.d/pdo.ini,
> /etc/php5/apache2/conf.d/pdo_mysql.ini

I guess you should copy/symlink gd.ini from apache2/conf.d to 
cgi/conf.d.
Although this should all be in /etc/php5/conf.d anyway.
Posted by Lars Scheithauer
on 03.05.2008 22:25
> I guess you should copy/symlink gd.ini from apache2/conf.d to 
> cgi/conf.d.
> Although this should all be in /etc/php5/conf.d anyway.

Darn, I just realized that I wrote in german, sorry.

apache2/conf.d and cgi/conf.d are symlinks to /etc/php5/conf.d, so both 
should read the same directory. Now the funny thing is, that if I call 
/usr/lib/cgi-bin/php5 (which is the cgi-version that's called) directly 
from the shell, it does correctly recognize and load all 
conf.d/*-extensions including the libgd2. But if lighttpd calls it, only 
four of the five conf.d/*-extensions are loaded - it skips the gd-lib, 
and I just don't have a clue, why.

I mean, if the *same* binary is loading the *same* php.ini with the 
*same* extensionsdir, why should it behave different?

I'm really stuck here... I could of course build my own system from 
source, but I'd like to stick with the maintainers version for 
convenience and I just don't get behind the problem.

Any ideas, what might cause the above described behaviour or what I may 
have forgotten to check?
Posted by Olaf van der Spek
on 03.05.2008 22:44
Lars Scheithauer wrote:
> I mean, if the *same* binary is loading the *same* php.ini with the 
> *same* extensionsdir, why should it behave different?
> 
> I'm really stuck here... I could of course build my own system from 
> source, but I'd like to stick with the maintainers version for 
> convenience and I just don't get behind the problem.
> 
> Any ideas, what might cause the above described behaviour or what I may 
> have forgotten to check?

I don't have a clue. I use Debian and I don't remember any issues with 
GD.
Posted by Lars Scheithauer
on 05.05.2008 18:55
Okay, Issue solved. Due to some reason I still don't understand, 
mod_fastcgi doesn't accept the gd.ini, but mod_cgi does.