DreamPress

From DreamHost
Jump to: navigation, search

Overview

DreamPress is DreamHost's Managed WordPress hosting. It's a scalable service that allows users to manage their WordPress sites with simple pricing, added benefits of server robustness, caching, and memory.

Behind the scenes, it ties together different pieces of our existing technology into a cohesive single unit. Below are all the details of this new service.

Technical Details

Each DreamPress instance is actually made up of two VPS instances: one web, and one MySQL.

The two VPS instances:

  • are provisioned automatically
  • are configured as a pair
  • are hosted on isolated clusters of hardware so other sites won't interfere with their stability or performance. All of them are hosted in our Virginia datacenter as of June 2013.
  • disallow root and sudo access (unlike the standard VPS service)
  • auto-scale RAM (memory) dynamically (customers cannot modify the RAM allocation)

In addition to the standard VPS setup, we have added Varnish as a caching layer, which:

  • is set up automatically for the DreamPress customer
  • listens on port 80
  • responds to web requests as a proxy in front of the Apache and PHP WordPress stack
  • is extremely efficient at caching content
  • allows this set up to scale to very high levels of traffic
Note2 icon.png Note: Apache runs on port 81 and is still publicly accessible.


Service Restrictions

DreamPress is a managed service, which means DreamHost has restricted certain actions that users can take that would irreparably break their WordPress site.

DreamPress is a one-site service in that a single plan covers a single domain. However, users can have multiple DreamPress instances for multiple sites, and they can mix and match it with shared, VPS, and dedicated hosting as well.

Current Restrictions

  • Unable to configure or modify the VPS instances.
  • Unable to manually set memory on the VPS. The memory is configured and scales automatically.
  • No admin users or root SSH keys on the VPS instances.
  • Unable to add or remove users or domains on the VPS. One SFTP (optional SSH) user and the domain you choose will be configured automatically.
  • Unable to add or remove databases or hostnames on the MySQL VPS. The database and hostname will be created automatically for WordPress.
  • Unable to merge databases to or from the MySQL VPS
  • Unable to delete the web or MySQL VPS instances independently. To delete the VPS instances, go to the (Panel > ‘Domains’ > ‘Dreampress’) page and click on the Downgrade or Delete buttons.
  • Unable to add Wildcard DNS as DreamPress does not utilize a standard DreamHost VPS.

In general, if it's not listed as a restriction above, it's still doable. Adding unique IPs or an SSL can be done on the (Panel > ‘Domains’ > ‘Manage Domains’) page.

Setting up DreamPress

Note2 icon.png Note: It may take over an hour to set up a new DreamPress installation, but the original one-click WordPress site remains functional until the switch occurs. Then, the DNS propagation may possibly delay the site from working. However, this is only in the case of upgrading and adding a new instance, not in the case of an import to an existing DreamPress.


Setting up a new domain

You can add any domain without hosting to DreamPress easily:

  1. Log into your panel at panel.dreamhost.com.
  2. Navigate to (Panel > ‘Domains’ > ‘Dreampress’)
    The Managed WordPress Hosting page appears.
    Dreampress-setup.png
  3. Enter a domain.
  4. Click ADD DREAMPRESS.
    You'll receive an email from DreamHost that confirms that DreamPress has successfully installed.

Setting up an existing domain

You can easily transfer any domain to DreamPress that is currently using WordPress as a One-Click Install.

Upgrade to DreamPress

  1. Log into your panel at panel.dreamhost.com.
  2. Navigate to (Panel > ‘Domains’ > ‘Dreampress’).
    On the "Managed WordPress Hosting" page, you’ll see a drop-down box which lists your current One-Click WordPress installs.
  3. Choose the domain you wish to upgrade to DreamPress.
    Upgrade.png
  4. Click UPGRADE TO DREAMPRESS.
    You'll receive an email from DreamHost that confirms that DreamPress has successfully migrated.

Import to Dreampress

If you already have an existing DreamPress or WordPress site created with the One-Click installer, you are also able to import content into your DreamPress site.

After you create your DreamPress installation, you’ll see an Import button on the DreamPress page:
01 Dreampress Account Page.fw.png
  • Click the Import button beneath the site into which you wish to import content.
A window pops up allowing you to select a site from which to import your content:
02 Dreamp import dialog.fw.png
  • Click the Start Import button to begin the import process.

This creates a clone/copy of the One-Click and changes the domain name. This is ideal for testing DreamPress, testing new plugins or themes, and so on, since it leaves the original site intact. It's also good for splitting out a single WordPress installation from a domain that has multiple apps. For example, you can turn mydomain.com/blog into blog.mydomain.com.

Note2 icon.png Note: If you're importing your WordPress install from a different domain name, the migrator will attempt to replace the domain/URLs. If it fails to do so, the email following the import will indicate that. In any case, you should always double check if this data is correct after the import has completed.


If you wish to migrate a different domain's WordPress content to a domain that you want on DreamPress, then you should add the domain first to DreamPress and then use the Import feature.

Migrating NON-One-Click Installs

Note2 icon.png Note: DreamHost support is currently unable to provide assistance for WordPress instances that aren't set up through our One-Click installer or are transferred from another host.


The following steps guide your through how to manually migrate an existing WordPress site:

  1. Export the Wordpress MySQL database(s). View the following wiki for further instructions:
  2. Download your entire WordPress installation. View the following wiki for further instructions:
  3. Open the (Panel > 'Domains' > 'Manage Domains') page.
    03 Dreampress Manage Domains.fw.png
  4. Click the Remove button to the right of the domain name.
    The domain then shows ‘none’ or ‘DNS Only’:
    04 Dreampress Hosting Removed.fw.png
  5. Open the (Panel > 'Domains' > 'Dreampress') page.
    The Add DreamPress dialog box opens:
    05 Dreampress new install.fw.png
  6. Click the Add Dreampress button to add a new DreamPress installation for the domain from which you just removed hosting.
    The new installation may take up to an hour or more to complete. You'll receive an email notification once the new installation is active.
    06 Dreampress pending.fw.png
    When the setup completes, your new DreamPress installation looks similar to this:
    06 Dreampress Account Created.fw.png
    Note2 icon.png Notes: In the above example:
    • The new username is wp_zy9yv2
    • The server is wp946235.dreamhostps.com.

    You will use this information to connect to your server via FTP and upload the backups you created in previous steps.


  7. You can import your database through phpMyAdmin or through a SHELL user. View the following wiki which explains each option:
    Note2 icon.png Note: The wp-cli tool is handy for the MySQL dump and import. You can read about this tool in the following wiki:
    • WordPress_wp-cli
    • Using the wp-cli tool is the fastest method.
    • To use the wp-cli tool, you'll need to make sure your DreamPress user has Shell access.
    • You can also visit the following wikis for further instructions on how to change the user type and how to log in via SSH:
    Enabling_Shell_Access
    SSH


  8. After connecting via SSH with your DreamPress user, run the following command (replacing "backup.sql" with the name of the MySQL backup that you uploaded previously):
    wp db import backup.sql
    
    Here’s an example of what that looks like in terminal:
    07 Dreapress terminal.fw.png

The database is now imported and your wp-config.php file links to the new installation.

Configuring DreamPress

Once you have at least one domain on DreamPress, the DreamPress page looks like this:

Wordpresspanel2.png

You can obtain more information or change a setting by clicking a desired button. Below is a description of each.

  1. WordPress Admin Panel –Takes you to the WordPress dashboard to set up and update your WordPress site. You can also access it at YOURSITE.com/wp-admin/.
  2. Your URL address – Your DreamPress URL. This is a link to your live site.
  3. FTP and MySQL – Information on FTP and MySQL settings.
  4. Domain Settings – This is the 'Manage Domains' page for your domain. The configuration has been optimized for WordPress.
  5. Downgrade – Downgrades your DreamPress service back to whatever hosting you had before.
  6. Delete – Completely erases your WordPress installation, including the associated database. Web and MySQL VPSs will also be destroyed.

Changing the DreamPress SFTP user password and switching the account type

  1. Open the (Panel > ‘Users’ > ‘Manage User’) page.
    08 Dreampress user.fw.png
  2. Click the Edit button to the right of the DreamPress user.
    The ‘Manage Users’ page opens:
    Wordpresspanel3.png
  3. Make a selection for User Account Type. To switch it to a shell user, select Shell account.
    Note2 icon.png Note: You must change your password before you can access the server via SFTP. For security purposes, we automatically generate a new SFTP user with its own username and a random password.


  4. To set a new password, enter it into the New Password and New Password Again fields.
  5. Click Save Changes. It may take up to twenty minutes for these changes to take effect.
    Note2 icon.png Note: There are only two allowed User Types for DreamPress: SFTP or SSH. Setting your User Type to FTP will not work with DreamPress.


Pricing and Billing

  • Pricing is set at $24.95/month/per site for the life of the service. The price is a flat rate and is not affected by VPS memory scaling.
  • You may have multiple DreamPress sites, but they will be billed independently.
  • There is also a 'special promotion at $19.95/month/per site. There is no limit on how many you can add with the promo pricing. The end date for the promotion has not yet been determined. Customers who add a site while this promo is active get to keep the this special price even when the promotion is over. If the site is removed from DreamPress (Downgraded or Deleted), or if the customer's account is closed/disabled, they may lose the special promo pricing.
  • Deleting or downgrading will give a credit for any unused portion of the billing period.
  • If the account is under 97 days and the account is closed completely, as seen on the (Panel > ‘Billing & Account’ > ‘Manage Account’) page, the DreamPress service fee will also get refunded.

User Support

DreamPress comes with support from some of DreamHost’s top tech support, who also have experience in WordPress. After intensive training and evaluation by our in-house WordPress core contributors, they were selected as the best-in-class to represent DreamHost and WordPress, and help you with any problems with your DreamPress site. If they don’t know the answer, they know how to find someone who does.

All that said, please note that DreamHost support is not a replacement for an actual website developer (should you need one); DreamHost can help install/configure plugins, but cannot make custom plugins or themes for you. Also if a plugin or theme is causing problems, the only support DreamHost may be able to provide is disabling the plugin/theme and suggesting alternatives.

Caching

Caching on DreamPress is done via a Varnish server. We install the plugin Varnish HTTP Purge on all new and migrated DreamPress installs, which will automatically flush the cache when pages or posts are published.

Manually Purging the Varnish Cache Via the Plugin

The Varnish HTTP Purge plugin (included in all DreamPress installs) comes with a Purge Varnish Cache button. This button can be found in the main dashboard of WordPress, and clicking it will purge the entire cache. USE THIS SPARINGLY. The whole point of caching is to cache. If you need to selectively purge the cache, you'll still need to do it via SSH for now.

Manually Purging the Varnish Cache Via SSH

The instructions provided in this article or section are considered advanced.

You are expected to be knowledgeable in the UNIX shell.
Support for these instructions is not available from DreamHost tech support.
Server changes performed by DreamHost may break your modifications. You, as the user, are responsible for troubleshooting and resolving issues with your customizations.

A Purge is an HTTP request using the method PURGE. In DreamPress, the request URI can be interpreted in several different ways, one of which is as a Perl Compatible Regular Expression (PCRE). If the URL includes characters that look like a PCRE (for example .*), then it will be treated as a PCRE, so be sure to always include .* if your intention is to purge multiple pages. See the DreamHost Varnish config for more details.

The DreamPress Varnish config uses IP-based Access Control Lists (ACLs) so that the purge request must come from the DreamPress machine. Purge requests from other IPs will show error 405 Not allowed.

To manually purge the Varnish Cache, you must change the DreamPress user to be a shell account, and make use of the curl command-line tool while logged into your domain via SSH.

The following is an example command of how to purge a single css file:

$ curl -X PURGE "http://mydomain.com/wp-content/themes/mytheme/style\.css"
Note2 icon.png Note: If your site is using www or any other subdomain, you must use the complete domain name in the purge URL. Make sure the domain part matches exactly with what appears when visiting your site.


Note that . (dot) and other PCRE metacharacters need to be escaped if they are present in the path. Do not escape . (dot) characters in the domain name.

If you are making changes to your theme files, or updating themes, an easy way to clear all theme files from your cache would be:

$ curl -X PURGE "http://mydomain.com/wp-content/themes/.*"

You can also target specific types of files using the following syntax:

$ curl -X PURGE "http://mydomain.com/wp-content/themes/.*\.js"
$ curl -X PURGE "http://mydomain.com/wp-content/themes/.*\.css"

FAQs

Is Multisite/WPMU Supported?

Not at this time.

Is email provided with DreamPress?

Yes. Email service is available on DreamPress-only accounts.

Is Secure Hosting (https) supported by DreamPress?

Yes. You can use a secure connection on your site if you choose to. Bear in mind, Varnish cannot cache https requests by design, so you won't see the performance gain Varnish can provide.

Can I alter my PHP configuration for a DreamPress site?

You can find instructions on how to edit your php.ini in the following wiki:

Can I develop my site on DreamPress while it's hosted elsewhere?

You can use a dreamhosters.com subdomain to mirror the site content. Please check the following wikis for instructions on how to set up the mirror:

Can I create cronjobs with my DreamPress user?

By default, DreamPress users are created as SFTP users so support for cronjobs is not immediately available. See the following wiki for further instructions on how to change the user type:

Can I use PageSpeed and Varnish together?

Yes. PageSpeed likes to put in Caching headers. To say 'not to cache', you need to put this in the .htaccess file in your domain's directory:

<IfModule pagespeed_module>
  ModPagespeed on
  ModPagespeedModifyCachingHeaders off
</IfModule>

You can add in the rest of your normal rules; just make sure you include ModPagespeedModifyCachingHeaders.

Can I use CloudFlare and Varnish together?

When you use CloudFlare or any other similar service, there's a proxy in front of the Varnish proxy. In general, this isn't a bad thing. The problem arises when the DNS sends the purge request to your domain name. When you have an additional proxy like CloudFlare, you don't want the request to go to the proxy; you want it to go instead to the Varnish server.

To fix this, add the following to your wp-config.php file:

define('VHP_VARNISH_IP','123.45.67.89');

Replace "123.45.67.89" with the IP of your Varnish Server (not CloudFlare, Varnish). DO NOT put in http in this define statement.

You can also set the option vhp_varnish_ip in the database. This will NOT take precedence over the define; it's just there to let hosts who are using something like wp-cli do this for you in an automated fashion:

wp option add vhp_varnish_ip 123.45.67.89

and

wp option update vhp_varnish_ip 123.45.67.890

To find your Varnish IP, go to (Panel > 'Domains' > 'Manage Domains') and click on the DNS link beneath the domain. The IP address entry for the www or blank A record is your varnish server. For example:

 www A 208.97.157.172

Can I use other plugins besides your Varnish plugin for caching?

Yes, but DreamHost does not provide support for them. It's possible to set up W3 Total Cache, for example, to use Varnish. You may need to enter your Varnish IP address. To find that, go to (Panel > 'Domains' > 'Manage Domains') and click on the DNS link beneath the domain. The IP Address entry for www is your varnish server. For example:

 www A 208.97.157.172

Are there any plugins I can't use?

At this time, DreamHost has not banned customers from using any specific plugins. That said, there are some plugins that DreamHost does not recommend you use with DreamPress as they're not the best fit. In general, if a plugin uses PHP Sessions, it's not going to perform well with Varnish and, thus, DreamPress.

  • Bad Behavior – The way it sets cookies isn't 100% compatible with Varnish and can cause caching not to set.
  • Simple Session Support – Uses PHP Sessions.
  • Captcha plugins – These generally apply cookies and/or sessions in a way that tells Varnish not to cache. Try not to use them on comment pages.
  • Advanced Custom Fields – This doesn't always play well with Memcached. Many people have reported that it works better on PHP 5.4

Can I have password protected folders?

Yes, but be careful. WordPress doesn't always play well with that, and Varnish won't know to flush the cache for that folder if it's not powered by WordPress. You may have to manually flush the cache for that folder, any time you update its contents.

How can I be sure my site is cached?

Since logged in users (that is, you) don't get the same cached page, this can be hard to figure out if you're not accustomed to looking at page headers. A useful tool is http://www.isvarnishworking.com/ which will not only tell you if it's working, but also when it's not, so you can pinpoint the problem and troubleshoot.