PHPsurveyor was written by Jason Cleeland. It uses php and mysql, was written for, and probably on, Windows, but loads without error or argument on Solaris 10 with apache2.
I've been using it to do a whole series of surveys - ranging in sizes from eight questions to 31, in complexity from simple yes/no answers to ten way paired comparisons, and in audience from two respondents to several hundred.
Everything works and the gotchas I've seen so far have been trivial.
Some of them are, well, retroactively predictable. For example, you can create the content for a tokens table (defining who gets to answer your survey) as a simple csv file and upload it to mysql under program control - but the first time I did it the upload failed when a 30 second time limit on the update triggered. As in Huh?
Turns out the package was written for Windows and checks for the Cntrl-M terminator. Run % unix2dos tokens.csv >f; mv f tokens.csv and a five hundred token table loads error free in about ten seconds on a late ninties Ultra2 running Solaris 10 on dual 296Mhz CPUs.
Others nicely illustrate how easily you (or at least I) get trapped into thinking we know how stuff works. The HTML source for the error message on the generated page says the font color is set to #ff000 - red by any other name, but it shows up in blue. Duh, it's all written for the PC - so find the CSS file, include the errormandatory class, and bingo: red error messages on screen (and red on my face for taking so long to figure out the obvious).
Overall, however, it's a very nice package, it does more than I want, the very minor problems I had with it were mine, and the point of today's blog is to say "Thank you, Jason: it's good stuff, and it works."