php4-cgi --> internal server errror

Benjamin Thelen (CCGIS) thelen at
Mon Aug 25 12:16:40 PDT 2003


sorry, I've already posted this into the German user list, but as I am
still completely stuck I hope to find some more hints/help here.

FreeBSD 4.7 (mod_php4 - a little changed)& 4.8 (php4-cgi - the latest)
Apache 1.3.27 and 28

We need to run php as cgi, because of the requirements of software we run
(called umn-mapserver - if somebody knows). Half a year ago I basically
followed the instructions I found on the umn-mapserver wiki-pages:

I quote, that's shorter:

PHP's default 'configure' behavior is to build a 'php' CGI executable.
It's the --with-apxs and/or --with-apache PHP configure options that
enable PHP to be built as an Apache DSO. build PHP as a CGI ... don't provide the --with-apxs or
--with-apache switch to the PHP configure.

Then once you have a 'php' executable, copy it to your server's cgi-bin
directory and add to your httpd.conf:

  AddType?  application/x-httpd-php .php3
  AddType?  application/x-httpd-php .phtml
  AddType?  application/x-httpd-php .php

  Action application/x-httpd-php /cgi-bin/php


As I could not find an ordinary php-port (not sure now, it's month ago), I
removed one "--with-apxs" entry within the Makefile from www/mod_php4 (!)
and php ran as cgi!

Half a year later, I updated the ports-tree and I was happy to see a
www/php4-cgi port and immediately checked this out on a test system. This
time, I did not edit the php4-cgi makefile of course, as I expected to
have php4 as cgi compiled. I again copied the php-binary, as said above to
cgi-bin and surprisingly saw only "500 - internal server error" and I
found a "Premeture end of script headers: /usr/local/www/cgi-bin/php in

One thing you have to know is, that our scripts are in
/usr/local/www/data/"our-php-application". This worked on this 4.7/this
edited mod_php4-system very well.

I posted to the Germany user list, checked google. I found a few hints,
but nothing really helped.

My question basically is:
How do I setup this php/cgi environment?

One way, I was told and can be found on is to add a
"#!/usr/local/lib/php" on top of every php-Skript and all scripts need
chmod a+x and need to be in /cgi-bin. This would work. But it is a little
uncomfortable way and the main thing is that it would not work with our
"php-application", which is a set of css, html, php, pictures, so
pictures, css, etc would be parsed, too!

There are other solutions, one with an AddHandler directive in httpd.conf,
but I don't get that running.

As it worked half a year ago and as there is a similar way in IIS, to map
an extension (.php) to an application (c:\php\bin\php.exe), I suppose that
there is a similar way, but I am just to blind to find the solution!

My second question is:
Why did it work with those instructions from umn-mapserver wiki-pages and
why does the same thing not work now?

One way to find out, what's wrong, was to cp /bin/cat to
/usr/local/www/cgi-bin/php. But the error is the same.

I would be very grateful for hints/help!

Thanks in advance!

Best Regards,

More information about the freebsd-questions mailing list