I’m sure there are hundreds of posts already on how to do this. Openshift has a one click installation as well. It’s ok. I’ll still write my take on it. The idea is to learn something about how openshift works and how to deploy a simple application on the cloud. A one click install does not provide learning opportunity. However, taking the longer route and doing a few mistakes in the process does exactly that.
Let me make it clear, this is not written after I completed the process. Instead, I am yet to start the process. By the time I finish, I should be finished with the porting of my existing blog from a rented server space to openshift cloud. I owe a lot to this blog by amit shah apart from the documentation found on openshift and stackoverflow.
And to those who don’t know what is openshift, it is just like amazon AWS.
What is required before you start?
- Some knowledge of GIT
- A user account in openshift.
Before you start..
- Create an account in openshift, go to the settings page and create a namespace as well.
- Install all the tools that are required for deploying your application (in this case, a wordpress application) into the cloud. Installation of ruby, git and rhc are documented in the following openshift documentation.
- I also prefer to have these things done in a linux environment as everything just works out of the box (or rather command line). In windows, I normally have to set a whole lot of environment variables, download putty for ssh related stuff and so on. Anyway, it is a personal choice. You could try cygwin though I haven’t tried it myself in this particular case.
- Once those are installed, it is time to setup SSH keys. This allows you to remotely access your application. On linux, all you have to do is run
- rhc setup.
- On windows, you will have to play around with putty first. A detailed explanation is given here: Openshift Remote access.
- First, type
- rhc cartridge list
- This gives a list of all the cartridges that are available for you to create apps. Cartridges are nothing but platforms; ex: php, node.js, python, ruby etc. You will have to use the correct version numbers in the below commands to get things working correctly.
- In the terminal, just type the following:
- rhc app create -a xyz-t php-5.3
- where xyz is the name of the application and can be anything. This will take a few seconds and will create an application on the server. Also a copy of the code for your application will be checked out locally into a folder with the same name as your application.
- Now, add mysql cartridge to this app using the command:
- rhc cartridge add mysql-5.1 -a xyz
- Note down the credentials that are output by the terminal somewhere.
- Now, add phpmyadmin which is just like the previous step:
- rhc cartridge add phpmyadmin-4 -a xyz
- The credentials should be the same as the previous one.
- Now login to the following link: https://xyz-namespace.rhcloud.com/phpmyadmin/ . This is your own phpmyadmin page. Replace the app name and namespace with your own. Create a new user and a database there. The database should have full privileges for the user.
Now deploy wordpress…
- Download the wordpress bundle from WordPress.org. Unzip that file and place the contents of that file into the php folder of your app folder. It should look similar to the following example.
- Now open wp-config-sample.php file in a text editor and fill in the details there. You should use environment variables provided by Openshiftto do this. So, the contents would like this:
- define(‘DB_NAME’, $_ENV['OPENSHIFT_APP_NAME']);
- define(‘DB_USER’, $_ENV['OPENSHIFT_MYSQL_DB_USERNAME']);
- define(‘DB_PASSWORD’, $_ENV['OPENSHIFT_MYSQL_DB_PASSWORD']);
- define(‘DB_HOST’, $_ENV['OPENSHIFT_MYSQL_DB_HOST']);
- Also generate the secret keys as described in the
- In case of any problems, you could look at the wordpress 5 minute installation help.
- Now create/modify the following file: .openshift/action_hooks/deploy and make it look like the following: WordPress-example-deploy.
- Next, push your repository to openshift:
- git add –all
- git commit -a -m “Type some commit message here”
- git push -u origin master
- That’s it. Your wordpress blog is now almost ready. In the browser, type <app>-<namespace>.rhcloud.com. Replace <app> and <namespace> with what you have given.
- Now, enter all the details that is asked there. Your blog is now ready and you can start adding posts/pages.
- If you already have a blog somewhere else, you can now import the contents from there to your new installation using the tools provided in the control panel.
- In the wordpress control panel, in the general settings tab, change the wordpress address and site address to your custom domain.
- Type the following command so that your custom domain is shown:
- rhc alias add xyz
- rhc alias add xyz
- In your custom domain provider’s cpanel, you will have to change the cname so that it points correctly to your <app>-<namespace>.rhcloud.com.
There are further things to be done in order to gain full functionality. For example, facebook integration, change of uploads directory etc can be done. I’ll not cover those here.
And yes, by the time I finished this blog, I am now on openshift.
Total time taken: 6Hrs including time taken to write this blog. So, provided you are familiar with web tools, it is not really hard to setup a blog on the cloud.