Fcgi-php
Aus Wiki
Da mod_suphp unter apache 2.2 nicht zum laufen bekommen zu war, habe ich meinem Webserver endlich mal php mittels fcgid beigebracht. Dadurch ergeben sich auch erheblich flexieblere Möglichkeiten, den PHP Interpreter für verschiedene VHOST Sections oder gar Verzeichnisse einzurichten. Da irgendwie die ganze einstellungssache nicht ganz trivial war und mich nen Tag bastelei gekostet hat, Führe ich hier mal auf, was zu tun ist, dass es läuft.
Legen wir also mal los.
zunächst einmal brauchen wir einmal ein Paar pakete
apache mod_fcgid >= 2.2 php
in der httpd.conf muss nun folgendes stehen.
LoadModule fcgid_module modules/mod_fcgid.so AddType application/x-httpd-php .php SocketPath /var/run/fcgid.sock SharememPath /var/run/fcgid_shm SocketPath /tmp IPCCommTimeout 120 IPCConnectTimeout 60 DefaultMaxClassProcessCount 5 PHP_Fix_Pathinfo_Enable 1 ProcessLifeTime 36000 IdleTimeout 3600 SpawnScoreUpLimit 30 SpawnScore 1 TerminationScore 1 AddHandler fcgid-script .fcg PassHeader Authorization
Am wichtigsten ist hier vor allem der "PassHeader". Ohne ihn ist http-auth bei PHP scripten nicht möglich!
zusätzlich muss in den vhost section folgendes stehen
<directory /home/manuel/www/htdocs/> AddHandler fcgid-script .php FCGIWrapper "/home/manuel/.intern/fcgi" .php Options +ExecCGI </Directory>
Außerdem brauchen wir noch ein kleines Script, dass schließlich den php Interpreter aufruft. da können auch jeweils individuelle PHP Optionen angegeben werden. z.B eine andere php.ini
#!/bin/sh PHPRC="/etc/php/cgi-php5" export PHPRC PHP_FCGI_CHILDREN=2 export PHP_FCGI_CHILDREN exec /usr/bin/php-cgi
Dieses Script liegt bei mir in "/home/manuel/.intern/fcgi". Es wird in der httpd.conf mit der Zeile FCGIWapper angegeben.
Bedanken möchte ich mich hier auch bei Kevin, der mir einiges dabei geholfen hat.
