SlideShare a Scribd company logo
1 of 56
Playing with PHP on Azure
A Zend experience
Cédric Derue – GWAB 2014
 Web Architect @ Altran
 Skills:
•  Zend Framework 2
•  ASP.NET MVC
•  JavaScript
•  NoSQL
 Twitter: @cderue
Cédric Derue
 You love PHP,
 You love scripting,
 You love pachyderms,
 You know Windows?
Who this session is for?
 Cloud Computing definition
 Windows Azure introduction
 Zend Framework 2 use case
 Azure Web Sites
 Azure Storage
Agenda
Cloud Computing origin
 Arpanet
 Amazon
 Google
 HP
 Microsoft
Windows Azure solution
Choose your ressources
App
A simple equation to summary Windows Azure
Blocs de
construction
applicatif
Compute Application blocks
Infra for building and deploying apps
 Evolutive and scalable
 Fault tolerance
 On demand
 Pay for what you use
Windows Azure benefits
Azure free trial
Windows Azure Portal
Windows Azure execution models
Cloud Services
Mobile Services
Virtual Machines
Web Sites
Virtual Machines
Highly
configurable
Windows Server
or Linux
IaaS
Scalable
Web Sites
.NET, PHP,
Python, Node.js,
Java
IIS
PaaS
Scalable
Mobile Services
Android
iOS
HTML
Hybrid
Storage
Authentication
Push
Monitoring
MBaaS
Scalable
Cloud Services
Highly
configurable
IIS
PaaS (Web &
Worker Roles)
Scalable
How to choose the right(s) model(s)?
 Create a new Azure Web Site
 Start a new ZF2 app on Azure
 Add ZF2 modules
 Work with relational data on Azure
 Work with non relational data on Azure
 Install Windows Azure SDK for PHP
 Demonstrate reversibility
PHP Azure Web Site demo
Create a new Web Site on Azure
Configuring source control
Explore Azure Web Site(s)
Managing configuration
Scaling
 Modular
 Extensible
 High performing
 Secure
 Enterprise ready
 Community
Why Zend Framework 2?
> composer create-project
--repository-url=
"https://packages.zendframework.com"
-s dev
zendframework/skeleton-application
<path/to/install>
> composer update
> php -S localhost:8080 -t public/ public/index.php
Initialize a new ZF2 app
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="MyFixIt" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile"
ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory"
ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Web.config
> git remote add origin
https://cderue@zf2.scm.azurewebsites.net:443/zf2.git
> git remote -v
> git push origin master
Publishing with Git
First sign of life
http://zf2.azurewebsites.net
Understanding ZF2 app structure
Discovering ZF2 modules
http://modules.zendframework.com
{
"name": "cderue/zf2-myfixit",
"description": "MyFixIt Application for ZF2",
"license": "Apache License, Version 2.0",
"keywords": [
"framework",
"zf2",
"azure"
],
"homepage": "http://github.com/cderue",
"minimum-stability": "alpha",
"require": {
"php": ">=5.3.3",
"zendframework/zendframework": "2.2.*",
}
}
Composer
 ZfcUser  Authentication
 MyFixIt  Task Management
Which modules for our demo?
 Authentication is to verify that a person or
entity is what it claims to be.
 Authentication is not authorization.
Authentication
ZendAuthentication principle
Storage
ZendAuthenticationAuthenticationService
Adapter
Db LDAP … Db Session …
"require": {
"zf-commons/zfc-user": "dev-master"
}
Install ZfcUser module
<?php
return array(
'modules' => array('ZfcBase','ZfcUser')
);
 Post installation
 Installation
The MyFixIt module
 Domain Driven Design
 Dependency injection
 Table Storage
 Blob storage
 Environment specific configuration
 Reversibility
Exploring the FixIt module
 With Azure, data can be stored in different
systems like SQL or/and NoSQL databases,
blobs, drives, etc.
 Azure provides data management services
for reporting or Big Data computing.
Working with data
 Azure SQL Database
 Azure Table Storage
 Azure Blob Storage
 Others…
Working with data on Azure
$adapter = new ZendDbAdapterAdapter(
array(
'driver' => 'pdo',
'dsn' => '<dsn>'
'database' => '<mysql_db>',
'username' => '<db_user>',
'password' => '<db_user_password>',
'hostname' => '<hostname>',
)
);
Access to MySQL Azure with ZendDb
Store and access data with:
 Blob (large binary or text data)
 Table (non relational data)
 Queue (messages)
Azure Storage Services overview
 Storage in the form of tables
 Flexible schema
 High performance
 REST API
Azure Table Storage
Azure Blob Storage
Account Container Blob
cedric
pictures
movies Man of Steel.avi
Beyonce.jpg
Shakira.png
Explore Azure Storage
 Windows Azure SDK for PHP
 Zend Framework 2 components
 Symfony 2 bundles
Working with PHP on Azure
Windows Azure SDK for PHP
Windows Azure SDK for PHP
PHP Client
Librairies
Command
Line Tools
Azure
Emulators
Windows Azure
REST
API
Compute Storage Manage
My PHP application
Install Windows Azure SDK
"require": {
"microsoft/windowsazure": "*" },
"repositories": [
{
"type": "pear",
"url": "http://pear.php.net"
}
],
"minimum-stability": "dev"
}
 Installation
When you deploy an application on the cloud,
the reversibility must be taken into account to
allow execution on premise if you decide to
leave the cloud.
Think reversibility!
Switch beetween two configuration files:
 config/autoload/module.myfixit-
azure.local.php
 config/autoload/module.myfixit-
onpremise.local.php
Switch with env specific config
"require": {
"doctrine/doctrine-mongo-odm-module": "dev-master"
}
Install Doctrine ODM module
<?php
return array(
'modules' => array(
'DoctrineModule', 'DoctrineMongoODMModule'
)
);
 Installation
 Post installation
return array(
'doctrine' => array(
'connection' => array(
'server' => 'localhost',
'port' => '27017',
'user' => '<user_name>',
'password' => '<password>',
'dbname' => '<db_name>',
),
),
);
Connect to MongoDB with Doctrine
It’s time to demo
 New Relic
 Application Insights
 Zend Server (PHP only)
Monitoring your cloud applications
http://windowsazure-trainingkit.github.io/
http://blogs.msdn.com/b/microsoft_press/archive/tags/
azure/
http://www.pluralsight.com/training/
https://github.com/WindowsAzure/azure-sdk-for-php
https://www.windowsazure.com/fr-fr/support/legal/sla/
Resources
Windows Azure makes all you want …
…except French Kiss!
Summary
Thank you!

More Related Content

What's hot

Creating php cloud applications
Creating php cloud applicationsCreating php cloud applications
Creating php cloud applications
Cory Fowler
 

What's hot (20)

Андрей Бойко - Azure Web App для PHP и Node.Js разработчиков
Андрей Бойко -  Azure Web App для PHP и Node.Js разработчиковАндрей Бойко -  Azure Web App для PHP и Node.Js разработчиков
Андрей Бойко - Azure Web App для PHP и Node.Js разработчиков
 
Creating php cloud applications
Creating php cloud applicationsCreating php cloud applications
Creating php cloud applications
 
Azure App Services
Azure App ServicesAzure App Services
Azure App Services
 
Azure: PaaS or IaaS
Azure: PaaS or IaaSAzure: PaaS or IaaS
Azure: PaaS or IaaS
 
Building An Application For Windows Azure And Sql Azure
Building An Application For Windows Azure And Sql AzureBuilding An Application For Windows Azure And Sql Azure
Building An Application For Windows Azure And Sql Azure
 
ASP.NET Core 2.1: The Future of Web Apps
ASP.NET Core 2.1: The Future of Web AppsASP.NET Core 2.1: The Future of Web Apps
ASP.NET Core 2.1: The Future of Web Apps
 
The new Azure App Service Architecture
The new Azure App Service ArchitectureThe new Azure App Service Architecture
The new Azure App Service Architecture
 
Global Azure Bootcamp 2017 - Why I love S2D for MSSQL on Azure
Global Azure Bootcamp 2017 - Why I love S2D for MSSQL on AzureGlobal Azure Bootcamp 2017 - Why I love S2D for MSSQL on Azure
Global Azure Bootcamp 2017 - Why I love S2D for MSSQL on Azure
 
MongoDB on Windows Azure
MongoDB on Windows AzureMongoDB on Windows Azure
MongoDB on Windows Azure
 
Capture the Cloud with Azure
Capture the Cloud with AzureCapture the Cloud with Azure
Capture the Cloud with Azure
 
Embracing HTTP in the era of API’s
Embracing HTTP in the era of API’sEmbracing HTTP in the era of API’s
Embracing HTTP in the era of API’s
 
Identity in ASP.NET Core
Identity in ASP.NET CoreIdentity in ASP.NET Core
Identity in ASP.NET Core
 
Owin & katana
Owin & katanaOwin & katana
Owin & katana
 
(WEB203) Building a Website That Costs Pennies to Operate | AWS re:Invent 2014
(WEB203) Building a Website That Costs Pennies to Operate | AWS re:Invent 2014(WEB203) Building a Website That Costs Pennies to Operate | AWS re:Invent 2014
(WEB203) Building a Website That Costs Pennies to Operate | AWS re:Invent 2014
 
01_Migrate Web Sites to Azure Web Apps_GAB2019
01_Migrate Web Sites to Azure Web Apps_GAB201901_Migrate Web Sites to Azure Web Apps_GAB2019
01_Migrate Web Sites to Azure Web Apps_GAB2019
 
Oracle UCM Security: Challenges and Best Practices
Oracle UCM Security: Challenges and Best PracticesOracle UCM Security: Challenges and Best Practices
Oracle UCM Security: Challenges and Best Practices
 
Spsdc 2014 o365_power_shell_csom_amitv
Spsdc 2014 o365_power_shell_csom_amitvSpsdc 2014 o365_power_shell_csom_amitv
Spsdc 2014 o365_power_shell_csom_amitv
 
.NET Conf 2019 高雄場 - .NET Core 3.0
.NET Conf 2019 高雄場 - .NET Core 3.0.NET Conf 2019 高雄場 - .NET Core 3.0
.NET Conf 2019 高雄場 - .NET Core 3.0
 
Azure Bot Service
Azure Bot ServiceAzure Bot Service
Azure Bot Service
 
Design and Configure Azure App Service Web Apps
Design and Configure Azure App Service Web AppsDesign and Configure Azure App Service Web Apps
Design and Configure Azure App Service Web Apps
 

Similar to Playing with php_on_azure

Dnc2015 azure-microservizi-vforusso
Dnc2015 azure-microservizi-vforussoDnc2015 azure-microservizi-vforusso
Dnc2015 azure-microservizi-vforusso
DotNetCampus
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy Wordress
George Kanellopoulos
 
Windows Server 2012 R2 Jump Start - Intro
Windows Server 2012 R2 Jump Start - IntroWindows Server 2012 R2 Jump Start - Intro
Windows Server 2012 R2 Jump Start - Intro
Paulo Freitas
 

Similar to Playing with php_on_azure (20)

C fowler azure-dojo
C fowler azure-dojoC fowler azure-dojo
C fowler azure-dojo
 
Deep Dive OpenShitt on Azure & .NET Core on OpenShift
Deep Dive OpenShitt on Azure & .NET Core on OpenShiftDeep Dive OpenShitt on Azure & .NET Core on OpenShift
Deep Dive OpenShitt on Azure & .NET Core on OpenShift
 
PHP on Windows and on Azure
PHP on Windows and on AzurePHP on Windows and on Azure
PHP on Windows and on Azure
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
 
SVILUPPARE E GESTIRE ARCHITETTURE A MICROSERVIZI SU AZURE
SVILUPPARE E GESTIRE ARCHITETTURE A MICROSERVIZI SU AZURESVILUPPARE E GESTIRE ARCHITETTURE A MICROSERVIZI SU AZURE
SVILUPPARE E GESTIRE ARCHITETTURE A MICROSERVIZI SU AZURE
 
Dnc2015 azure-microservizi-vforusso
Dnc2015 azure-microservizi-vforussoDnc2015 azure-microservizi-vforusso
Dnc2015 azure-microservizi-vforusso
 
Just Another Word Press Weblog But More Cloudy
Just Another Word Press Weblog   But More CloudyJust Another Word Press Weblog   But More Cloudy
Just Another Word Press Weblog But More Cloudy
 
How to build a Citrix infrastructure on AWS
How to build a Citrix infrastructure on AWSHow to build a Citrix infrastructure on AWS
How to build a Citrix infrastructure on AWS
 
Microsoft Azure
Microsoft AzureMicrosoft Azure
Microsoft Azure
 
Deploying SharePoint @ Cloud
Deploying SharePoint @ CloudDeploying SharePoint @ Cloud
Deploying SharePoint @ Cloud
 
Windows azure overview for SharePoint Pros
Windows azure overview for SharePoint Pros Windows azure overview for SharePoint Pros
Windows azure overview for SharePoint Pros
 
Zend
ZendZend
Zend
 
Manage cloud infrastructures using Zend Framework 2 (and ZF1)
Manage cloud infrastructures using Zend Framework 2 (and ZF1)Manage cloud infrastructures using Zend Framework 2 (and ZF1)
Manage cloud infrastructures using Zend Framework 2 (and ZF1)
 
Windows Azure & How to Deploy Wordress
Windows Azure & How to Deploy WordressWindows Azure & How to Deploy Wordress
Windows Azure & How to Deploy Wordress
 
Windows Server 2012 R2 Jump Start - Intro
Windows Server 2012 R2 Jump Start - IntroWindows Server 2012 R2 Jump Start - Intro
Windows Server 2012 R2 Jump Start - Intro
 
Moving a Windows environment to the cloud - DevOps Galway Meetup
Moving a Windows environment to the cloud - DevOps Galway MeetupMoving a Windows environment to the cloud - DevOps Galway Meetup
Moving a Windows environment to the cloud - DevOps Galway Meetup
 
Automating Azure VMs with PowerShell
Automating Azure VMs with PowerShellAutomating Azure VMs with PowerShell
Automating Azure VMs with PowerShell
 
Running PHP In The Cloud
Running PHP In The CloudRunning PHP In The Cloud
Running PHP In The Cloud
 
Scaling asp.net websites to millions of users
Scaling asp.net websites to millions of usersScaling asp.net websites to millions of users
Scaling asp.net websites to millions of users
 
Introduction To CodeIgniter
Introduction To CodeIgniterIntroduction To CodeIgniter
Introduction To CodeIgniter
 

More from CEDRIC DERUE

Microsoft TechDays Tour 2015 - Approche DevOps Open Source pour les applicati...
Microsoft TechDays Tour 2015 - Approche DevOps Open Source pour les applicati...Microsoft TechDays Tour 2015 - Approche DevOps Open Source pour les applicati...
Microsoft TechDays Tour 2015 - Approche DevOps Open Source pour les applicati...
CEDRIC DERUE
 
Approche DevOps pour builder une solution robuste PHP avec Zend_Server et Azure
Approche DevOps pour builder une solution robuste PHP avec Zend_Server et AzureApproche DevOps pour builder une solution robuste PHP avec Zend_Server et Azure
Approche DevOps pour builder une solution robuste PHP avec Zend_Server et Azure
CEDRIC DERUE
 

More from CEDRIC DERUE (10)

Créer des applications intelligentes avec la recherche vectorielle dans Azure...
Créer des applications intelligentes avec la recherche vectorielle dans Azure...Créer des applications intelligentes avec la recherche vectorielle dans Azure...
Créer des applications intelligentes avec la recherche vectorielle dans Azure...
 
waypoint-with-github-for-a-paas-experience.pdf
waypoint-with-github-for-a-paas-experience.pdfwaypoint-with-github-for-a-paas-experience.pdf
waypoint-with-github-for-a-paas-experience.pdf
 
Building and deploying microservices to Azure with GitHub and Waypoint
Building and deploying microservices to Azure with GitHub and Waypoint Building and deploying microservices to Azure with GitHub and Waypoint
Building and deploying microservices to Azure with GitHub and Waypoint
 
Patterns du continuous delivery avec azure dev ops et kubernetes
Patterns du continuous delivery avec azure dev ops et kubernetesPatterns du continuous delivery avec azure dev ops et kubernetes
Patterns du continuous delivery avec azure dev ops et kubernetes
 
How to deploy Zend Expressive microservices to Microsoft Azure
How to deploy Zend Expressive microservices to Microsoft AzureHow to deploy Zend Expressive microservices to Microsoft Azure
How to deploy Zend Expressive microservices to Microsoft Azure
 
From Zero to Hero : construire des applications PHP scalables avec Zend Serve...
From Zero to Hero : construire des applications PHP scalables avec Zend Serve...From Zero to Hero : construire des applications PHP scalables avec Zend Serve...
From Zero to Hero : construire des applications PHP scalables avec Zend Serve...
 
Microsoft TechDays Tour 2015 - Approche DevOps Open Source pour les applicati...
Microsoft TechDays Tour 2015 - Approche DevOps Open Source pour les applicati...Microsoft TechDays Tour 2015 - Approche DevOps Open Source pour les applicati...
Microsoft TechDays Tour 2015 - Approche DevOps Open Source pour les applicati...
 
Approche DevOps pour builder une solution robuste PHP avec Zend_Server et Azure
Approche DevOps pour builder une solution robuste PHP avec Zend_Server et AzureApproche DevOps pour builder une solution robuste PHP avec Zend_Server et Azure
Approche DevOps pour builder une solution robuste PHP avec Zend_Server et Azure
 
Rhinos have tea_on_azure
Rhinos have tea_on_azureRhinos have tea_on_azure
Rhinos have tea_on_azure
 
Hello mongo
Hello mongoHello mongo
Hello mongo
 

Recently uploaded

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 

Recently uploaded (20)

WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 

Playing with php_on_azure