FastCGI und php.ini


bofh1337

Erfahrenes Mitglied
Guten Morgen.

Ich habe bei mir (local) eine Entwicklungsumgebung mit Apache, Mysql usw.
Als PHP läuft je nach vHost das PHP 5.6, PHP 7.0, PHP7.1 oder PHP 7.2 als fastcgi.

Dabei gibt es aber 2 Probleme:

Das erste ist: In der geladenen php.ini, welche mir per PHP-Info angezeigt wird, wurden verschiedene Einstellungen angepasst, aber daran wird sich nicht gehalten.
ZB. wurde ein Memory-Limit von 256M eingestellt, aber PHP-Info zeigt mir 128M/128M an (egal welche PHP-Version)

Das ganze Konstrukt sieht so aus:

/etc/php/5.6/apache2/php.ini
/etc/php/5.6/cgi/php.ini
/etc/php/5.6/cli/php.ini
/etc/php/5.6/fpm/php.ini

/etc/php/7.0/apache2/php.ini
/etc/php/7.0/cgi/php.ini
/etc/php/7.0/cli/php.ini
/etc/php/7.0/fpm/php.ini

/etc/php/7.1/apache2/php.ini
/etc/php/7.1/cgi/php.ini
/etc/php/7.1/cli/php.ini
/etc/php/7.1/fpm/php.ini

/etc/php/7.2/apache2/php.ini
/etc/php/7.2/cgi/php.ini
/etc/php/7.2/cli/php.ini
/etc/php/7.2/fpm/php.ini

in jeder ini wurden 256M Ram und verschiedene Einstellungen verändert, aber im PHP-Info kriege ich jedes mal die Default-Einstellungen


Das 2. Problem: für PHP 5.6, 7.0, 7.1 ist xdebug vorhanden, aber das scheint irgendwie nicht zu laufen (obwohl es mir im PHP-Info angezeigt wird).

Für alle PHP-Versionen gibt es scheinbar nur ein xdebug, aber irgendwas ist bei mir seltsam:

umbrella 5.6 # find /usr -name xdebug.so
/usr/lib/php/20160303/xdebug.so
/usr/lib/php/20131226/xdebug.so
/usr/lib/php/20151012/xdebug.so

in den xdebug-inis (z.B. etc/php/5.6/mods-available/20-xdebug.ini) ist jeweils nur "zend_extension=xdebug.so" eingetragen.
Sucht der sich da selber die passende Version?
 

bofh1337

Erfahrenes Mitglied
Ok, das erste Problem hat sich erledigt. Statt des Apache sollte man auch den PHP-Service neustarten, jetzt stimmen die Einstellungen.
Das 2. Problem besteht aber trotzdem noch
 

bofh1337

Erfahrenes Mitglied
Es war etwas Tricky, aber xdebug läuft unter FastCGI.

Das Problem ist: es werden keine ".htaccess" akzeptiert,- diese werden vollkommen ignoriert.
Statt dessen gibt es nun die Möglichkeit, pro vhost eine ".user.ini" zu nutzen (im Hauptverzeichnis des vhost, also praktisch Document_root), damit kann man dann angeben, ob man für vhost XY das xdebug aktiviert haben will oder nicht,- oder 512MB Ram will oder doch lieber nur 64MB.

Einen kleinen Unterschied gibt es zwischen der ".htaccess" und der ".user.ini":

Was in der ".htaccess" so geschrieben wurde:
php_value xdebug.remote_enable on
php_value xdebug.profiler_enable_trigger on
php_value xdebug.profiler_enable on


wird in der ".user.ini" so geschrieben:
xdebug.remote_enable=on
xdebug.profiler_enable_trigger=on
xdebug.profiler_enable=on


jetzt läuft jeder vhost bei mir mir eigener PHP-Version, Rammenge und debug-Einstellungen,- fast so schön wie Mandantenfähige Server :D