How do I enable Passenger on my domain?

If your Ruby application won't start because of a missing gem, then you must install it locally using Bundler. For more information about using Bundler, please visit the following page:

This article describes how to enable Passenger on your domain within the DreamHost panel.

  1. Navigate to the Manage Domains page.
  2. Click the Edit button to the right of your domain under the 'Web Hosting' column.
    The 'Manage Domains' settings page opens:
  3. Scroll down to the 'Web Options' section and check the 'Passenger (Ruby/NodeJS/Python apps only):' check box.
    A WARNING dialog box then appears:
  4. Click the OK button. The panel adds the /public subdirectory for you.
  5. Click the Change settings button to save your changes.
  • Whenever the code or configuration files for your application are modified, you must create or update the modification date of the file "tmp/restart.txt" in the application's root directory tree in order to trigger Passenger to reinitialize the application. Passenger caches many resources so changes are not recognized unless the modification date of "tmp/restart.txt" is changed.
  • The most common method to make this change is to run the following command via SSH.
    [server]$ "touch tmp/restart.txt" . 
    
    (Ruby on Rails automatically creates a directory named "tmp". If you are creating non-RoR application, you may need to create the "tmp" directory manually.

The "public" subdirectory

  • Passenger maps the directory named "public" to be the document root for your domain/subdomain.
  • If a static HTML file named "public/index.html" exists, it's then used as the response for requests for the root document (i.e., "/").
  • If you want your application to handle requests for the root document, then you must first remove "public/index.html" (if it exists).
  • By default, Ruby on Rails creates a static "public/index.html" file.

Likewise, a file inside the "public" subdirectory that is named with one of the suffixes recognized by Apache (e.g., "public/foo.cgi" or "public/foo.pl") will be treated as an executable CGI script in the usual Apache fashion. (See CGI for more information.)

See also

Did this article answer your questions?

Article last updated PST.