Recently started a new job overseeing a large website for a university, and they use Concrete CMS. The way the site is setup seems odd to me – but my background is in design and marketing, not programming and networking. So, I wanted to get some input from those with more experience.
Apparently, they’ve been using Concrete for several years (since 5.7). Each section of the site is a separate Concrete5 enabled directory that shares Concrete5’s core application files using symlinks. All told, there are 130+ instances of Concrete running in this manner. Best guess, we have well over 1000 pages. I can’t tell for sure because with multiple instances I don’t have a site-wide XML sitemap.
The “web blueprint” document that they have simply says the reason it’s set up this way is “These separate CMS instances allow us to utilize the CMS throughout the site while retaining independent CMS users, privileges, pages, and files within each instance.” Another aspect of using these symlinks is that we symlink to different versions of Concrete and can easily upgrade/downgrade one section at a time. It seems to me that most of the reasons given for running these symlinked instance can also be achieved using advanced permissions — except for siloed files and upgrading a section at a time of course.
I have questions about this setup.
Is running 130+ symlinked instances less efficient than a single instance from a server resources standpoint? Or is it about the same?
Are there any other benefits to running 130+ symlinked instances of Concrete? Would it be better to run one instance and use advanced permissions to limit user editing to specific sections of the site?
The most current version we’re using is 8.5.5. We are in the process of upgrading PHP so that we can install the latest version of 9. I’m wondering if now is the time to start reducing the instances of Concrete.
Thanks for any insight you can give.