PHP einbindung rausfinden - CGI / FCGI (FastCGI)

NacKteOmA

New Member
Ich bin derzeit einwenig unsicher wie ich sicher herrausfinden kann ob auf einen Server PHP als CGI oder FastCGI eingebunden ist.

Derzeit untersuche ich für einen bekannten einen Server wo er sich unsicher ist ob er es als CGI oder FCGI laufen lässt (aus gegebenen Anlass der aktuellen PHP Sicherheitslücke).

Auf meiner Debian 6 Maschine (welcher mit FCGI läuft) finde ich u.a. folgendes

Ausgaben welche mit FCGI / CGI zu tun haben:

ps aux - die Prozesse
PHP:
/usr/bin/php-cgi -c /var/www/php-fcgi-scripts/.....

apache2ctl status
PHP:
Server Version: Apache/2.2.16 (Debian) mod_fcgid/2.3.6 mod_ssl/2.2.16 OpenSSL/

apache2ctl fullstatus
PHP:
Process: php-fcgi-starter  (/var/www/php-fcgi-scripts/...

phpinfo
PHP:
Server API 	CGI/FastCGI
Configuration File (php.ini) Path 	/etc/php5/cgi
Loaded Configuration File 	/var/www/php-fcgi-scripts/....../php.ini
Scan this dir for additional .ini files 	/etc/php5/cgi/conf.d

--- cgi-cfgi ---
cgi.check_shebang_line	1	1
cgi.discard_path	0	0
cgi.fix_pathinfo	1	1
cgi.force_redirect	1	1
cgi.nph	0	0
cgi.redirect_status_env	no value	no value
cgi.rfc2616_headers	0	0
fastcgi.logging	1	1

--- enviroment ---
PHP_FCGI_MAX_REQUESTS 	100000
PATH 	/usr/local/bin:/usr/bin:/bin
PHPRC 	/var/www/php-fcgi-scripts/...../
PHP_FCGI_CHILDREN 	0
PWD 	/var/www/php-fcgi-scripts/.....

--- PHP Variables ---
_SERVER["PHPRC"]	/var/www/php-fcgi-scripts/....../
_SERVER["PHP_FCGI_CHILDREN"]	0
_SERVER["PWD"]	/var/www/php-fcgi-scripts/....
_SERVER["FCGI_ROLE"]	RESPONDER

Vhosts
- angaben zu FCGI Wrapper zu jeder Seite



Bei meinen Bekannten ist es ein Debian5, noch mit PHP 5.2 (leider) und es gibt lediglich als Ausgabe folgendes zu finden. Mich wundert hier insbesonderes die Ausgabe von apache2ctl und ps aux.

ps aux - die Prozesse
PHP:
/usr/bin/php-cgi

apache2ctl status
PHP:
Server Version: Apache/2.2.9 (Debian) mod_ssl/2.2.9 OpenSSL/0.9.8g

apache2ctl fullstatus
--- keinerlei ausgabe das irgendwas mit FCGI läuft oder mit CGI ---

phpinfo
PHP:
Server API 	CGI/FastCGI
Virtual Directory Support 	disabled
Configuration File (php.ini) Path 	/etc/php5/cgi 

--- cgi-fcgi ---
cgi.check_shebang_line	1	1
cgi.fix_pathinfo	1	1
cgi.nph	0	0
cgi.rfc2616_headers	0	0
fastcgi.logging	1	1

--- PHP Variables ---
_ENV["PHPRC"]	/var/www/scripts/...
_ENV["PATH"]	/usr/local/bin:/usr/bin:/bin
_ENV["PWD"]	/var/www/scripts
_ENV["SHLVL"]	0
_ENV["FCGI_ROLE"]	RESPONDER

Vhosts
- angaben zu FCGI Wrapper zu jeder Seite


Woran kann ich nun wirklich erkennen das PHP über FCGI geladen wird bzw. wie würde es bei CGI aussehen?
 
Das wäre für mich halt die Frage wie man dieses genau differenzieren kann, weil als CGI hatte ich es auch nie am laufen - dadurch weiß ich halt nicht wie es damit aussieht. Den Unterschied zwischen mod_php / FastCGI ist ja realtiv einfach festzustellen, nur CGI und FastCGI sind ja nun doch realtiv ähnlich.
 
Sieht man an der Konfiguration: mod_fcgid sowie dem FastCGI-Starterscript, welches für jeden VHost notwendig ist.

Eine reine CGI-Konfiguration sieht dagegen deutlich einfacher aus:

Code:
ScriptAlias /local-bin /usr/bin
AddHandler application/x-httpd-php5 php
Action application/x-httpd-php5 /local-bin/php-cgi
Eindeutig feststellen, kannst Du es in der globalen Apache-Config sowie im einzelnen VHost.
 
Back
Top