Jump to:

22972 Posts in 11596 Topics by 2824 members

General Questions

SilverStripe Forums » General Questions » multisites possible?

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Page: 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Go to End
Author Topic: 16610 Views
  • UncleCheese
    Avatar
    4085 Posts

    Re: multisites possible? Link to this post

    Yup. You just need to put the sapphire. jsparty, and cms folders in some central location (preferably above the web root) and then just symlink to them in your silverstripe root.

    I have a shell script i run to set up a new instance. Takes about 28 seconds. So there, Drupal. ;-)

  • astate
    Avatar
    Community Member
    35 Posts

    Re: multisites possible? Link to this post

    Hello UncleCheese,

    Can i have you shell script you run to setup a new instance ?

    Thanks

  • JamesS
    Avatar
    Community Member
    5 Posts

    Re: multisites possible? Link to this post

    Hi Uncle Cheese

    I too have been working with SS multisites and have written a shell script to install. Works great, however have problems with GD and creating the _resampled directory due to the relative path in the gd.php class no liking being outside the document root. I think I saw you post somewhere else about changing the path. What changes have you had to make to get multisites working seamlessly in addition to the symlinks and followsymlinks/open_basedir settings? Would really appreciate any help.

    Cheers
    James

  • ollie
    Avatar
    Community Member
    4 Posts

    Re: multisites possible? Link to this post

    UncleCheese

    Is it possible to do what you say on a reseller hosting plan (shared server) using cpanel?

  • banal
    Avatar
    Community Member
    901 Posts

    Re: multisites possible? Link to this post

    Hi ollie

    I don't think that's possible. You'll run into trouble creating these symbolic links from your Control Panel. Some hosting providers allow ssh access though. If you got ssh access, it is most certainly doable.

  • TWoSH
    Avatar
    Community Member
    13 Posts

    Re: multisites possible? Link to this post

    Hi guys!

    I've been studying SS now for some time trying to get a grip on the multi-sites "issue". There are a lot of posts lying around asking the same question over and over again; what exactly needs modification in order to use symlinks for multiple sites?

    Having read through quite a few of these without finding any specifics me and my coders have of course started digging in the code ourselves and here is what we've found out so far:

    In our test installations (using silverstripe version 2.3.1 on a linux server) we created symlinks for cms, jsparty and sapphire. We did not create a silverstripe-cache folder prior to installation. (Should we? Grateful for a clear answer on this one...) In our .htaccess files we have FollowSymLinks activated.

    Following UncleCheeses hints we started on File.php, Folder.php and GD.php.

    In the file sapphire/filesystem/GD.php you need to change:

    In function makeDir($dirname) the variable $dirname contains a relative path to the assets folder. By replacing .. in the variable with the return value of Director::BaseFolder() you get the correct path.

    In function writeTo($filename) the variable $filename contains a relative path to the assets folder. By replacing .. in the variable with the return value of Director::BaseFolder() you get the correct path. (I.e. same as in makeDir)

    These two changes seems to allow SS to create the _resampled folder and save resized images correctly under it. (Please comment on these changes UncleCheese, if you have the time...)

    Prior to the changes the system tried to create the folder and save the files under the linked "master" installation. However it is not perfect... For instance the small thumbnails that shows (should show) when you insert a image in the TinyMCE editor does not show because they are still saved in the master installations asset/xyz/ folder. We have not yet had enough time to figure out what to change to get this working. Help would be appriciated (UncleCheese?). GD.php should be fine, nothing more to do there, but File and Folder are still unmodified.

    UncleCheese says that it works great and you have a script that sets up a new sites in seconds. What I can't figure out is if this works good, why is it not implemented/changed/fixed in the core? Are there any caveeats to this that would hinder a normal installation for instance? Does it break anything else? Could you, UncleCheese, please post exact details on what needs to be changed in the files and your experience?

    I will post any details that we find out, but the going is slow, since this is our first endevour into SS code. (Haven't even done a site with it yet). But this is a very important issue for us since we are evaluating a move from our own CMS to SS. Being used to apply for instance security fixes and upgrades on one master installation for all our customers this is a big thing for us.

    Tim

  • quamsta
    Avatar
    Community Member
    29 Posts

    Re: multisites possible? Link to this post

    Wow! Thanks for the awesome reply. I've had this question regarding symlinks for a while too. Can we get this fixed in the next release?

  • JamesS
    Avatar
    Community Member
    5 Posts

    Re: multisites possible? Link to this post

    I haven't had a chance to try it out yet, but this is what Uncle Cheese told me:

    -----------------------------------------------------

    The basic premise is this:

    ln -s /var/ss/2.3.1/sapphire
    ln -s /var/ss/2.3.1/jsparty
    ln -s /var/ss/2.3.1/cms
    ln -s /var/ss/lib
    cp -R /var/ss/web_skel/* .

    "web_skel" is a directory containing my mysite structure, along with assets, and .htaccess (which includes an important FollowSymLinks flag). I have some page and dataobject classes I reuse on all of my sites as well as a DataObjectDecorator for Page, which includes some handy global functions like <% if MyIP %> for ip restricting template changes, and a few others.

    "lib" is a repository of all kinds of third party stuff I reuse. The latest jQuery is in there, shadobox, sifr, etc. It's a lot easier than installing it on a case-by-case basis. I even have some packaged up, so I can just put $JQuery or $Shadowbox on my template and it includes all of its dependencies.

    The mods to Image.php I believe can be as simple as finding ../ and replacing it with Director::baseFolder()."/" You have to do the same to:

    /cms/code/AssetAdmin.php
    /sapphire/core/model/ErrorPage.php

    -----------------------------------------------------

    16610 Views
Page: 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Go to Top

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.