Skip to content

Instantly share code, notes, and snippets.

@brendo
Created March 25, 2014 10:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brendo/9759068 to your computer and use it in GitHub Desktop.
Save brendo/9759068 to your computer and use it in GitHub Desktop.

It doesn't take very much to get Symphony running on your server, and most commercial hosts easily meet the minimum requirements:

  • PHP 5.2 or above
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.0 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent
Optional Server Capabilities

The following are not required to run Symphony, but will help you take advantage of some of the system's more advanced features. Both are fairly widely supported, so chances are your server is already good to go.

  • To take advantage of Symphony's Ensembles feature, you'll need to make sure PHP's Zip module is enabled (--enable-zip). If you're on a shared server, your host would have had to do this when PHP was compiled.

  • To take advantage of Symphony's dynamic image manipulation features, your server will need to have the GD2 library installed (--with-gd).

Determining if your Server will run Symphony

If you're unsure whether your host meets the requirements, try checking the list of hosts known to be compatible with Symphony. If your host isn't on the list, or you're still unsure about whether your server meets the requirements, you might consider emailing the host and asking them directly.

Now that you've decided on an installation method, let's get Symphony uploaded to your server. Follow the set of instructions that corresponds to the installation method you've chosen. The first two are for performing a package-based install—one for those who'd like to use an FTP client, and one for those who'd like to use the command line. The third set is for those who've opted to perform a Git-based install.

Using a .Zip Package and FTP
  1. Grab the current release package from http://www.getsymphony.com/download/releases/current and save it to a local directory.
  2. Extract the package.
  3. Using your favorite FTP client, connect to your server and upload the contents of the extracted directory to the desired location on your server. Note that you don't want to upload the directory itself (the one named symphony-n.n.n where n.n.n is the version number), only its contents. In other words, you want Symphony's index.php right in the directory where you're installing Symphony.
  4. Optional. If you'd like to start with a completely clean system (rather than starting with the default workspace), you can delete the workspace/ directory.
  5. Use your FTP client to temporarily set permissions on the root directory (the one you just installed to) and the symphony/ directory to 777 (read, write, and execute for all). Then set permissions on the workspace/ directory to 777 and tell your client to apply the changes recursively (to all subfolders). NOTE: We'll undo this step and tighten up permissions after installing.
Using a .Zip Package and Command Line
  1. SSH into the directory where you'd like to install Symphony (usually the server's web root).
  2. Execute one of the following commands, depending on whether your server supports wget or curl:
    wget http://www.getsymphony.com/download/releases/current && unzip symphony-n.n.n.zip && rm symphony-n.n.n.zip && mv symphony-n.n.n/* . && rmdir symphony-n.n.n
    (If you use the wget command, be sure to replace n.n.n with the version number of your download.)
    curl -L http://www.getsymphony.com/download/releases/current > symphony.zip && unzip symphony.zip && rm symphony.zip && mv symphony-n.n.n/* . && rmdir symphony-n.n.n
  3. Optional. If you'd like to start with a completely clean system (rather than starting with the default workspace), you can delete the workspace/ directory:
    rm -R workspace
  4. Set temporary permissions for the install script:
    chmod 777 symphony .
    chmod -R 777 workspace
    NOTE: We'll undo this step and tighten up permissions after installing.
Using Git
  1. SSH into the parent directory of the directory where you'd like to install Symphony (for example, if you're installing into your server's root at public/html, you want to SSH into public).
  2. If the directory you want to install into exists, make sure you've safely backed up its contents and emptied it. Then remove the directory (in the example above, you'd execute the command rmdir html).
  3. Clone the Symphony Git repository using the following command:
    git clone git://github.com/symphonycms/symphony-2.git directory
    (Be sure to replace directory with the name of the directory where you'd like to install Symphony. For example, is you're installing to your server's web root at public/html, you'll want to use html).
  4. Enter the new directory, and install the default extensions:
    git submodule update --init
    or, if that doesn't work:
    git submodule init
    git submodule update
  5. Optional. If you'd like to include the default workspace (rather than starting with a completely clean system):
    git clone git://github.com/symphonycms/workspace.git
  6. Set temporary permissions for the install script:
    chmod 777 symphony .
    chmod -R 777 workspace
    NOTE: We'll undo this step and tighten up permissions after installing.

Now that you've decided on an installation method, let's get Symphony uploaded to your server. Follow the set of instructions that corresponds to the installation method you've chosen. The first two are for performing a package-based install—one for those who'd like to use an FTP client, and one for those who'd like to use the command line. The third set is for those who've opted to perform a Git-based install.

Using a .Zip Package and FTP
  1. Grab the current release package from http://www.getsymphony.com/download/releases/current and save it to a local directory.
  2. Extract the package.
  3. Using your favorite FTP client, connect to your server and upload the contents of the extracted directory to the desired location on your server. Note that you don't want to upload the directory itself (the one named symphony-n.n.n where n.n.n is the version number), only its contents. In other words, you want Symphony's index.php right in the directory where you're installing Symphony.
  4. Optional. If you'd like to start with a completely clean system (rather than starting with the default workspace), you can delete the workspace/ directory.
  5. Use your FTP client to temporarily set permissions on the root directory (the one you just installed to) and the symphony/ directory to 777 (read, write, and execute for all). Then set permissions on the workspace/ directory to 777 and tell your client to apply the changes recursively (to all subfolders). NOTE: We'll undo this step and tighten up permissions after installing.
Using a .Zip Package and Command Line
  1. SSH into the directory where you'd like to install Symphony (usually the server's web root).
  2. Execute one of the following commands, depending on whether your server supports wget or curl:
    wget http://www.getsymphony.com/download/releases/current && unzip symphony-n.n.n.zip && rm symphony-n.n.n.zip && mv symphony-n.n.n/* . && rmdir symphony-n.n.n
    (If you use the wget command, be sure to replace n.n.n with the version number of your download.)
    curl -L http://www.getsymphony.com/download/releases/current > symphony.zip && unzip symphony.zip && rm symphony.zip && mv symphony-n.n.n/* . && rmdir symphony-n.n.n
  3. Optional. If you'd like to start with a completely clean system (rather than starting with the default workspace), you can delete the workspace/ directory:
    rm -R workspace
  4. Set temporary permissions for the install script:
    chmod 777 symphony .
    chmod -R 777 workspace
    NOTE: We'll undo this step and tighten up permissions after installing.
Using Git
  1. SSH into the parent directory of the directory where you'd like to install Symphony (for example, if you're installing into your server's root at public/html, you want to SSH into public).
  2. If the directory you want to install into exists, make sure you've safely backed up its contents and emptied it. Then remove the directory (in the example above, you'd execute the command rmdir html).
  3. Clone the Symphony Git repository using the following command:
    git clone git://github.com/symphonycms/symphony-2.git directory
    (Be sure to replace directory with the name of the directory where you'd like to install Symphony. For example, is you're installing to your server's web root at public/html, you'll want to use html).
  4. Enter the new directory, and install the default extensions:
    git submodule update --init
    or, if that doesn't work:
    git submodule init
    git submodule update
  5. Optional. If you'd like to include the default workspace (rather than starting with a completely clean system):
    git clone git://github.com/symphonycms/workspace.git
  6. Set temporary permissions for the install script:
    chmod 777 symphony .
    chmod -R 777 workspace
    NOTE: We'll undo this step and tighten up permissions after installing.

When installing Symphony, you can choose one of two methods: upload the contents of a .zip package to your server, or clone the Symphony Git repository directly. There are pros and cons to each method.

Package-based Install

If you've installed other web-based software before, this is probably a method you're used to. You simply upload the contents of the Symphony package to your server using either an FTP client or the command line. The benefits of this method are that it's usually easier for beginners and doesn't introduce any additional server requirements. Unfortunately it also means you'll have to repeat the process whenever you update Symphony.

Git-based Install

Git is a popular version control system that is used to manage Symphony's codebase. Using Git to install Symphony only takes a few commands, and has the added benefit of keeping your installation linked to the official repository (which makes updating Symphony a breeze). To use this method, though, your server must have Git enabled and you need access to the command line (usually via SSH).

If you're comfortable with Git, using it to install Symphony can really pay off in the long-run. But if in doubt, just go ahead with a package-based installation.

Point your browser to the Symphony install script, usually located at http://yourdomain.com/install/. You'll be presented with a nice graphical installer (Figure 1). Completing it should be fairly straightforward, but if there's anything you're unsure about, see the section-by-section breakdown below.

Website Preferences
  • Name: Enter a name for your website.
  • Date and Time
    • Region: Choose the region of the world in which your site is based.
    • Date Format: Select a date format to be used in the admin interface.
    • Time Format: Select a date format to be used in the admin interface.
Database Connection
  • Database: Enter the name of the database you created in Step 4.
  • Username: Enter your MySQL username.
  • Password: Enter your MySQL password.
  • Advanced Configuration
    • Host: Enter the MySQL host name, if applicable. Otherwise, leave the default value (localhost).
    • Port: Enter the MySQL port, if applicable. Otherwise, leave the default value (3306).
    • Table Prefix: Enter the desired table prefix, if applicable. Otherwise, leave the default value (sym_).
    • Use compatibility mode: Tick this box if your host doesn't allow character sets and collations to be specified for tables. Otherwise, leave unticked.
Permission Settings
  • Files: Enter desired permissions for files created by Symphony, otherwise leave the default value (755).
  • Directories: Enter desired permissions for directories created by Symphony, otherwise leave the default value (755).
User Information
  • Username: Enter the username you'd like to use to access Symphony's admin interface.
  • Password (and Confirm Password): Enter the password you'd like to use to access Symphony's admin interface.
  • Personal Information
    • First Name: Enter your given name.
    • Last Name: Enter your family name or surname.
    • Email Address: Enter your email address.
Install Symphony
  • Click the button!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment