We've been running silverstripe with 4 web servers, each with their own set of files and a single database. We keep the files in sync using svn. It doesn't work well because files get out of sync and it seems like SS is caching something, making it harder to figure out which server contains what.
What is the right way to set this up? I'm thinking of mounting the install dir on a drive which all four servers can access, but we're worried about problems caused if two web servers try to modify files at the same time.
One thing to watch out for with multiple httpd servers is how you deal with user uploaded files. These cannot be uploaded to a single box since the others would miss out. In that case you need to setup a share or something similar.
it seems like SS is caching something
SilverStripe keeps a cache of all the templates and class files for speed. Ideally for this sort of deployment environment you would have a script that rm -rfed the cache folder after updating the code on each to ensure no old data is retained.
Willr, Thanks for your help.
I have the site set up now by doing a symbolic link for the web root to a shared drive. It's mostly working, but there are a couple of issues.
1) the /admin link is found on the server I used to install silverstripe, but not on the server that just shares the drive.
I think it has something to do with the contents of the .htaccess file in the webroot, but I'm not sure what to change.
2) Some images don't show up, although they work when open them on their own. I''ved tried doing a /?flush=all and removing the cache. But I get the same behavior.