drupal

Launching a copy of a Drupal Website locally using Acquia Dev Desktop (DAMP)


The Acquia Developer Desktop enables you test a Drupal installation in a completely virtualized environment.  It is great for building and troubleshooting new features before deploying.  You will need a copy of a Drupal codebase and a SQL Dump File for the corresponding database to follow these steps.

  1. Download and Install Acquia Dev Desktop
    Full installation instructions - works on Windows and Mac
     
  2. Copy an existing Drupal Codebase
    Extract the codebase to a folder on your machine. 
    Default location: C:\Users\{username}\Sites\{drupal installation name}
     
  3. Install Database and Reference Website
    Open Acquia Dev Desktop and choose More... from the sites dropdown


    In the Settings dialog that opens, Click Import...

    In the Import site dialog, Point the Site path to your codebase, point the Dump file to the SQL and provide a new database name and site name.
     
    Click Import and wait a few seconds to a few minutes depending on the size of the SQL.
     
  4. Launch your copy of the website
    On the Acquia Dev Desktop, hit the dropdown below Go to my site and select your site.  Click Go to my Site.

Upload Limits in Drupal/IIS

Modifying your php.ini settings to the following will allow increased file upload limits:

  • upload_max_filesize = 50M
  • post_max_size = 50M

However, if you are using Internet Information Server (IIS), also check that there isn't a requestLimit set in the web.config. Drupal will show that a larger size is allowed via php.ini, but large files won't upload.

Here is the setting to change, on my system it defaulted to 10mbs:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
...
    <security>
<requestFiltering>
            <requestLimits maxAllowedContentLength="10485760" />
        </requestFiltering>
    </security>
...
  </system.webServer>
</configuration>

Changed maxAllowedContentLength to 52428800 and 50mb uploads worked immediately.

Using Drupal Feeds Module to Import Content from MS Access

Drupal Feeds Module works brilliantly, but there is a couple weird gotchas when working from MS Access to Drupal that are worth documenting:

  1. Seems self-explanatory, but since you are importing as .txt or .csv make sure you remove all carriage returns.  In MS Access this involves writing an update query and doing a replace on all Chr(10) and Chr(13).  e.g. Replace(Replace([myfield],Chr(10),"<br />"),Chr(13),"<br />")
     
  2. Although CCK Date fields import perfectly as MS Access dates, published dates do not.  This is because the published field in Drupal is a Unix Timestamp which is a quite different than Access dates. 

    To fix you need to first account for the difference between the start dates of the two time systems and then account for the fact that is decimal days and unix is seconds (or something like that.

    Formulas:

    Access -> Unix
    DateDiff("s", #1/1/1970#,[myAccessDate]) AS myUnixDate

    Unix -> Access
    DateAdd("s", [myUnixDate],
    #1/1/1970#) As myAccessDate
     

  3. Exporting from MS Access can also cause you problems with Memo fields.  Strangely, if you use Text Qualifiers your exported Memo fields will be truncated to 512 characters.  Don't do that.  There is a better way - export tables not queries and this won't happen.
     
  4. If Importing Taxonomy fields to Drupal, you'll need to edit your Taxonomies at least for now to Free Text.  You can set them back later, but at least for me, even if the Term existed it wouldn't insert unless I set it to Free Text.  Your mileage may vary.
     
  5. Apostrophes will cause you nightmares. They terminate strings early. Replace them with right apostrophes or quotes.
     
  6. Real HTML required. If you're like me and you've stored all your <HTML> as &lt;HTML&gt; in your ASP and .Net applications to get around Microsoft injection filters you'll have to undo all that silliness.

And I think that's it. If I remember any more from this evening I'll edit this post. Good times.