• Welcome to affLIFT!
    We are happy you have decided to check out our awesome affiliate marketing forum. Register your account today to join our amazing community!
  • AdsEmpire is a fast-growing network that provides plenty of profitable opportunities at almost all verticals. Direct and worldwide smartlink offers!
    Join AdsEmpire Today

Guide 🔥 Prosper202 VPS Install Guide 🔥

White Label DSP


Grand Admln
Staff Member
Community Leader
Dec 1, 2018
As you have probably noticed I have been posting on various threads about Prosper202 and have even helped out a few members with their setup of Prosper202, so it wasn’t really a great surprise when Luke asked if I’d be interested in creating a Prosper202 setup guide for the community. What with the current climate and being on lockdown like the rest of the world I have a tad more time than I normally would have so thought, “Sod it, why not! Challenge accepted”.

After I began to collate all my notes that I had taken over the past few weeks during own my tests I soon realised that this was probably going to be a long post. Don’t get me wrong it’s not an overly complex thing to set up a VPS to run Prosper202, like anything it’s just a matter of completing the various steps to arrive at the required outcome. However, to compile a guide to show all these steps is not so simple or brief!

Now I guess I could have just made some bits a pre-requisite but then you would have to look elsewhere to find out how to do that bit and there is no guarantee you would follow the same process as me which could mean that you may face issues trying to follow my guide. So despite the rabbit hole expanding at a rate of knots I went all in and started at the beginning and went through to the end, just like any good story 😉

I have tried to be as clear as I can and not stray too much from the main aim so I hope it’s helpful and useful to members without being too long or overly boring and going over things that you really don’t want to know. Indeed you may feel that you can just skip parts as you know what you’re doing and that is fine, after all, time is money and money is time.

This guide is based on my own personal experience installing and setting up Prosper202. I’m not associated with them, I just think it’s a great piece of software plus the fact I love to tinker with servers and all things web-based, usually at the expense of me actually doing any real work!

This guide will centre on CentOS v8, not only because I have been using CentOS for many years now and have built up a good understanding of it but the fact it’s a rock-solid platform on which to host web-based systems. I also use nginx in this guide as I feel that for this specific use case it’s a better choice than apache (as for the most part members would be utilising lower-end VPS’s with limited memory which is where nginx shines over apache).

In addition to CentOS and nginx, I will be installing MariaDB, PHP 7.2 and components plus I will also utilise Let’s Encrypt to secure my server with SSL. Let’s Encrypt is an awesomely free way to get your sites and landers secured with SSL, but more on that later.

I’ll try to be as clear as I can be and go step-by-step, so you can follow along and build your very own Prosper202 server all by yourself but please do post questions and comments which I’ll do my best to answer and if necessary update the guide.

Due to the size of the guide, I will break it into several posts

Part 1 - This post silly 😝
Part 2 - Setting up the VPS
Part 3 -
Install MariaDB repo and software
Part 4 - Installing PHP & required components and Configuring our DB
Part 5 - Uploading and Installing Prosper202

Right with further ado let’s get going....

There are a few things that I need to mention before I get to the guide, you will need some software to connect to the VPS, the Prosper202 files & API, a domain name and of course a VPS.

Connecting to a VPS
I will not go into great detail here as this long post would end up being a MAHOOSIVE post. There isn’t any benefit for this guide discussing the merits of different software, so suffice to say you need to connect to the VPS to run commands and upload files.

I mostly use PuTTY which is an open-source SSH and telnet client and WinSCP when I’m on my desktop as it’s a windows machine


And on my MacBook, I tend to use iTerm and Cyberduck


But you should use whatever software you have installed or are most comfortable with.

Prosper202 API Key and download
Obviously, we need the Prosper202 files but we will also need an API key, the good news is that it’s all free; just create an account on the Prosper202 site.


Just fill out the form and submit it, when you are logged into the customer portal you can download the files required for the install, grab them and keep them safe. You will need them later.

You can view your API from the settings page but you do not need to worry about that at this stage, just ensure you create your account which will create your API and download the files.

Domain Name
You are going to need a domain name to set up your Prosper202 server, so head over to your favourite domain reseller. I predominately use Namecheap but you can use whomever you normally do just go grab yourself a domain before we begin.


Vultr VPS
As you are going to set up Prosper202 on a VPS you will obviously need a VPS!

I use both Digitalocean and Vultr for my VPS needs, although I tend to lean towards Vultr more as they’re slightly cheaper and I just prefer them tbh so I will use Vultr for this guide. I may do a Digitalocean section if people request it later as there are a few extra steps but for now, we’ll just focus on Vultr. Unless you know that you will be sending millions of hits right off the bat, I would suggest you start with a basic plan with 1GB RAM and 1 CPU. You can always upgrade this later if you need to.

Creating our VPS
Sign up to Vultr and create a new account or log in to your existing one. If you are signing up consider using my affiliate link you get $100 to play with https://www.vultr.com/?ref=8400333-6G

When you log in it should automatically load the Products page, if not click Products on the left-hand side.

If you have used Vultr before you know what is next but if not you will need to click on the blue circle on the right which will take you to Deploy New Instance page. On this page click Cloud Compute and choose your location, I suggest choosing a location as close to your target audience as possible to minimise latency, for the purpose of this guide I will select Dallas, US.

Scroll down to Server Type and select CentOS 8 x64 then under Server Size select 25GB SSD $5/mo

Leave the Additional Features as default (unchecked) and for server hostname, I usually use the prefix srv, so as I’m going to be using 202ts.xyz as my domain my hostname will be srv.202ts.xyz.

Personally I always like to take a second to double-check what I have just done before finalising anything to make sure I’ve not missed something or made any mistakes, so take a sec to review everything then click deploy.

Once you have clicked Deploy you will be taken back to the products page and will see your new VPS is installing.

When the VPS has completed you need to assign the domain name to it, click on its name (srv.202ts.xyz) to view the Server Information page, then click on the
icon next to the IP Address to copy the IP to the clipboard.

Once you have copied the IP to the clipboard, hover the mouse over the blue circle and select the second option Add Domain

Then paste the IP into the Default IP address box and enter your domain name in the Domain box then click Add.

This will create the relevant DNS entries on the Vultr name servers, now for it to work you will need to go back to your domain provider and update the name servers to point to the Vultr ones (ns1.vultr.com & ns2.vultr.com) so it will work.

I’m using Namecheap so in my Dashboard I just click MANAGE on the right of the domain

Then scroll down to NAMESERVERS select Custom DNS, set Nameserver 1 and Nameserver 2 to ns1.vultr.com & ns2.vultr.com and click the green tick.

My domain 202ts.xyz is now pointing at my VPS, it will take a little while for the DNS to propagate around the internet which is why you should always do this before you begin so hopefully by the time you need it it’s ready to go.

Now that’s the basics done we’re ready to get started on actually installing software on our new VPS which continues in the next post


  • 1587734382154.png
    52.9 KB · Views: 398
Last edited:


Grand Admln
Staff Member
Community Leader
Dec 1, 2018
Setting up the VPS
Before we can install Prosper202 we need to set up a web server and database, as I mentioned earlier I’m going to use nginx, MariaDB and PHP.

To get started you will need to SSH to your new server, in order to connect you will need the IP address, username and password, all of which can be found on the Server Information page. Another reason I like the Vultr interface is you just need to click things for it to be copied to the clipboard so it makes entering IP’s and passwords super easy.

So fire up putty (or whatever you are using) and enter the IP address in the Host Name (or IP address) box, select SSH and leave everything else as default then click Open.

As it’s the first time you will have connected it will show a PuTTY Security Alert about the server’s host key, just click Yes to continue.

This will open a terminal session and will be sitting at login as: simply enter root and hit enter, this will bring up [email protected]'s password:

Now you can type the password here but even easier is click the Copy Password icon on the Server Information page in Vultr to copy it to the clipboard then just right-click in the terminal window to paste it then hit enter, you will then be logged in and it will look something like this.

As you can see there is a large number of failed logins to this server even though we only just created it, this is usually down to script kiddies trying to get on your server, I tend to change the SSH port so as to help prevent a bit of that but for now, we’ll just crack on.

First thing I usually do once I have created a new VPS is run an update to make sure it’s up to date. Enter the following command and press enter, this will update the system software and kernel to the latest software.

dnf -y update

Should look something like this after

Install nginx and Let’s Encrypt
Nginx is a web server which will handle the web requests and is vital for Prosper202 (or any web site for that matter), Let’s Encrypt is a free SSL certificate authority which I use to get SSL certificates on my servers for nothing. Now it can seem very complex and feel quite daunting at first but if you follow my lead you should be fine.

We need to run the DNF command again to install nginx but this time we’re also going to install unzip as we will need that a little later and it saves us having to type 2 commands!

dnf -y install nginx unzip

Now we have nginx installed I like to create the folder that will home my site, I like to keep things consistent so I use the domain name as root and public_html folder to hold site files, this way I can keep any log files in the root folder and site/landing pages in the public_html folder. To create the folder just run the mkdir command with the -p option which will create all the folders if they don’t already exist. Remember to change the domain name to your domain name!

mkdir -p /var/www/html/202ts.xyz/public_html

That’s the simple part over we get to the slightly more complex and difficult part of actually configuring the site and installing Let’s Encrypt.

Installing Let’s Encrypt
I won’t go into much detail of what each part of this does as this guide is already becoming a bit of a monster. Just make sure you run each command one after the other, the openssl one will take a little while and will fill the screen with . and + as it does its thing but that is normal.

curl -o /usr/local/bin/certbot-auto https://dl.eff.org/certbot-auto
chmod +x /usr/local/bin/certbot-auto
openssl dhparam -out /etc/pki/tls/certs/dhparam.pem 2048
mkdir -p /var/lib/letsencrypt/.well-known
chgrp nginx /var/lib/letsencrypt
chmod g+s /var/lib/letsencrypt
mkdir /etc/nginx/snippets

Now that’s installed the Let’s Encrypt script onto our system we need to configure it so it works. This is done by creating 2 config files with the required settings. I have wrapped the creation of the files into 2 commands you can just copy and paste to make things easy, if you’re a bit more Linux savvy you can look at the files and tweak them to your needs but the ones below will get you A+ on https://www.ssllabs.com/

echo "location ^~ /.well-known/acme-challenge/ {
  allow all;
  root /var/lib/letsencrypt/;
  default_type \"text/plain\";
  try_files \$uri =404;
}" > /etc/nginx/snippets/letsencrypt.conf

echo "ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_stapling on;
ssl_stapling_verify on;
resolver valid=300s;
resolver_timeout 30s;
add_header Strict-Transport-Security \"max-age=63072000\" always;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;" > /etc/nginx/snippets/ssl.conf

For Let’s Encrypt to work and issue you an SSL certificate it needs to resolve your domain, remember we did that first so it would hopefully be ready? We can check this by using the ping command to ping our domain, ping {domain name}.

ping 202ts.xyz

All is well my domain name is resolving to my VPS IP address but don’t worry too much if it’s not at this stage. Go grab a coffee and retry in a bit.

We need to create a basic site so our SSL certificate will be issued. This is only needed for this part of the guide and we’ll replace this file in a bit, remember to change 202ts.xyz to your domain name!

echo "server {
  listen 80;
  server_name 202ts.xyz;
  include snippets/letsencrypt.conf;
}" > /etc/nginx/conf.d/202ts.xyz.conf

The nginx service is not running at the moment so we need to enable and start it. This can be done with just one handy command, then I check the status to ensure everything is working as expected.

systemctl enable --now nginx
systemctl status nginx

As you can see the nginx service is active and running so it’s all installed and working, press CTRL + C a couple of times to break out of the status.

Before we can actual visit our new site we need to open the firewall ports or we would be blocked. Its 2 commands one to add the relevant ports and one to reload the firewall config after.

firewall-cmd --permanent --zone=public --add-service=https --add-service=http
firewall-cmd --reload

We can now run the command to get our SSL issued, as we are running this command for the first time it will take a few minutes as it’s installing the requires components in the background. Again remember to change 202ts.xyz to your domain name!

/usr/local/bin/certbot-auto certonly -q --agree-tos --email [email protected]s.xyz --webroot -w /var/lib/letsencrypt/ -d 202ts.xyz

Now that the SSL certificate has been issued we can configure our site properly. Remember to change the domain name!

echo 'server  {
        listen 80;
        server_name 202ts.xyz;
        include snippets/letsencrypt.conf;
        return 301 https://$host$request_uri;
server {
        listen 443 ssl http2;
        server_name 202ts.xyz;
        ssl_certificate /etc/letsencrypt/live/202ts.xyz/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/202ts.xyz/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/202ts.xyz/chain.pem;
        include snippets/ssl.conf;
        include snippets/letsencrypt.conf;
        root /var/www/html/202ts.xyz/public_html;
        index index.php;
        location ~ [^/]\.php(/|$) {
                fastcgi_split_path_info ^(.+?\.php)(/.*)$;
                if (!-f $document_root$fastcgi_script_name) {return 404;}
                fastcgi_param HTTP_PROXY \"\";
                fastcgi_pass unix:/run/php-fpm/www.sock;
                fastcgi_index index.php;
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}' > /etc/nginx/conf.d/202ts.xyz.conf

Now we need to restart the nginx service for the new config file to take effect.

systemctl restart nginx

If we go to https://202ts.xyz/ we will see a 403 Forbidden page which is OK as we have not actually set up anything to display yet.

TIP: HTTP is set to automatically redirect to HTTPS, if you don’t want this you will need to edit the above file

If we look at the certificate you will see it’s issued by Let’s Encrypt and valid for 3 months.

Awesome free SSL but only for 3 months? Let’s Encrypt only issue certs for 3 months at a time but we can set up a cron job to automatically renew expiring certificates, we do that by running the following command.

(crontab -l 2>/dev/null; echo "0 */12 * * * root test -x /usr/local/bin/certbot-auto -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && /usr/local/bin/certbot-auto -q renew --renew-hook \"systemctl reload nginx\"") | crontab -

We can test our new SSL automation by running the certbot using the –dry-run option

certbot-auto renew --dry-run

That’s it we have installed and configured nginx with SSL support. Well done! :cool: (y)
Next, we will move on to MariaDB and PHP in the next post.
Last edited:


Grand Admln
Staff Member
Community Leader
Dec 1, 2018
Install MariaDB repo and software
I like to install MariaDB straight from the source so it’s always the latest version, so in order to do that we would need to create a MariaDB repo file which can be done in several ways, I usually run the vi editor with the file name, then paste the required info and save the file

vi /etc/yum.repos.d/mariadb.repo

Then press the i or INS key to allow you to paste into the file. Copy the below text and right-click. This will paste the text into the file. Then hit ESC key followed by : and wq and enter. This will create a new file with the copied information into it.

name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos8-amd64

If you are not very confident in the above method you can just copy the following line as is and paste into the server and hit return. It will do the same thing 😉

echo "[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos8-amd64
gpgcheck=1" > /etc/yum.repos.d/mariadb.repo

Now we have created the MariaDB repo you can install the software. This is done with 2 commands as we need to install some dependencies before trying to install the main software, otherwise, it will give an error.

dnf install -y boost-program-options
dnf --disablerepo=AppStream install -y MariaDB-server MariaDB-client

Once the install has finished it will say Complete!

As with the nginx service we need to enable and start the MariaDB service to make sure everything is working, so run the 2 commands again, but this time on the MariaDB service.

systemctl enable --now mariadb
systemctl status mariadb

All looks good. To exit from the status hit CTRL + C a few times.

Now before we create any databases we will install PHP and do the last few bits to finish off the software required before moving on to what you actually came here for - the Prosper202 install. :p
Last edited:


Grand Admln
Staff Member
Community Leader
Dec 1, 2018
Installing PHP & required components and Configuring our DB

Prosper202 is written in PHP so we will have to install it for it to function. This install is very simple, but we do have to tweak some settings after install to ensure it works with our nginx web server.

To install simply run the following command which installs PHP and all the required components.

dnf -y install php-mysqlnd php-fpm php-opcache php-gd php-xml php-mbstring php-json php-zip

Now we need to edit a couple of files so the php-fpm service can interact with the nginx service properly, the files are:

/etc/php-fpm.d/www.conf – we need to change the user and group to nginx from apache

/etc/php.ini – increase the max input time from 60 to 90

You can edit these files manually or just run the commands below which will search and replace the parts that need to be updated.

sed -i -e "s/user = apache/user = nginx/" /etc/php-fpm.d/www.conf

sed -i -e "s/group = apache/group = nginx/" /etc/php-fpm.d/www.conf

sed -i -e "s/max_input_time = 60/max_input_time = 90/" /etc/php.ini

As we did with the other services we have installed you need to enable and start the PHP service which is called php-fpm.

systemctl enable --now php-fpm
systemctl status php-fpm

To exit from the status just hit CTRL + C a few times.

Now we have our VPS all set up with everything we need we can finally get on with installing Prosper202.

First, we need to create a database and user for our install, I am going to use the following for this guide but you can use whatever you wish; just make sure you make a note of them.

Database Name - p202_db
Database User - p202_usr

Database Password - Make sure you use a complex one, the following command will generate a random complex password and save it to a file called password.txt if you wish to use that

openssl rand -base64 12 > password.txt

You can view the password by running cat against the file, double click it to highlight it which will also copy it to the clipboard

cat password.txt

The commands to create database & user and grant required privileges are, remember to replace {REPLACE_WITH_PASSWORD} with your complex password!

mysql -e "CREATE DATABASE p202_db /*\!40100 DEFAULT CHARACTER SET utf8 */;"
mysql -e "GRANT ALL PRIVILEGES ON p202_db.* TO 'p202_usr'@'localhost';"

So now you have installed all the components we are going to need and created a database ready for the main event

Last edited:


Grand Admln
Staff Member
Community Leader
Dec 1, 2018
Uploading and Installing Prosper202

Right now we need to upload the Prosper202 files to our VPS and unzip them or you can, of course, unzip locally and upload them, whatever you find easiest.

Open WinSCP (or whatever SFTP transfer software you are using) select New Site to enter the server details and click Login

As with PuTTY previously on the first connection, it will display a Warning about the server’s host key, click Yes to continue

Once connected it will open the root home folder and look like this

Now change to the site folder to upload our files, it works just like any file explorer you have used before so you can double click folder names to change folder and drag your zip file just like you would in windows.

So we should now have our prosper zip file in the public_html folder we created earlier.

TIP: You can actually skip this step and download directly from the SSH session!

To download directly from the SSH session just use the following commands, remember to change your domain name!
cd /var/www/html/202ts.xyz/public_html
curl -o prosper202_1.9.55.zip https://my.tracking202.com/api/v2/premium-p202/download/p202paidDownload/{YOUR_API_KEY}

Jump back to our PuTTY session to continue and change to our site’s folder in if you haven't already.

cd /var/www/html/202ts.xyz/public_html

Unzip the Prosper202 files into the folder

unzip prosper202_1.9.55.zip

Move the sample config file to live config file

mv 202-config-sample.php 202-config.php

Update the config file with our database name, username and password remember to replace {REPLACE_WITH_PASSWORD} with your complex password!

sed -i -e "s/putyourdbnamehere/p202_db/" 202-config.php

sed -i -e "s/usernamehere/p202_usr/" 202-config.php

sed -i -e "s/yourpasswordhere/{REPLACE_WITH_PASSWORD}/" 202-config.php

And then we remove the zip file as it’s no longer needed

rm -f prosper202_1.9.55.zip

We now have a few permissions to sort out so our install will go smoothly

Set some folder permissions for nginx service

chown -R nginx: /var/www/html/202ts.xyz
chown -R nginx: /var/lib/php/session

As Vultr VPS’s come with SELINUX enabled we need to change some permissions to allow nginx to work properly, again remembering to change the domain name.

setsebool -P httpd_can_network_connect on
chcon -Rt httpd_sys_content_t /var/www/html/202ts.xyz/public_html

If you would rather disable SELINUX completely then you just need to edit the SELINUX config file and change enforcing to disable or permissive, you will need to reboot for it to take effect.

sed -i -e "s/SELINUX=enforcing/SELINUX=permissive/" /etc/selinux/config

Once rebooted log back in and run the setatus command to check that it is no longer enforcing


Check out this article if you want a bit more info on SELINUX


We are almost at the end now, we have completed all the command line parts of our installation we can now visit our site in your favourite browser to complete the final few steps of our Prosper202 install. If you have followed along so far you will be presented with the Prosper202 System Requirements page.

On this page, you will see that PHP Memcache and PHP Mycrypt are missing. This is OK as they are not present in the newer PHP version we have installed in this guide as they have been depreciated. We need to click the nice big green button at the bottom Install Prosper202 ClickServer Now

This will open a new page to get your API key that we created right back at the beginning of this guide, just click the green Click Here For Your API Key button

This will take you to the Prosper202 customer portal site, log in with your credentials

Once you have logged in it will reload the original page with the API key field populated with your API key.

TIP: If you get a Whoops, looks like something went wrong. error don’t panic, you can manually populate this page using the following URL and your API key


You can get the API from the customer portal page after you have logged in, it’s in the top left:

We now need to click the green Save API Key & Install Prosper202 ClickServer to continue to the final part of the installation:

On the next page fill out your email address, user name, password and select the Time Zone you wish to use, then click the green Install Prosper202 ClickServer button to complete the installation.

It will take a few minutes to complete but once it’s done you will be redirected to the Success! page which will remind you of the user name and password and give you the login page URL.

TIP: If you have any issues with the final installation parts try using an incognito (private) window

That’s it! You have successfully set up your VPS, installed all the required software and got your very own Prosper202 server up and running. Just click on the login URL enter your credentials and sign in

You will be presented with some questions which you can either answer and submit or skip

Which will then load the Prosper202 main page, that’s it you are all done you have managed it, you set up, configured and installed your very own Prosper202 server and now you’re ready to start creating campaigns and smashing it 😊

I hope you found this guide useful, informative and not too overly complicated, please do let me know what you think and if you think any parts can be improved or made clearer.

If you have any issues with the guide or your install post here and I will do my best to help you resolve them and get you up and running.

And of course please let me know if you used the guide and managed to set up your own server, I really would love to hear how everyone gets on.

You never know might inspire me to write another guide on something else :p


  • 1587744398644.png
    96 KB · Views: 386
Last edited:


Active Member
Apr 7, 2020
Hey @agentf , it's really great that you are going to write this guide! My first tested tracker around 2-3 weeks ago was just Prosper202. How do you like it? The biggest con side in my mind is it's not as convenient as most of other trackers, when adding traffic resources and networks. Not so many templates, correct me if I'm wrong, as I couldn't remember so well.


Grand Admln
Staff Member
Community Leader
Dec 1, 2018
Hey @agentf , it's really great that you are going to write this guide! My first tested tracker around 2-3 weeks ago was just Prosper202. How do you like it? The biggest con side in my mind is it's not as convenient as most of other trackers, when adding traffic resources and networks. Not so many templates, correct me if I'm wrong, as I couldn't remember so well.

You do have to configure your traffic sources etc. but then you do on most cloud-based trackers as well, although some do have some templates which make your life easier but once it's done you're good to go. I might look to see if we can create templates then maybe share them :unsure:

Dang @agentf. What a beast of a guide. :p

Thanks, @Nick it took me longer than I thought it would in the end! :rolleyes: