Installing Magento 2 on Red Hat Openshift

Openshift is brilliant. Mostly because it’s free, but also for it’s more advanced features like being able to deploy your website simply pushing your master branch from git.

Red hat Openshift

Getting back to it being free, there are obviously limitations in the scope of the gears (I think of gears as servers). In trying to setup Magento 2 I came up to those limitations. According to How to Install Magento 2 on Openshift;

  • Magento 2 requires PHP 5.5+ and OpenShift currently has official cartridges of up to PHP 5.4
  • Magento 2 requires shit loads of space, and OpenShift free gears are limited to 1GB
  • Magento 2 requires MySQL 5.6+ and OpenShift currently supports up to MySQL 5.5 official cartridges

After following this excellent set of instructions, we managed to launch a full fledged Magento 2 store, hosted for free here. All you’ll need is a free openshift account, and the OpenShift Client Tools.

# Create a new OpenShift app with NGINX as web server
# Replace "123" by your actual api key & secrets and
# $myapp with your preferred app name.

# Write down the “Git Remote” ssh url that will be shown once the command finishes.
rhc create-app $myapp API_KEY=123 API_SECRET=123

# Install PHP 5.6 cartridge into the app
rhc cartridge add -a $myapp

# Install mysql-5.5 cartridge into the app
rhc cartridge add -a $myapp mysql-5.5

# Clone our repository and push it to your app, we will take care of everything for you.
git clone
cd magento2-openshift

# Remember to replace $myapp by your app’s name and YOUR_GIT_REMOTE by your actual repository url, the one that you got when you created the app (ie. should be something like ssh://*******
git remote add $myapp YOUR_GIT_REMOTE
git push $myapp master -f

Use Terminal to create symbolic links to your themes on your local drive

The Question?

Let’s say you have 2 WordPress sites running different databases and you want to see how your new theme looks on both of those websites at the same time, how would you do that?

An Answer

You want to be able to edit one theme and see that theme update on two different WordPress instances on your local mac so one way to do that is to create a symbolic link to the working theme in /wp-content/themes/<your-theme->name>

This means that when the apache (or whichever server you are using) looks for the theme, it finds it.

This assumes

  • You’re on mac
  • You can open the terminal and do basic cut & paste.

The Method

  1. Open Terminal.
    type terminal into spotlight
  2. Open TextEdit
    type textedit into spotlight
  3. Cut and paste the following into a blank TextEdit document
  4. The basic format for the linux operation we’re going to perform is this
    ln -s /path/to/original/ /path/to/link

    or a more real example might be this. Let’s say you have a working directory called node

    ln -s ~/node/{path-to-your-dev-theme}/wp-content/themes/listingslab/ ~/node/{path-to-your-second-site}/wp-content/themes/listingslab/
    The ln command is a standard Unix command utility used to create a hard link or a symbolic link (symlink) to an existing file. The use of a hard link allows multiple filenames to be associated with the same file since a hard link points to the inode of a given file, the data of which is stored on disk. On the other hand, symbolic links are special files that refer to other files by name.
  5. Copy & paste the above command snippet into your TextEdit window, replacing the paths {path-to-…} with more sensible ones of your own. Do this in text edit because you want to make sure it’s perfect before you Cut & paste the command into Terminal. You can find the path to a folder easily by dropping it into a terminal window.
  6. Once you’re happy that the command should do what you want it to, cut and paste it into the Terminal window to create the symlink.
  7. Look in finder to see if your symlink has been created.
  8. Test your second website administering the theme and checking the dev theme shows up.