Installing Prosper202 on Amazon EC2

aws prosper202

Strangely enough I woke up this morning afternoon and decided I wanted a dedicated click server to monitor all my campaigns. I guess the main reason behind this is I’m getting quite involved in media buying and having a fast and reliable click server seems to be the way forward. I’m currently running Prosper202 on a shared Hostgator server and it does not work well at all.

What’s a click server?Well it’s simply a server dedicated to handling and tracking clicks from various online sources.

After some research on hosting companies (I had a look at Rackspace, Dotblock and AWS). I decided to go with AWS as they offer a free usage tier on their Micro EC2 instances which should be enough to get the ball rolling and you can easily upscale via the AWS management console.

For the actual application that will be handling the clicks I’ve gone with Prosper202 as I’ve been using it for some time now and best of all it’s completely free if you self host.

Getting Started

To get started create an Amazon Web Services (AWS) account, you can do that here. Once you’ve signed up it’s time to create your EC2 instance, head over to the management console and click EC2 from the Compute & Networking column.  You now need to enter the Classic Setup wizard by clicking the Launch Instance button. 

You now need to choose an AMI, I chose Amazon Linux AMI 2012 (64 bit). Select your instance type, I chose the T1 Micro as it’s currently free then continue using default settings until you reach Create Key Pair.

AMI

You have to create & download your key pair, I just used my name for this field. Once your key pair has downloaded you need to select a security group, just select quick start and launch your instance.

When your instance is active (shouldn’t take long) you need to head over to the EC2 dashboard and select your instance. We need to grab the Public DNS address (bottom of the main window) for setting up the web service via SSH.

public-dns

You might have to change the security settings for the quick-start group to allow http requests. Go to Security Groups via the Management Console, click on the quick-start group then the Inbound tab. Select HTTP from the dropdown and add rule.

Connecting to EC2 Instance via SSH

If you’re like me and using Windows you’ll  need a program like PuTTY to SSH to your instance or you can use your browser (Java required), guide here. I’m going to SSH everything using the browser method but the basic commands to connect are:

ssh [username]@[Public DNS] -i [key pair location]

So in this case it would be:

ssh ec2-user@ec2-54-235-1-219.compute-1.amazonaws.com -i ~/Ian.pem

Switch to superuser as we need to run shell commands with root permissions.

sudo su

Install Apache Web Server

We need to install a web server to run all our web services like PHP and MySQL. I’m going to install Apache on the instance using the following commands:

yum install httpd

Start the service:

service httpd start

You can now see a live page on your instance by visiting the Public DNS address in your browser. If you don’t see a page make sure the security group has the HTTP rule added.

Installing PHP

Next we need to install PHP as it’s a requirement of Prosper202. SSH the following commands:

yum install php php-mysql

Restart Apache

service httpd restart

You could test the PHP installation by creating a file containing <?php phpinfo() ?> and visiting that page on the instance.

Modify php.ini (important)

We need to enable PHP shortcodes in the php.ini file as Prosper uses short php tags (<? ?>) in their code.

vi /etc/php.ini

Find the line short_open_tag = Off  - change it to On (press insert to go into insert mode and esc key to exit insert mode)

Quit Editor

:wq!

Restart Apache

service httpd restart

Installing MySQL (Amazon RDS)

Because Prosper202 needs a MySQL database we need to set one up. I’m going to use Amazon’s RDS service but you can install a MySQL server through Yum by typing yum install mysql-server and creating databases and users through the terminal interface.

If you want to use RDS head over to the RDS console via the AWS console and launch DB instance to open up the setup wizard. Select MySQL community edition and fill in the following, taking note of username and master password:

DB Instance Class: - I chose db.t1.micro.
Multi-AZ Deployment: – No
Allocated storage: – 5GB
DB Instance Identifier: – The DB identifier, I named mine prosper
Master Username: – Pick one, write it down
Master Password: - Pick one, write it down and continue.

amazon-rds

On the next page all you need to do is name your database, write this down also as we’ll need it when configuring Prosper202. Continue to the Review page, make sure all settings are correct and launch it. Your database should be up and running within 15mins but we now need to add our EC2 security group to the RDS security group.

RDS Security Group

Within the RDS console select DB security groups and select EC2 Security Group from the drop down. Select the EC2 security group assigned to the Prosper202 instance (quick-start-1) and click add.

Untitled

Now you’l be able to see all the RDS info needed to setup Prosper202 by going back to the RDS console and selecting your DB instance, take note of the following fields:

amazon-rds-1

Download Prosper202

We now have all the requirements Prosper202 needs except the app itself, lets download and set it up.

Download & Move

cd /var/www/html
wget http://prosper.tracking202.com/apps/download/latest/prosper202.zip
unzip prosper202_1.7.2.zip
mv prosper202/* ./

What we are doing here is going to the root web directory, downloading the latest version of prosper and extracting it. Then moving the contents of the prosper202 folder to the root directory. For prosper to work it has to be in the root directory of a domain or sub domain.

* Please note, depending on how far in the future you’re reading this post the prosper202.zip version number might change.

You might want to delete the useless files and folders like _MCOSX, zip file and the empty prosper202 folder.

Delete Unwanted:

rm -rf prosper202
rm -rf __MACOSX
rm prosper202_1.7.2.zip

Point Domain Name to EC2

As I’ve said Prosper202 needs to run on an actual domain so we need to point the domain to our instance. To do this, setup Elastic IPsRoute 53 and update the DNS records at your domain registrar.

Elastic IPs – From the EC2 management console select Elastic IPs. Click allocate new address and select EC2 from the drop-down. Click associate address and select your instance.

Route 53 - From the AWS management console select Route 53. Click create hosted zone and enter your domain name and comment (description). You will then be able to see the hosted zone details save the DNS details (Delegation Set)

Update DNS & A Record – Depending on your domain registrar this step will be different. The overall goal here is to update your domain DNS to the delegation set and the A record to the Elastic IP address. If you have issues with this contact your registrar for assistance.

This process can take around 24-48 hours, so be patient.

Prosper202 Install Wizard

Once your domain name is mapped to your EC2 instance go to the URL and start the setup wizard. Follow the instructions and fill in all the fields with your ec2 info. The database host will be the RDS end point address. prosper-install

Once you have finished the wizard everything should be working perfectly. This took me a lot longer than expected as I ran into server errors due to that php.ini file not having short tags turned. When I finally changed it I didn’t restart Apache so I thought it was something else causing the error, utter frustration.

If you get a whole bunch of weird error text about time zones above the login screen  you need to edit the connect.php file in the 202-config folder.

Insert this at the top of the file, below the opening PHP tag:

date_default_timezone_set(‘Europe/London’);

So there we go, enjoy your new click server and I hope this guide was easy enough to follow. I’m now going to test how many clicks this server can handle but I’ll write a separate post for those findings.

prosper202 login

About Ian Kay

I specialise in PPC on various networks, SEO and affiliate marketing. Stay updated by subscribing and thanks for reading.

Current Comments

  1. Hi! I followed the link to your guide from CPAFix :) If I read Amazon’s site correctly, the free tier is for the first year only. In layman terms, could you give estimate how many clicks per month can you get to stay within the free tier, and how much is the cost for the second year? Is it possible to compare EC2 with VPS in terms of resources (RAM, CPU, etc)? This looks very rocket science to me!

  2. After some research the data limit for the free tier is 4.126 GB per month. I’m not use how many clicks that would equate to but probably quite a lot. There is a charge for using RDS which is $0.5c set up fee and $0.50 per 1,000,000 queries but you can just set up a mysql server in Linux and skip RDS.

    After the 1st free year it will cost $0.08 per hour ($2 per day) and you should be making more than that in a years time if you follow all that great info at CPAFix :)

    To be honest I’m not a server guy, haven’t studied it at all so if I can do it, anyone can.
    Cheers

  3. Nice info Ian,

    But I don’t recomand going with Apache. It’s no good than shared hosting when on a 613MB RAM. You should consider going with Litespeed or even better NGINX. I have a NGINX tutorial on CPAFIX,
    http://www.cpafix.com/f48/tutorial-how-setup-prosper202-unmanaged-vps-just-%248-month-3531/

    • Hey Tharindu, thanks for the reply. What shared hosting are you currently using? I had Prosper set up with Hostgator and the performance wasn’t great at all, rushed it with Blitz.io. How much RAM does your shared hosting come with?

      The Tracking202 team confirm they do not recommend their app being installed on shared hosting due to performance issues and a dedicated environment is required. Would love to see performance results between EC2 and your shared account, what you think? Maybe a few Blitz.io tests?

      Cheers

  4. Thanks for the guide but it’s not complete for example you can’t connect to EC using putty until you add the SSH rule to the security group (wasted 1 hour trying to connect until I added that rule ) .

    Also unzip prosper202_1.7.2.zip should be unzip prosper202.zip .

    After jumping through all this hoops still didn’t work even after moving the prosper directory to the root , but I am too tired and frustrated to solve the rest of the problems , maybe you can tell us how did you install it exactly !!!

    • Hey Jeffy, I didn’t use putty, just used the the internal connection method withing EC2. If you wanted to FTP to your instance you would have to set up a new security group.

      I did have an issue with the filename as the exact file name is prosper202_1.7.2.zip not prosper202.zip

      Thanks for the reply.

  5. Hey Ian

    I would like to know how you got around the CVV2 problem with Credit Card Verification on AWS, personally it’s giving me HELL!!!

  6. Hi,

    I just install everything.

    But I still get the weird error texts about time zone..no idea how to deal with it.

Share Your Thoughts

*