I've updated my server from Debian squeeze to Debian wheezy. On this server are several apache2 vhost which running php via mod_fcgid (I'm also using mod_suexec but this shouldn't be the problem). After the update all my php-sites are not working anymore, apache2 delivers php Source-Code if I request a site running php. All my log files

  • apache2/error.log
  • apache2/access.log
  • apache2/suexec.log
  • and the vhosts error/access logs

didn't come up with any errors, not even warnings. All neccesarry modules are installed and loaded. I searched for a possible solution for hours now, without any effort. Here is a sample vhost file ("sensitive" data is replaced, user/group and domain):

<VirtualHost *:80>
    ServerName example.com
    SuexecUserGroup john-doe john-doe
    AddHandler fcgid-script .php
    DocumentRoot "/var/www/example.com/data"
    DirectoryIndex index.php index.html

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    <Directory "/var/www/example.com/data">
        Options Indexes MultiViews FollowSymLinks +ExecCGI
        FCGIWrapper /var/www/example.com/php-fcgi/php-fcgi-starter .php
        Order allow,deny
        allow from all
        AllowOverride All
    ErrorLog /var/www/example.com/logs/error.log
    LogLevel warn
    CustomLog /var/www/example.com/logs/access.log combined
    ServerSignature Off

Any ideas anyone? I asked this question on superuser.com too, hope this is alright.

  • After spending like 2 hours searching for the exact same thing, I stumbled upon your post which saved my day :) Thank you! (syn cookies have been the culprit in my case too) – Mladen B. Mar 6 '15 at 0:26

Now I stumbled upon the solution by myself. The problem is caused by an update of mod_fcgid which changed the directives used in the vhost configs. The changes could be seen here (this is what I stumbled upon).

The directive

FCGIWrapper /var/www/example.com/php-fcgi/php-fcgi-starter .php

has to be changed to

FcgidWrapper /var/www/example.com/php-fcgi/php-fcgi-starter .php

The documentation says

"All directives have been renamed in order to use a common prefix "Fcgid". Underscores in directive names have been eliminated in favor of CamelCase. The old directive names will still work but are deprecated. To fix your configuration you can use the sed script build/fixconf.sed."

but it seems like the old directive names didn't work anymore for now. The changes have done the trick for me, maybe this will help someone else.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.