I'm running Silverstripe 2.4.5 with the data object manager module, uploadify, and secure files module. We are moving the site from an older server running PHP 5.1.4 to a new server running PHP 5.3.3. I am using the shadowbox and flv features included in the dataobject manager to view video (flv) in pop-ups. Some videos require group membership to view, so the secure files module ensures the user has the rights to view the videos.
On the old server, there is no problem viewing protected files. The shadowbox pop-up plays the flv file. On the new server, using the same code (SS2.4.5), unprotected files can be viewed with no problems, but for protected files only 10KB to 20KB of the file is sent before the connection quits.
Here's what I've tried so far. I'm hoping someone may have some other ideas:
1) I've extracted the relevant code from the protected files module and created a pure php page that uses the same essential code but runs outside of silverstripe. When shadowbox points to this test page, the video plays as normal (had to use ModRewrite to redirect a test.flv to a test.php...but all worked fine).
2) If I have the appropriate rights, I can access the file directly by going to the url of the FLV file in the assets directory. The entire file downloads. (I also protect a few PDFs which work fine on the new server).
3) The new server has a minimal install of apache 2 and php 5.3. I added an flv type so that the video comes through with a mime type of application/octet-stream. I have reviewed other important php settings like max execution time (30 seconds). Output buffering is set to 4096, zlib output compression is off, session use only cookies is off.
4) Doing logging at each step finds that the file is opened and the buffer read and flushed about three times, then simply stops without throwing an error. Charles (packet sniffer) shows a status code of 200 OK but a message: Client closed connection before receiving entire response.
Any thoughts that may help me solve this problem?