Question

Can anyone please advice me on how to move a Drupal 7 site from Aegir to a LAMP stack?

I've been handed the emergency project of moving a site to a new hosting. Ordinarily, that would be easy enough until I realise the site is loosing it's hosting in a matter of days, settings.php is not in the sites/default directory nor is the files directory. The structure is not standard D7 at all.

I later realised the site is currently hosted on Aegir which admittedly I know nothing about but I wonder if Aegir created the non standard structure. I used the tree command to show the structure below:

tree project/sites/ -L 2
core-1.23/sites/
|-- all
|   |-- drush
|   |-- libraries
|   |-- modules
|   |-- README.txt
|   `-- themes
|-- default
|   `-- default.settings.php
|-- example.sites.php
|-- sites.php
`-- www.clientsite.com
    |-- drushrc.php
    |-- email
    |-- files
    |-- googlef1245ba6b3c38a3c.hmtl
    |-- libraries
    |-- local.settings.php
    |-- modules
    |-- pdf
    |-- private
    |-- README.md
    |-- settings_.php
    |-- settings.php
    |-- themes
    `-- vendor

As you can see, the settings.php is in a sub-directory named after the actual live site, very unlike a vanilla Drupal 7 code structure.

I admit I am stymied by this.

Can anyone tell me if this is how Aegir layout the Drupal structure and how I can move this to a more traditional D7 structure ???

Was it helpful?

Solution

You wrote:

settings.php is not in the sites/default directory nor is the files directory. The structure is not standard D7 at all.

That's incorrect. From the Aegir documentation:

Aegir installs sites on a platform, which means it places the site directory in /var/aegir/platforms/<your_platform>/sites/<yoursite.com>. Many sites can all be installed alongside each other inside a platform's 'sites' directory. This is a standard, built-in Drupal feature known as 'multisite', and it is not unique to Aegir.

...and the official Drupal documentation on multisite:

It should be noted, however, that using the Aegir hosting system is preferred. It does all of the heavy lifting for you using secure best practices including automatically configuring virtual hosts for both Apache and Nginx, adding HTTPS support, running Composer commands, etc. See the documentation for setting up a "platform", Aegir-speak for a multisite codebase.

So when you ask, how I can move this to a more traditional D7 structure?, the correct answer is that you can't. Besides following Drupal standards, Aegir additionally follows best practices for security (e.g. setting secure file permissions) and sustainability (point-and-click upgrades of multiple sites at once). So you're far better off hosting Drupal sites with Aegir than the "traditional" way.

My recommendation would therefore be to set up a new Aegir instance elsewhere, and then remotely import the sites before the older instance is decommissioned. If you're running a LAMP stack yourself, there are very few reasons why you shouldn't be running Aegir for multi-site Drupal.

Licensed under: CC-BY-SA with attribution
Not affiliated with drupal.stackexchange
scroll top