Yeah, I did that.
Man, this is so messed up. Once a directory becomes "forbidden", it stays forbidden, anything put in that directory becomes forbidden, too, even after an apache restart. Example:
I extract phpMyAdmin-blahblahblah, try to access it, forbidden. Rename the directory to "ma". Still forbidden. Entirely delete all the contents of the directory and create a new php file, both the directory and php file are forbidden. Move the php file to another directory, and the php file is still forbidden, even though other php files in that directory are not forbidden and have the exact same owner and permissions. It's like apache is somehow caching the forbiddenness of files and keeping them forbidden no matter what.
drwxr-xr-x 10 admin root 4096 Apr 29 02:25 .
drwxr-xr-x 8 admin root 4096 Feb 17 06:28 ..
-rw-rw-r-- 1 admin admin 18 Apr 27 22:40 index.php
drwxr-xr-x 2 apache admin 4096 Apr 29 02:19 ma
drwxrwxr-x 12 admin admin 4096 Apr 29 00:52 myadmin
drwxr-xr-x 11 admin admin 4096 Apr 23 23:06 phpMyAdmin-2.10.1-english
drwxrwxr-x 2 admin admin 4096 Apr 29 01:46 script3
drwxr-xr-x 2 root root 4096 Apr 29 01:46 script4
drwxrwxr-x 2 apache admin 4096 Apr 29 02:16 test
drwxr-xr-x 2 admin root 4096 Apr 28 20:09 test2
-rw-r--r-- 1 apache root 10 Apr 29 02:23 test2.php <=- fresh file, not forbidden
-rw-r--r-- 1 apache root 24 Apr 29 02:25 test3.php <=- copy of test.php, not forbidden.
drwxrwxr-x 2 admin admin 4096 Apr 29 01:15 testadmin
-rw-r--r-- 1 apache root 24 Apr 29 02:18 test.php <=- moved from forbidden directory, forbidden.
Edit: Got it working. So whack. I had to untar the files, re-tar the files, then un-tar them again, and it worked. The permissions are exactly the same. I still don't get it, but I've literally spent hours on this. Time to move on.