*sigh* I should finish debugging before posting. I did a checkout of the svn repository, and the missing file is there. I don’t know who lost it, or when, but it doesn’t matter anymore.
OK, I have resolved this myself. Hopefully, this will be of use to some other poor amateur Linux administrator.
I installed PHP 4.4 from a tarball, and configured and built it. One of the config options is ‘–with-mysql’, which I of course specified. This is wrong. It must be ‘–with-mysql=/usr’. The former form causes PHP to use its own included copy of MySQL. WTF good is that? I don’t know, but it does cause random bugs and errors because its mysql and the one the system is using are out-of-sync. Once I re-built using the latter form, all is well.
PHP may be a nice language, but its implementation is teh suck. Perl rules!