Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Sep 2008 10:47:57 -0400
From:      FreeBSD <freebsd@optiksecurite.com>
To:        Matthew Seaman <m.seaman@infracaninophile.co.uk>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Multiple installation of one ports
Message-ID:  <48D1189D.5010803@optiksecurite.com>
In-Reply-To: <48D003E9.8070801@infracaninophile.co.uk>
References:  <48CFEC4B.1080009@optiksecurite.com> <48D003E9.8070801@infracaninophile.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
Matthew Seaman a écrit :
> FreeBSD wrote:
>> Hi everyone,
>>
>> I've been asked by a customer to install Drupal on one server to 
>> manage a new site. No problem yet. But, he also asked if it would be 
>> possible to install it for other sites.
>>
>> I know that there is a warning if you want to install a port that is 
>> already installed, but is there a way to bypass this? I know I could 
>> install it from the tarball from the website, but I want to be able 
>> to use portupgrade and portaudit to deal with it.
>>
>> Any suggestions?
>
> This is an interesting problem.  The FreeBSD ports system does not at
> present allow multiple installations of the same port, even into
> different ${PREFIX}es.  This make sense for most of the software dealt
> with by the ports system, but in the specific case of web based
> applications having the same application installed into multiple 
> locations
> in the same web tree is a perfectly reasonable thing to want to do.
>
> Here are some ideas as to ways you might consider for working round the
> problem and still being able to use the ports system in the usual way.
> None of these are tested by me in any way, and some of them may not
> actually work.
>
>  i) If you have spare IPs available, simply set up jails to run 
> second       and subsequent instances of drupal and apache.  This is 
> pretty much     overkill but it's a tried and tested strategy and 
> should be reliable.
>     The downside is you need to install at least enough of a system in
>     each jail to support running apache, etc. plus you have to maintain
>     each of the different jail environments separately.
>
> ii) If you haven't any spare IPs, you can install multiple copies of
>     the same port on the same machine by changing *both* $PKG_DBDIR
>     and $PREFIX in the environment to distinct values for each copy.  
>     Unfortunately changing $PREFIX doesn't give you complete freedom
>     to choose where a web app will be installed -- typically a web app
>     will be located at ${PREFIX}/www/app-name.  However by judicious
>     use of the Alias directive in httpd.conf you can make all those
>     different directories appear in the same web tree.  Like option
>     (i) you've still got multiple copies of ports to maintain, although
>     in this case, it's only the drupal port and anything that depends
>     on drupal that you need multiple copies of, rather than the entire
>     installation tree of ports.
>
> iii) A kind of wacky idea this, and it will only work for web apps whose
>     configuration files are contained within the web root.  That's 
> true      of most PHP based web apps -- other languages may differ.
>     Install the port once only, in the normal fashion.  Then create
>     loopback mounts of the application directory multiple time, each to
>     a union fs (see mount_unionfs(8)) where you superpose a separate
>     layer to contain just the configuration files for that instance.
>     It's conceptually complicated, but all the work should be at the
>     setup stage and after that, there's only one instance of your web
>     app to keep properly maintained.
>
> iv) I've no idea if this is at all possible with Drupal, but really 
> the     absolute easiest solution is to choose a CMS that lets you 
> manage     several different web sites (virtual hosts, web trees, what 
> you will)     within the same instance. 
>     Cheers,
>
>     Matthew
>
>
As usual, a very complete answer! Every time I see your name, I'm sure 
to find a clear and pertinent answer. Thanks for your support to the 
community.

As you outlined in your fourth possibility, I will go with the easiest 
solution. For web-based apps, I will install them directly, without 
using the ports if I have to run multiple instance of the same app. In 
this case, Drupal supports multiple sites so that's not a problem, but I 
heard that Joomla didn't support this.

Thank you and to everyone else that replied,

Martin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48D1189D.5010803>