I have completed my first Drupal site using the Aquia-Drupal Stack installer on my Windows 7 local machine. The following are the basics of what I am working with:

Acquia-Drupal Version: 1.2.24
Version attempting to upgrade to: 1.2.26
Installation Type: Windows

NOTE: When you download the Acquia-Drupal Stack installer, it loads a set of what I believe to be "core" Drupal files in the 'program files' directory of my hard drive. The installer also places a directory named 'sites' in my user file of the hard drive; c:\users\my-username\acquia-drupal. This is where the themes, modules, and site related php files reside.

Now I wish to migrate my localhost site to my webhost server which is hosted by JaguarPC which has MySql, PHP 5 and all the tools necessary to host a Drupal based site. However, JagPC facilitates Drupal using Fantastico via the Control Panel and I don't want to use this due to many posts I have read regarding Fantastico and Drupal bugs.

I have read the forum topic on migrating a localhost site a webhost server: http://drupal.org/node/838886 which was very helpful in identifying the MySql/PHP Admin steps needed to import the database files from the localhost and alterations needed to connect to the DB.

What I am confused on is what files to load onto the server, (core vs user or both?)

QUESTIONS:
1- Do I simply upload the entire user\acquia-drupal folder to my public_html folder or do the 'core' files residing in c:\program files\acquia-drupal need to be uploaded as well?

2- Is there a step by step tutorial that someone knows about that can assist me in the process of migrating my site from local to server?

3- Is there server side configurations that must be done by the hosting company in order to migrate my site successfully?

I have truly exhausted myself in seeking tutorials and direction in trying to accomplish including sending questions directly to the Acquia Site and forum, but it appears to have fallen on deaf ears and I am eagerly trying to get my completed site uploaded successfully. Additionally, the hosting company, although excellent in their support does not seem to know Drupal specifics.

Any and all help will be greatly appreciated.

Thanks

Comments

sparker888’s picture

Hi dougl, I'm doing the same thing. I have a multi-site Acquia Drupal stack setup on my Windows 7 machine.

In addition to the standard sites/default and sites/all, I have all my other Web site files in additional folders under the directory, such as:

sites/example1.localhost
sites/example2.localhost
sites/example3.localhost

Now, I'm trying to figure out the best way to upload the local sites to production servers.

I did one by copying one of these files and making it sites/example1.com, uploading everything and updating the site (after copying the database over of course). For the most part it works, but I'm getting small annoying errors.

I know there must be a better way. However, I've combed the Acquia site, Drupal site, and the Web for answers, and I've found nothing but bits and pieces to the solution.

Did you find a foolproof way to upload your sites to production from your Acquia Drupal Stack?

dougl’s picture

The only file that go to the server are the files in your 'sites' folder that is normally created in your users folder. The core stack files do not go since this is the Apache, PHP and MySQL core files that allow building a drupal site locally on a windows machine.

The database export/import process only required one of the three databases, (the acquia-drupal Db), to be imported. The information schema does not go to the production server. Not sure about your situation on what you're seeing for Db's in you PHPAdmin. Also not sure about your situation when it comes to Db's regarding whether you created an individual Db for each site you've built. In short, only import the Db that you created for the site you've developed.

Now, below are all the errors I encountered and what I did to correct:

The primary errors were created by a Byte Order Mark, (BOM), placed in the settings.php file. This marker is actually invisible and could only be seen by typing the url to the setting.php file directly, (i.e.- mysite.com/settings.php. If you see a single symbol at the top of the page after going to the URL, this is the BOM and needs to be removed. I was able to open the file in Dreamweaver of all programs, and was able to change to page properties to not include said BOM.

The last error in the page was from me enabling a module, (ApacheSolr), locally. When I uploaded to the server, hosting did not support ApacheSolr. This forced me to disable locally, re-export and import the db's into one db on the server.

Once that was done, I could access the site, but ran into more fatal errors related to the Adsense module. So again, I locally disabled, re-exported/imported the db's again.

Then I found a fatal error in another module that was due to the incorrect PHP configuration. This was corrected in the server by changing to PHP5 and uploading PHP.ini to the public_html folder. This was a big one that I overlooked and once this was corrected, the site actually ran quite smooth.

I also had an adsense injector issue that caused some errors. I think from a general standpoint, I would disable all Google modules prior to uploading and configure them once live.

As far as multiple sites, I'm a little lost and by coincidence, that is what I'm trying to figure out as I write this reply. I am guessing that you would upload all the folders that include 'includes, profiles, modules, themes, and misc'. Where I run into questions is the sites folder that actually holds 'all', 'default' and for me my new site 'newsite.localhost'. I'm guessing that I would exclude the default folder since this holds my original site. Once it's on the server, I'm not sure but I may have to rename it to 'default'. We'll see soon. If you find out more details to this, I would greatly appreciate a heads up. Hope the info above helps.

sparker888’s picture

Uploading the php.ini file is a new one for me. I didn't think of that one. I was just changing the configurations on the php.ini that was provided by the host (for this client, it's GoDaddy.com, so the php.ini is easily accessible). Other than that, I do exactly what you do - just upload the 'sites' directory for the site in question.

(No, I don't upload all the DAMP files. That's just a given heh heh. And I only upload the one site database.)

Thanks for the info on the settings.php file too. I had never heard of the Byte Order Mark (BOM) before.

Yes, the biggest concern is the proper way to handle changing the file directory names (within the sites directory) in the stack because they're named 'sitename.localhost'. When using the DAMP stack (Acquia Drupal) it puts some unusual code in your settings.php file at the bottom. Here's and example:

///////////////////////////////////////////////////////////////////////
//             Don't edit anything below this line!                  //
// This section is autogenerated by Acquia Drupal Control Panel      //
///////////////////////////////////////////////////////////////////////
//<@@ADCP_CONF@@>
$base_url = 'http://sitename.localhost:8082';

//D6 DB config
$db_url = 'mysqli://username@127.0.0.1:password/sitename';

//D7 DB config
if( !isset($databases) )
      $databases = array();
$databases['default']['default'] = array(
    'driver' => 'mysql',
    'database' => 'databasename',
    'username' => 'username',
    'password' => '',
    'host' => '127.0.0.1',
    'port' => 33066 );
//</@@ADCP_CONF@@>

What I have been doing is removing this code, uploading to the host, and changing the directory name to 'default' just as you suggested. It seems to work, but there must be a better way to do this.

It appears that Acquia is doing something with their Acquia Drupal Control Panel that will help with uploading to production. However, I cannot find any information on this on Acquia (yet anyway). I really love the way that the Acquia Drupal Control Panel allows you to either import or create new sites on a multi-site setup using their DAMP stack. It makes it very easy to create/control the database, php.ini, httpd.conf, and my.conf configuration files for PHP, Apache and MySQL as well as log files, etc. You have immediate access to your site and database (phpMyAdmin) with one click.

If I can figure out a smooth way to move from local multi-site development to live production with no fuss or hand coding, my maintenance would be cut by 90%. I could update the codebase (Drupal core or contributed modules) just once for all my Websites.

I'll share what I find out. If you find anything or if anyone else can chime in with their experiences or point to good resources, it would be much appreciated!

dougl’s picture

My localhost has two sites; Default, (a site I created a month ago), and ecomm1.localhost, (a new site I'm developing for a client). Yesterday I performed an update of the core from 6.16 to 6.19 using the AD download and following the directions provided at http://acquia.com/documentation/getting-started/ad-update/update-acquia-... . All went surprisingly well so I decided to update the core on my localhost. Unfortunately, this was met with lots of errors and troubles.

Using the site link for updating a site above, can anyone point me to the proper way to update the AD core locally?

marco71’s picture

Hi there,

I have been struggling to find the right info about this as well. However I susspect Acquia does sell you support on this :-) I must say the commented bit which say "Don't edit anything below this line!" seems pretty serious.
I offcourse allway go for these kind of things and change them :-) Just to see what happens.
I had a site as default site made in acquia-drupal stack installer Drupal 7.0 version.

Had lots of problems approching the site from the net. If I browse from the "localhost" machine to "mysite.nl" everything looked fine. But approching the site from a remote client css styles where not being implemented due to path still being localhost for those imports to the HTML page.

Anyhow I figured out eventually that

///////////////////////////////////////////////////////////////////////
//             Don't edit anything below this line!                  //
// This section is autogenerated by Acquia Dev Desktop Control Panel //
///////////////////////////////////////////////////////////////////////
//<@@ADCP_CONF@@>
$base_url = 'http://localhost:80'; <---- 

Changing $base_url = 'http://localhost:80'; to 'http://mysite.nl:80';
and I guess it could just as well be 'http://mysite.nl';

So now http://mysite.nl is not only available from the net/remote client but also the rest of the paths seem to be constructed correctly. Of which the most visable results css and javascript coming online properly.

Maybe someone can tell me since we are on this subject.
Can I just add more $base_url here if I want www. to refer to the same place?
Hope this was some help(I am no php pro)

Greets
Marco Schoolenberg

calefilm’s picture

Hi you guys. Since you are all using Acquia can you refer me to some documentation you have since used to explain how to work with a production site and live site? The amounts of extra work and confusion on this thread is very very disconcerting with respect to drupal's ease of use and documentation.