apache2.2 mit php-fpm

Eigentlich nimmt man für sowas ja einen nginx, weil dieser von haus aus kein php modul hat schaltet man über nen socket oder port nen php dienst dahinter, da einige menschen aber einen an der waffel haben kommen Sie auf die idee das auch mit einem apache zu machen

Aber für einen Testcase musste ich das ganze nachbauen in php5.4 mit dem apache2.2, im apache2.4 schaut das ganze schon wieder anders aus :/ da man nie genug php pakete haben kann installieren wir gleich noch welche


apt-add-repository ppa:ondrej/php5-oldstable
apt-get update
aptitude install apache2 libapache2-mod-fastcgi php5-fpm php5 php5-cgi php5-common php5-curl php5-gd php5-geoip php5-imagick php5-imap php5-intl php5-ldap php5-mcrypt php5-pgsql php5-sqlite php5-xmlrpc php5-xsl php5-xmlrpc php5-xdebug php5-uuid php5-tidy php5-svn php5-sqlite php5-pgsql php5-mysql php5-memcached php5-memcache php5-mcrypt php5-ldap php5-intl php5-imap php5-imagick php5-geoip php5-gd php5-dev php5-curl php5-common php5-cli

nun noch die entsprechenden apache module aktivieren


 a2enmod rewrite  ssl aut* alias actions vhost_alias fastcgi

nun müssen wir noch das fastcgi modul einstellen, da es default nichts macht, man kann diese einstellungen auch für jeden vhost machen, aber wenn man nur eine php.ini hat und keine unterschiedliche, kann man diese auch zentral verwalten.


/etc/apache2/mods-enabled# cat fastcgi.conf 
<ifmodule mod_fastcgi.c>
  AddHandler fastcgi-script .fcgi
  #FastCgiWrapper /usr/lib/apache2/suexec
  FastCgiIpcDir /var/lib/apache2/fastcgi

  FastCGIExternalServer /var/www/cgi-bin/php5.external -host 127.0.0.1:9000
  Alias /cgi-bin/ /var/www/cgi-bin/

  AddHandler php5-fcgi .php
  Action php5-fcgi /cgi-bin/php5.external
  <location /cgi-bin/php5.external>
    Order Deny,Allow
    Deny from All
    Allow from env=REDIRECT_STATUS
  </location>

</ifmodule>

mkdir -p /var/www/cgi-bin

nun noch die php.ini und die konfiguration unter /etc/php5/fpm/ bearbeiten und schon läuft das ganze, wichtig hier ist die konfiguration unter pool.d, welche angibt ob ein socket oder eine ip/port verbindung erstellt werden soll


listen = 127.0.0.1:9000

service apache2 restart
/etc/init.d/php-fpm restart