how to buy lotrisone in london furosemide dosage for adults florinef online from india buy antibiotics online uk fluconazole capsule 150mg boots lanoxin with prescription doxycycline mg mexico levoxyl online quibron t limited india flagyl er tablets from buy beta sitosterol better than saw palmetto micronase no prescription reviews how to order confido online metoclopramide online usa no prescription order elavil antidepressant bupropion 100 mg tab mylan purchase zestril in australia buy compazine paypal discount minipress mg best price for etodolac order priligy from canada without prescription best place to buy actoplus met in mexico dramamine prices cvs where to buy minomycin with echeck cardizem online shipping cost of neurontin 100mg l thyroxine canada online no prescription nizoral shampoo without prescription adalat xl 30 mg tablets metrogel mail order altace dosage forms where to buy good generic viagra cardizem cost in canada pamelor cost in canada buy benicar online with no prescription cipro mexican pharmacy buy ciplox online without a prescription crestor discontinued terramycin precio mexico clomid medicine for men emoquette usa cvs prices comprar plavix en argentina what is metoprolol lopressor used for reviews on tinidazolum what is erection packs 3 tablets buy flomax online how old do u have to be to buy claritin d brand lioresal buy is generic prometrium available in usa trandate online from canada order plavix cheap clopidogrel lowest buy jelly usa cheap kamagra online curacne india uk pharmacies online that sell viagra professional almetec fast canada discount antivert mg buy gyne lotrimin perth australia cost of mail oratane cialis soft review generic cyklokapron can i make aspirin lanoxin prices at costco estradiol valerate online from usa life brand allergy pills adalat pills online in the uk order valtrex from wellbutrin generic online canadian robaxin erection packs 2 refills purchase sarafem lowest price benicar cost at walgreens lasix medication information over the counter avalide mg pharmacy purchase starlix cheap nexium without a prescription from india cheap decadron sale uk how to take albenza what is flomax used for clomifene sublingual dosage buy zyvox inhaler canada should i increase my dose of cymbalta amitriptyline brands india purchase torsemide on line in mexico order furosemide online no presctiption buy blopress greece where do i tretinoin in usa billig terramycin online kaufen nombre generico de noroxin is liquid paxil available in canada purchase pyridium on line in usa fluticanose with prescription retin a 0,05 canada sale cialis soft 40 mg long time side effects nootropil online pharmacy uk alli discount remeron of canada buy clomifene online thru paypals wellbutrin xl 300 mg price atomoxetin birth control online uk cost of trial erection packs 2 without insurance ranitidine max dose prilosec noprescrition needed usa online pharmacy what is the correct dosage of bactrim lamisilate mg tablet estradiol implant 50mg minocycline pas cher hyaluronic acid cheap uk silagra no prescription needed glucotrol xl with no subscription xenical update cialis soft to buy from europe diarex where to get finpecia 1mg side effects can you order prednisolone deltasone prescription almetec discount voucher where to buy cheap generic nordette how to by hoodia online order clonidine lowest price what is benzac gel used for free hoodia pills order finpecia for purchase can you get effexor xr over the counter buy fincar tablets usa buy viagra boots without order procardia medication by mail purchase remeron on line in australia sertralina online india online pharmacy scams forums buy bactrim ds uk minipress over counter uk pharmacy directory manitoba what types of metocarbamol are there does pariet cause weight gain do i need a prescription for aldactone ordering brand viagra pills 100mg prednisolona coupons overseas pharmacy no prescription microzide motilium online without prescription bactroban in usa geriforte syrup online uk eltroxin pharmacy mail order can taking provera help you get pregnant order acai burn extreme buy zithromax mexican pharmacies retin a wrinkles worse trimox brand positioning duetact sublingual dosage medrol uk next day delivery zyvox for sale prescription buy retin a pills in the mexico lipothin prix en pharmacie en france best place to buy beconase aq online what is the difference between viagra and generic viagra existe algo viagra para mujeres compare prices flonase free or low cost elavil over the counter viagra professional metronidazole order canada rx citalopram hydrobromide how to buy oracea online suppliers of prandin in us can order liv 52 online can i order ralista how to order meloxicam enolat etodolac no prescription needed canadian online pharmacy kamagra gold online sales alphabetical list anti anxiety drugs crestor brands india zetia delivery can you drink alcohol with noroxin how long does it take for zithromax to cure chlamydia can youtube buy cialis super active in ireland online drug depakine chrono for men in usa can you buy zebeta discount generic amoxil to purchase without a prescription is l tryptophan a prescription drug cheap cialis prices uk where to buy viagra plus online usa motilium 10 mg pret safe fluoxetine buy aygestin tablets online where do i viagra in usa mail order baridium online drugstore market europe generic levaquin available generic voltaren overnite shipping generic mevacor usa purchasing ephedraxin online uk duphalac canadian online cheap avapro mg buy sumycin no prescription protonix dosage for gerd where purchase caverta hoodia buy without online pharmacy zantac best place to buy zyban order terramycin online uk best place to buy celexa in usa can you buy phenamax over the counter chloroquine side effects in children buy diclofenac gel online with mastercard side effects nitrofurantoin mono mcr can i take lexapro with birth control pills prinivil cost in canada what drug category is tegretol order zyprexa from india without prescription buy skelaxin 800 bupropion xl price walmart kamagra without a prescription from india can buy cleocin online buy synthroid online with mastercard american allopurinol cheapest price asacol lexapro side effects tiredness discount cheap pills coupon code purchase fincar cheap generic finasteride where to get cheap abilify safe buy tofranil online what types of zertalin are there dapoxetine buy mexico buy procardia online from usa comprar prazosin original can you buy unisom in ireland vipps canada pharmacy bathroom med cabinet generic aripiprazole no prescription bactrim prices at costco rogaine 2 online pharmacy uk pariet pharmacy coupons renova uses medication how to buy dramamine online what countries can you buy viagra over the counter drugstore side effects of finax tablet buy keftab generic how to use bactroban ointment nasal buy tablets aciclovir herpes cheapest tinidazole tablets uk buy emsam 40 colchicina canada pharmacy can you buy diflucan in ireland generic differin gel 3 adapalene best generic finpecia review bleeding after sex after coming off pill where do i riperdal in usa canadian online pharmacy for torsemide cialis generic uk order flowmax can i buy arimidex in canada how to buy bupropion in london where can i get some erection packs 1 order himcolin on line canada zedd spain over counter femara kamagra suppliers finasteride cost order allopurinol cheap tamsulozin to buy in england omnicef usa no prescription cheap ciprofloksacin free delivery how to buy xalatan in london generic zantac zantac 300 mg the chepest abilify actonel from uk buy flucazole online australia no prescription canada ginseng tablets online is nizagara safe to take buy celapram online us no prescription cost of mail aricept luvox online canada anteovin drugstore com pricing lasix iv push time where can i buy c ratioph tablets safe dilantin no prescription toradol india sale warafin over the counter australia lov cost chloramphenicol high blood pressure medication diovan hct lantus solostar insulin pen coupons thyrohormone pharmacy order emsam spain over counter ginseng costco canada order generic aricept best generic decadron review buy amitriptyline 10mg tablets buy amoxicilina without a subscription us pharmacy online acticin zyvox cost 2012 how long does it take for nizoral tablets to work best place to buy cytotec in australia almetec cheap uk pharmacy best site for mirapex best place to buy emoquette in canada how to import methotrexate pyridium buy online non prescription prednizone clomid 50mg success stories 2012 buy amoxiline greece januvia 100 mg best prices non generic micronase yagara online bestellen fosamax suppositories buy buy lasix 100mg online get misoprost las vegas tinidazole online from usa how long does it take for strattera to take effect benicar hct discounts non prescription cialis jelly cost of retin a 0,025 advair buy canada trimox ordering no prescription omnicef wanted online review plavix clopidogrel 75mg side effects side effects of prandin apo furosemida dose celapram over the counter drugs buy anteovin in singapore buy cipro for daily use order metrogel tablets cheap canadian nitroglycerin no prescription pariet to buy from europe online buy cheap antibiotics drugstore what is mobic medication for buy dilantin next day vincen delmonte culturismo sin tonterias download buy coumadin online india no prescription viagra sublingual next day delivery janumet mg usa astelin fda approved to buy without prescription what is nolvadex co ropinirole side effects fluoxetine without a prescription cost of riperdal finax how to buy maxaman over the counter drugs purchase glucotrol xl in usa purchase abana pills nitroglycerin canada companies only med cab fasigyne tofranil canada drug store can order acnetane canada bupropion roche precio argentina valtrex prescription buying retino a cream 0,025 zestril online uk gasex online mail order generic fasigyne viagra in boots uk pharmacy has best price pilex cheap levitra 40 mg albuterol drug class renalka prescriptions what is mestinon tablets best place to buy ephedraxin buy bupron sr astrailia safe to buy generic riperdal from usa drugs similar to ampicilina cheapest micardis vpxl where to get aricept medication doctor generic arzomicin no prescription inderal 80 mg buying cialis in singapore vipps online phamarcy beat way to order slimex buy baclofen perth australia cheap almetec buy kamagra oral jelly 40 cheap eldepryl buy online buy precose uk trazodone online in usa adalat la 60 diarex tablets side effects cheap genuine mobic online tretinoin pills online in the uk levitra generico farmacia italia where purchase brand cialis buy retin a 0,025 with a mastercard hydromorphone vs morphine strength no prescription flovent medicines containing albendazole what is metformin hydrochloride used for how to order abana online maxaman online in canada where to buy speman drugs online coumadin dose algorithm compare meloxicam and ibuprofen how long does it take for childrens motrin to kick in alti doxycycline mg usa research grade ephedraxin amoxil dosage for dogs tegretol cheap uk generic hydrochlorothiazide for sale on line is it safe to order lasix alavert online from usa buy snovitra super power pills online amaryl 2 1000 is there a generic for asacol 400mg procardia brands india emoquette pills online in the australia average cost of revia herbal viagra does it work viagra dosage for men current price advair diskus purchase arjuna in australia ordering proscar canada buy kamagra jelly online indian viagra jelly dilantin delivery pilex roche precio argentina capoten no prrescription what is the difference between prednisone and prednisolone for dogs elavil tablets 10 mg buy brand azulfidine cymbalta medication coupons albenza from canada with no prescription what is citalopram 20mg tablets alli tablets 120mg adalat generico italiano my tinidazolum coupons diakof where can i buy it toradol australia warafin brand positioning florida viagra professional buy erection packs 1 pills in the uk buy furosemide capsules benfotiamine mg tablet renagel fda approved to buy without prescription can i order depakote online diamox uk no prescription buy oestrogel pills in the uk buying minomycin using paypal oxytrol for purchase retino a cream uk brand name purchase terramycin in mexico purchasing isoniazid online viagra and blood pressure metrogel over the counter uk bestrxonlinepharmacy coupon doxycycline without a prescription quiero comprar minipress where is it safe to buy prescription drugs online advair diskus over the counter drugs shallaki on line no script vagifem mexico no prescription mens sex pills uk metronidazole wiki fr non prescription kamagra soft pharmacy noroxin online pharmacy uk elimite cream usage chloramphenicol online overnight baclofen online in usa purchase ivenox online medication meclizine 25 mg erythromycin india companies only alli capsules 42 pack tadifil 20 betnovate n skin cream isoretinoin online mastercard payment order voltaren online without rx buy prometrium online amazon cheap procardia where do i clonidine in canada estradiol valerate fast mexico trandate birth control online australia proper dosage of doxycycline for dogs probalan no prescription needed celebrex 200 mg dosage depo provera reviews 2012 safe trandate no precription buy eldepryl boots pharmacy online celadrin purchase can bactroban cream be used in the nose buy caprysin online with out prescription cheap female viagra sale uk renagel buy online mexico rythmol sr pills sweat levaquin medication overnight delivery keftab fast india buy online duetact generic kamagranow co uk review buy flomax have no prescription avapro generic side effects what is a z pack for liv 100mg cheap compare prices acticin order inderal rx imitrex usa no prescription cheap lotrel 40 mg precio de redustat orlistat is there a generic for viagra in the u s phexin lawsuit generic seroflo uk paypal best place to buy movalis in australia cost of toradol pills safe dose of benadryl for adults pletal with no rx suhagra discontinued silagra shop net where to buy cheap generic colchicina synthroid side effects wiki bactrim for men sale in uk toprol xl woldwide shipping generic salvent canada can i buy clomid online in the uk where can i purchase accuran purchase microzide in us fluticanose online pharmacy uk allegra drugstore com iv decadron dose can you order zyrtec allergy cetirizine ayurslim order online no prescription atrovent prices viagra over counter uk 2010 anastrozolo on line no script resources for citalopram buy cardura have no prescription how to order clomid online where to buy beta val drugs online when do you start taking clomid in your cycle retino a cream 0,05 canada sale purchase clozaril in australia is stediril a prescription drug can you only get liposafe on prescription vigra island norway canadian pharmacy ortho cyclen best place to order prednisolone in us order discount cialis online fast stromectol deleviery buy benicar online no prescription canada buy delta cortef with no script where purchase lotrel mifepristone and misoprostol cost in india buy nizoral without a prescription order duprost on line uk order moduretic 100mg zoloft side effects long term side effects of prednisolone use cheap prednisone pills levitra plus tablets 40mg buy diarex in ireland generic for suprax viagra jelly online pharmacy uk exelon pharmacy rhinocort brands india best place to buy seasonique in usa where to buy periactin with visa what does trental where is protonix manufacturer where do i disulfiramum in uk coumadin fast canada can you buy ivenox over the counter oristal prices usa discount microzide mg better than prevacid cheap benzaclin prices antivert prices cvs how long does it take for olanzapine to take effect differin generic cheap advair diskus 250 50 order zedd online no prescription with a mastercard what types of pamelor are there compare asacol prices safe to buy generic metrogel from uk zebeta generic reviews glucotrol cheap uk pharmacy bullteam order novo digoxin on line india allegra us companies only order benfotiamine online ordering eltroxin mexico discount finpecia from canada how to get a prescription for zoloft top drugstore makeup uk proventil generic uk donde comprar capoten en colombia what is your favorite drugstore makeup pill rx health order parlodel products where do i medrol dosepak in mexico starlix from canada what does zocor 40 mg look like doxycycl hyc 100mg side effects claritin for kids uk norvasc online store estro for dogs buy purchase duprost in us getting propecia in australia online orlistatum purchase arava from usa pharmacy generic glycomet safe what is dostinex used to treat generic benicar available us buy clopidogrelum capsules tadalis delivery uk safe to buy generic misoprost from canada suhagra legal us prednisone side effects in women short term fastest way to get pregnant on clomid betnovate gm usage yasmin birth control lawsuit canada topamax online in uk buy lopressor online from india brand name skelaxin online best online sites to buy prescription drugs can i get lipothin lowest priced chloramphenicol van you order allegra canada purchase toradol pills where do i curacne in canada topical aciclovir breastfeeding buy online novo digoxin generic lowest priced cialis professional buy florinef online no prescription usa tadalafil tablets 20 mg used buy crestor patch blopress now orlistato online purchase costco pharmacy aspirin price ginseng cost in canada where to buy motilium without a prescription generic motilium for sale on line purchase avalide in us buy actoplus met 80 mg online side effects after finishing accutane acnetane trusted online drug stores in canada demadex next day order weight gain allegra kamagra 25mg minocycline cost canadian ciplox canada online no prescription minocin where to purchase sarafem over the counter india cialis sublingual india no prescription what is the best over the counter treatment for erectile dysfunction what does fluconazol 150 mg clomid success rates cleocin on line for sale no script aciphex over the counter usa buy cialis online amazon viagra india pharmacy safe trileptal no prescription prilosec from amazon post cycle therapy clonidine estro delivery london buy betnovate lowest price online pharmacies accept american express zovirax cream genital herpespregnancy aldactone generic release date hoodia buy australia cheap canadian drugs online is generic flunil available in usa tetracycline antibiotics mode of action applications fexofenadine uk name what does tegretol robaxin without a prescription from us bisoprololi fumaras for sale australia revista kosovarja numri me i ri 2012 viagra para hombres sirve para mujeres cheap forzest pilex for dogs buy getting viagra from doctor kamagra online uk next day delivery buy ranitidine online canada meds online can you order sinemet can you only get albendazole on prescription casodex canadian pharmacy avalide buy india expired levitra side effects singulair coupons prescriptions prandin on line purchase augmentin 625mg no script motrin mg coreg from china cheap biaxin mg calls australia pills half price antivert lithium pct buy percocet online from india florinef barato dapoxetine overnight generic pills for ortho cyclen canadian drug company quibron t torsemide cost comparison zocor prices cvs buy duphalac paypal genuine estrace 100mg order cipro online non prescription proventil pills buy online prinivil limited india what is a good dose for cialis best online pharmacy generic diamox benzac price management of warfarin overdose viagra online order canada renagel india sale fluticanose without a perscription when is diovan hct going generic pill rx health plendil products levoxyl generic 2013 drugs etabus uk pharmacy nordette uses medication methylprednisolone brand name in india aurochem laboratories india allegra sale canada 15 rx pharmacy san antonio celadrin 500mg price what does depo provera do hermana lucy y el padre chelo bupropion 100 review buy premarin pills in the canada usa buy plendil without prescription xenical hard capsules orlistat 120mg buy vytorin tablets uk guardian pharmacy singapore store locator comprar levaquin original eldepryl over the counter drugs acai costa rica cheap clonidine what is the dosage for actos olmesartan medoxomil amlodipine hydrochlorothiazide where to buy allopurinol tablets online buy terramycin singapore when is singulair generic side effects of mycelex g can i get high off of cephalexin cheapest diprosone paypal purchase tadalis in usa canada primatene mist ed hardy perfume packs viagra for men price in kolkata pain medication motrin cardizem discount medications kamagra drugstore com pricing where to buy livestrong bracelets in philippines ethionamide to buy in the usa without a prescription phone in order for adalat tadacip without a prescription from mexico how long does the effect of nitroglycerin last renagel 800 mg tabs generic requip uk paypal purchase crestor in canada lopid generic india calan cheap lukol daily use reviews buy aspirin online at canada pharmacy how to use pravachol average wholesale price drugs 2012 over the counter medicine that acts as salbutamol purchase zofran on line in india buy prometrium new zealand online cialis sublingual ordering no prescription what does parietal lobe where can i buy etodolac mg cheap geriforte syrup no prescription suppliers of oratane in us elimite to buy in the usa without a prescription potenzmittel cobra 120 aricept and alcohol dementia astelin where to get walgreens generic zyrtec d over the counter medicine that acts as revatio what does a reaction to bactrim look like world best online pharmacy alli discount online exelon purchase erythromycin for dogs ear infection where to avalide claritin online order health canada colospa azithromycin bronchiectasis acivir pills without prescription canada where to buy provigil in uk no prescription wellbutrin sr canada drug store fincar tablets 150 mg buy robaxin mg online for metformin hydrochloride extended release tablets biaxin purchase in canada no prescription over the counter drugs similar to luvox synthroid and birth control pills generic raciper usa pharmacy buy renagel mexican pharmacies low dose accutane success stories chinese herbal viagra uk costco pharmacy minocycline price actonel canada drug store buying erection packs 3 using paypal proscar online store estradiol patches cost skelaxin for sale where to buy cialis in bueanos aires cheap premarin 40 mg vente de doxycycline au quebec elocom express canada novartis lamisil sales paxil low cost orlistat over the counter in canada how to use triamterenum elavil side effects uk canada order doxycycline abilify 5 mg tablets where to buy olanzapine online usa order alavert on line mexico zetia 10 mg dosage order amoxycillin from india without prescription clonidine without a prescription from australia where do i fluss 40 in australia amoxicilina over the counter buy vermox capsules furosemide how long to take effect buy nicotinell without a script clozaril from canadian pharmacy mail order generic medazole buy amoxicilina online without prescription amitriptyline interactions with other drugs moduretic italiano sarafem tablets propranolol without prescription miami how long does paroxetine stay in your body discount effexor xr mg acai beere online shop side effects of viagra in young men canadian mexican pharmacies viagra online starlix worldwide shipping buy predalone in ireland aricept price comparison metrogel brands india vasotec medication use order omnicef from india without prescription low cost overnight gasex levitra professional drugstore finpecia generic mexico evecare billig kaufen tindamax coupon code where to purchase prazosin danazol canada drugs acai order in the us minipress uk companies only buy tablets generic zyvox buy motilium without a subscription mircette pharmacy usa generic macrobid procardia tablets for purchase lozol tablets for purchase buy generic himcocid online with prescription nizoral legal us arjuna buy online canada where to get tetracycline best site to buy levlen renova canada head office buy stromectol with visa atomoxetin without a prescription from india amlodipin dose elocon online uk where do i thyroxine in uk buy actos 25 mg buy celapram perth australia order fasigyn online no presctiption percocet from usa pharmacy western drug lioresal erythromycin stearate side effects the chepest retin a gel 0,1 can you buy inderal countries melancholy discount code for proscar erection packs 1 drugstore.com online detrol with no prescription overnight delivery generic cozaar online cabergoline sex dose buy fasigyne pills in the canada where to buy betnovate with mastercard tadalis sx online with out prescription purchase permethrinum on line in uk bupron sr by mail venlafaxina canada prescription celadrin for men sale in uk buy brand cialis canada discount tizanidinum mg what is lotrisone used for nordette pills online in the australia best place to buy tetracycline online lansoprazol online pay paypal can you use alcohol prednisone buy viagra jelly pills in the uk generic janumet buy canada chloramphenicol for men sale in uk canadian drug company viagra super active how long is a typical accutane treatment is nitroglycerin cream over the counter order tadacip on line india cozaar tablett 50 mg elimite 5 percent genuine sarafem 100mg fincar from china fucidin cream safe pregnancy buy alli 110 donde puedo comprar cytotec en guatemala buying retin a ge in manchester what is the proper dosage when taking viagra prozac and alcohol liver united pharmacies uk buy levothyroxin pills in the india is singulair over the counter or prescription ampicilina side effects long term use percocet non perscription countries zestoretic generic australia jia yi jian cheap crestor mg buy c ratioph online cheap promethazine generic india haldol order online no prescription strong painkillers online uk buy cephalosporins online purchase thyrohormone on line in mexico eckerd pharmacy store locator where to buy amlodipinbesilat online mexico rythmol without a prescription from us where to buy diflucan over the counter 200mg where to buy prometrium without a prescription erexor to buy in england buy zebeta singapore claravis prescription only prednisona generic india how long does oral furosemide take to work cual es mejor el viagra o el cialis buy simvastatina canada cialis professional cheap uk order zydis without prescription glasses online high prescriptions buy suhagra online at canada pharmacy order doxi 1 from usa without prescription where to buy stediril with amex purchase lansoprazol on line in canada ranitidine without a prescription from india overseas foreign pharmacy reviews triamterenum us companies only erection packs 3 no prescription needed asacol maximum daily dosage how long does antabuse take to wear off buy alli with e check buy biaxin 20 buy ovral l have no prescription who has alli on sale this week dapoxetine online pay paypal best place to buy levitra plus in uk side effects of ciprofloksacin zantac over the counter uk buy flomax discount tetracycline prices what is ampicillin used for in cats buy chloromycetin pills in the canada normal dose of zofran iv where to buy aviane 28 drugs online vermox without prescription pills orlistat over the counter drugs buy depakote 80 mg online florida colchicine online drug for differin costco pharmacy flagyl price why has keppra been discontinued skelaxin max dose non prescription periactin do you need rx motilium secure pillbox hat head cilest lawsuit canada benicar on line no script how to get estrace on line purchase toradol in canada caffeine ergotamine reviews for men seroquel sales 2008 purchase haldol on line in mexico cardizem no prescription needed buy trental online from uk tretinoin 0,05 usa no prescription acticin in croatia antibiotics brand names generic names where can i get some alfa flucon generic cialis viagra online prednisolone pills gabapentin capsules usp monograph buy rosuvastatin uk hydrochlorothiazide combination brand urispas for sale american kamagra chewable robaxin fast uk zyvox 5mg tablets buy alesse birth control canada cheap order bupron sr from usa without prescription what is hydrochlorothiazide used for what is the correct dosage of prometrium buy levitra super active new zealand online accutane online pharmacy shipped to canada purchase levitra on line in uk nitroglycerin tablets dosage estradiol valerate prix en pharmacie en france watch adalat online sony tv where can i get micronase cialis soft precio mexico side effects of enalapril hctz generic diprolene safe fake viagra prescription online drugstore buy leukeran online canada no prescription buy paroxetine pills psoriasis and methotrexate medication nolvadex d tamoxifen tablets b.p. 20 mg best price for real tizanidina meloxicam enolat delivery uk propecia for womens buy adalat lowest price order cialis super active from india without prescription purchase generic evista purchase neurontin canada can order kamagra soft online buying cilest from canada no prescription where to get celebrex pct lopid roche precio argentina wellbutrin sr weight gain or loss buy brand viagra usa lamisil lawsuit settlements cost of asacol without insurance seroquel medication on line zedd online pay paypal doxycycline from mexico isotretinoin generic buy methylprednisolone 4 mg online naprosyn ec pilex india sale what does levitra contain consolato italiano in cipro buy artane 5 mg buy v gel online from australia no script frusemide mg names of aspirin medication anteovin pharmacy prices list order nitrofurantoin online no prescription with a mastercard mexican pharmacy no prescription cafergot acivir pills purchase overnight aricept prices discount order pulmicort from australia without prescription best price for isoniazid best site for disulfiramum what is strattera used for purchase aldactone 25mg amantadine discount voucher anti anxiety medication brand names safe actoplus no precription how to buy antivert in london levitra online pharmacy duloxetine hcl uses canada drugs tadapox with prescription buy norvasc without a script dramamine order online where to buy oxybutyninum online mexico compare prices plavix entocort perth australia stromectol max dose where can i buy leukeran mg where could i buy wellbutrin without prescription where to buy proscar online without rx pill rx health order antara products trazodone medication used all types wellbutrin sr pills buy oxytrol next day best place to buy aprovel online original cialis canada buy valaciclovir in india online cialis original online kaufen ventolin online meds bactroban doctors online purchase raloxifeno in india can we trust duetact online purchase caprysin in mexico advair diskus pills buy online what is indinavir betapace mail order india ciprobay xr 1000 prospect indian generic medrol online zyrtec allergy 24 hr 10 mg 45 count tablets acai prices at costco buy naprosyn online usa order stediril pills generic antara switzerland sildenafil citrate tablets vega 100 januvia brands india cheap tizanidinum no prescription neurontin dose rxlist prescription medicine for acne treatment buy generic antabuse online with prescription order glucophage from mexico without prescription buy digoxin online us no prescription lidocaine infusion for pain diclofenac sodium and paracetamol dosage best price ortho cyclen order hydrochlorothiazide on line india buy alesse 23 phenamax doctors online aciclovir dosis pediatrica herpes zoster cheap generic minomycin acheter suhagra order haldol pill detrol women buy buy doksazosin lek greece malegra dxt pills online in the canada buy aciclovir online with no prescription cheap bupropion free delivery order medrol tablets order generic vagifem metformin maximum dosage daily buying glucotrol xl from canada no prescription cheap cleocin buy online stieva a cream side effects buy mobic in uk over the counter allergy medicine alavert ordering zoloft usa what is vermox does acne return after taking accutane half price deltasone metoclopramide for sale nordette from china flagyl generic india buy sinequan come now my love alli rogers lyrics tizanidina cheap india pharmacy order generic aloprim indocin dose for pericarditis nitrofurantoin refill pack cialis online scam olanzapine what is it for cheap moduretic pills ciprofloxacin hydrochloride 500 mg tablets order moduretic on line india femara complications side effects pharmacy buy drugs lady era non generic elocon glyset 100mg cheep ipecac syrup buy online canada cuantas pastillas omifin where do i januvia in usa zofran melt aways buy riperdal online cheap how to buy cabaser in canada stopping depo provera best place to buy bupropionum without a prescription prilosec maximum dosage to buy anacin ashwagandha leaves in usa original erection packs 2 online buy cheap differin antara where can i buy hyzaar medicine children generic from amitriptyline discount code for flonase amsterdam pharmacy open sunday parlodel online pharmacy buy altace online usa donde comprar viagra por internet ondansetrona perth australia viagra mexico online order crestor rx buying aceon metronidazole legal us zestoretic on line in the usa do i need a prescription for pariet robaxin mg buy my etabus coupons 100 mg inderal almetec max dose what is code red 7 diflucan dosage for yeast infection in women coumadin wanted online review cost comparison order roxithromycin mg best tretinoin 0 025 prices aciphex prix en pharmacie en france atarax no prescription compare prices diclofenac australia price buy purim no prescription fast delivery what does ranitidine 150 mg do order amantadine online without rx antivert otc walgreens amoxil brand pills for sale where can i buy proventil online without a prescription pill rx health order advair products mupirocin ointment boots where do i retino a cream 0,025 in usa comprar disulphiram en argentina how to order female viagra discount dutasterid of canada serpina online canadian costco pharmacy cialis sublingual price celexa prescriptions online purchasing lukol online uk buy actos without prescription discount medrol mg cheapest place to buy accuran coumadin order form risperdal 4 mg tablets legal to buy female viagra viagra with no prescription where to buy nexium online mexico sepibest canada sale ceftin trusted online drug stores in canada comprare cialis generico in italia propecia cheapest price uk arimidex uk online lethal dose of benadryl for dogs order generic advair buy flonase online with out prescription side effects valtrex medication purchasing etabus online levitra pills buy online over the counter apo furosemida brand name reglan online what is trazodone medication used for aciclovir suppliers overseas rocaltrol reviews for men can order dyazide online lamisilate online pharmacy shipped to canada buy precose boots pharmacy sandoz pantoprazole dose ordering low dose zoloft buy glucotrol xl 15mg online 3 dollar viagra crestor interaction with other drugs buy viagra soft perth australia is doxycycline better than minocycline asacol express canada over the counter drugs similar to glucophage elimite without prescription canada noroxin generico levothyroid without prescription medication liquid prednisolone review feldene buy online us comprar albuterol original ranitidine australia purchase haldol on line in australia buy jelly hong kong kamagra online zestoretic from canada can i get chlamydia treatment over the counter buy ditropan online in the united states without a prescription amoxicillin vs doxycycline for dogs frusemide tablets from buy deltasone drug in mexico pharmacy pure pomegranate juice tesco flagyl er online uk himcocid online purchase order exelon from india without prescription zoloft tablets uses generic nexium availability canada pharmacies online that sell triamterene para que sirve el citrato de clomifeno 50 mg discount mentax mg beat way to order septilin provera reviews clomid and iui success rates pcos viagra plus on line in the uk online generic bupron sr dolased relaxant tablets 20 vermox online from canada low cost dapoxetine where can i buy ortho tri cyclen lo oestrogel from india biaxin en mexico phenamax from canada without rx sominex for daily use canada xalatan side effects headache promethazine 25mg tablets uses nombre generico de cipro brafix on line in the india para que se usa meclizine side effects of fluoxetine prozac antivert fast india where purinethol order maxalt from canada buy tegretol 50 india pharmacies online that sell elimite what is the correct dosage of revatio mobic costochondritis side effects of long term use of ventolin inhaler how can i get prescribed metformin what does trazodone look like how to order moduretic buy prozac low cheap price alli pills review canadian deltasone unisom overdose side effects viagra in canada buy florida apcalis sx cialis commercial 2012 buy sildenafila online overnight small blue pill with a d on it nootropil brand order is there a shortage of prednisona colospa online from india buy unisom pills in the mexico mentat without rx best place to buy toprol in india glyset phone orders liv 52 generic name order flonase rx kytril cost benadryl dosage for dogs australia vasotec non perscription countries no morning erection diamox fast uk flonase lawsuit canada get apo clopidogrel las vegas cipralex without insurance metoclopramide fast canada can you only get cephalexin on prescription what is motrin ibuprofen buy cheap pharmacy generic arimidex purchase erythromycin 250mg tablets viagra building in toronto canada cheap tretinoin 0,025 mg side effects of robaxin muscle relaxer how much does carafate cost yagara purchase in canada no prescription combivent nebules dose zestoretic medication online diovan hct discount coupon vistaril birth control online mexico where to buy allopurinol mg buy dramamine online no prescription canada what is combivent for buy xenical in uk buy rosuvastatin pills in the us cheapest purinethol tablets uk snovitra super power mg no prescription cipro mexico companies only levlen comprare cafergot to buy from europe how to buy aciphex in london buy seroflo 20 viagra jelly sale 100mg pill shop cialis soft tabs 100mg best place to buy levitra professional in mexico where can i buy accutane online uk trusted ciprofloxacina tablets online benadryl next day cuanto sale pildora yasmin non generic prednisone curacne online uk cheapest atarax paypal cymbalta canada prescription drug sales statistics minocycline acne before and after ephedraxin without a prescription from australia buying brand viagra using paypal why has carbozyne been discontinued kamagra jelly 100 mg viagra doksazosin lek buy without how to take viagra safely levitra super active no prescription reviews buy cilest australia mentax generic uk motilium 100ml cost of lexapro naltrexone information uk lipothin india sale buy flucazole online uk no prescription paroxetine 10 mg en espanol buy mexitil discount how much is generic propecia flovent order prescription abana combivent shopping benadryl dosage instructions zaditor india suppliers ventolin mg no prescription bupropion hydrochloride side effects weight gain maxalt birth control online us betoptic usa buy coumadin pills in the mexico promethazine where to buy in canada torsemide tablets 100mg buy ciproxin tablets order carvedilolo online no prescription with a visa feldene on line in the usa buy cheap venlor using pay pal actos price japan prinivil generic mexico safe to buy generic accuran from canada generic albenza uk paypal lamisil tablets price uk buy flagyl boots pharmacy can you get high off asacol where to buy live yogurt culture remeron anxiety purchase elimite on line in australia where to buy trial erection packs 3 with amex maxaman canada prescription buy paxil 40 mg buy doxycycline tablets canada fast bupropion deleviery anafranil mg canadian rx bactroban ointment dosage and administration trial erection packs 3 without prescrip zoloft 100 mg tablet clozaril generic australia living with dementia resources for living well generic nymphomax no prescription is it legal to order pain pills online order dutasterid online no prescription with a amex preciso de receita para comprar clomid what doses does keppra come in glyset online pharmacy uk pill rx health order vytorin products elavil canada head office buying alli canada doxi 1 tablets online salvent mg canada atorlip 20 medicine children buy entocort hong kong ec clopidogrelum tablets price azulfidine medication aricept not generic apo clopidogrel drug schedule where do i biaxin in australia prazosin shortage where can i get retino a cream 0,025 from capoten online shipping acivir pills pills buy toprol xl generic buying elavil from canada no prescription celexa side effects children bystolic with no subscription how to import danazol discount drugs for dogs generic penegra uk paypal how to get eulexin in australia order acticin 1 pharmacy tamsulozin australia pharmacy keftab buy without clomifene on line in the mexico clomid reviews uk india prandin price can you buy viagra over the counter in italy order cardizem no rx canadian pharmacy salbumol lowest price online pharmacy uk frumil cafergot birth control online canada sinemet generic 2013 drugs purchase generic diprolene med cab anafranil buy diflucan online with mastercard ciplactin weight gain challenge is it safe to buy zithromax online aciphex online bestellen cheapest liverpool football kit cost of strattera drug novo digoxin uk no prescription levitra 10mg duration astelin mg usa feldene not generic buy generic renagel online with prescription can you only get revatio on prescription original lexapro online buy vermox paypal accepted no prescription ciprofloxacin how to purchase renova purchase citalopram on line in usa anti anxiety medication amitriptyline baclofen tablets alcohol order levitra super active pill weight loss and water retention pills costco pharmacy zyloprim price medrol without prescription medication maxalt online in usa seroquel for sale uk benadryl tablets dosage for children no script amoxil mg voltaren side effects long term use ordering rythmol sr india keppra canadian online overnight pharmacy metronidazole on line in the india beta val order diabecon with paypal payment online generic omnicef what is tretinoin 0 05 made of buy cheap drugstore avalide canadian levitra uk no prescription order exelon on line usa how to take silagra 100 diprolene online forum how to get arava in australia buy chlamydia tests at a cheap price prednisona online with out prescription buy suhagra australia order minomycin overnight worldwide pharmacy suprax isoptin costco imitrex discount voucher post steroid cycle therapy hcg where do i warafin in india viagra prices in canada reglan free shipping where to purchase viagra jelly altace roche precio argentina viagra plus canada companies only where can i buy duphalac canada salbumol tablets online purchase cheap ampicillin online cheapest hoodia to buy himcolin results forum zolpidem 10mg tablets prevacid solutab cheap glycomet buy online ireland buy amoxicilina tablets uk where to buy carvedilolo online mexico medazole online in us buy canada no prescription for tetracycline zebeta online no prescription bactroban to buy from europe where can i buy phenergan buy amoxycillin tablets us cheap ventolin no prescription buy mentat ds syrup boots pharmacy lasuna without a prescription nitroglycerin 40 mg pharmacy cheap estrofem pills zoloft pills drugstore do you need a prescription for diflucan generic tamoxifen 20mg buy cabgolin online india no prescription free viagra sample without doctor cheap proscar 100 mg buy cleocin with no rx alli on line lipitor coupons discounts order fincar online no prescription with a visa lamisil tabletas 250 mg price generic allegra d at costco billig lisinopril online kaufen hydrochlorothiazide tablets 25 mg generic viagra mexico carvedilolo cost in canada worldwide pharmacy aldactone buy dyazide online reviews what is prometrium 100mg doxycycline hcl 100 mg tablet provera drug in mexico pharmacy can i buy azitromicina in canada metronidazole paypal buy luvox inhaler canada erection packs 1 fast canada where can i get some stediril viagra sublingual online canadian liquid benadryl cost wegmans pharmacy select generic drug price list zofran medicine online buy uroxatral tablets what does reminyl look like buy generic lipitor canada zolpidem uk sale zestril online legally buy bupron sr online overnight delivery no prescription oxytrol unisom sublingual dosage azurette shop net no prescription duetact sale trazodone from australia buy prednisone online no prescription side effects of ranitidine infants bupropionum without a prescription from mexico albendazole us companies only buy celexa in usa non generic alphagan buy cheap generic cialis professional canada aciclovir side effects uk calcium carbonate suppliers in usa low biaxin where to buy delta cortef online mexico clomid in australia oestrogel coupons oxybutyninum without prescription medication probalan cheapest rate valtrex prescription prices buy ciprofloksacin capsules medrol suppositories buy zydis tablets from buy best site for liv 52 order amantadine pill triamterenum pills online in the australia viagra jelly canada head office american amlodipinbesilat can order brand levitra canada cordarone reviews and dosage cheap precose generic cabaser uk paypal lasilix shelf life where do i glucotrol in canada school of pharmacy puerto rico cheap cleocin 300 mg antivert canada head office do one direction have chlamydia cat allergy symptoms nhs cipa certified canadian pharmacies side effects of warfarin in pregnancy serophene malaysia pharmacy safe buy vasotec online pharmacy that sells nolvadex rogaine 5 without insurance ortho cyclen pill shortage purchasing premarin online viagra super active cheap australia pharmacy how to order simvastatina tamoxifen with no subscription walmart drug prices list nitroglycerin legal us dostinex drug oversea us virgin islands board pharmacy can i order vasotec no prescription in the usa pyridium dose urinary tract infection duetact dosage instructions cheap microzide sale uk buy pyridium plus haldol online in canada buy permethrin cream scabies crestor uk next day delivery colchicine overnight shipping usa priligy from usa med cab cystone discount caprysin from canada what is sertraline hcl 50 mg revista visao lages erexin v without subscription welches land viagra rezeptfrei champix reviews users where to buy levoxyl online india sominex with no rx order roxithromycin rx buy viagra jelly online from uk sumycin in canada where can i purchase actoplus retin a ge legal us quickest tamoxifen mary kay lawsuit against allison lamarr aricept online in canada buy dostinex visa bestrxonlinepharmacy website minocin online order health canada lady era double dose of cialis cipro no rx biaxin precio mexico seroquel withdrawal insomnia prednisolone sandoz 20 mg posologie como comprar cialis sublingual second hand pharmaceutical machinery uk prescription assistance for bupropion sr levitra super active echeck flunil canadian online overnight pharmacy lasix 10 mg compresse allegra d 12 hour allergy and congestion tablets metoclopramide annual sales metformin online mexico what is amantadine prescribed for order lady era online no prescription with a visa overseas pharmacy no prescription benfotiamine strattera medication overnight delivery serpina online bestellen medrol from china where to buy bactroban cream buy apcalis sx 5 order himcolin cheap metformin fast usa
Home Blog General Migrating websites from dedicated cpanel servers to Rackspace Cloud

Migrating websites from dedicated cpanel servers to Rackspace Cloud

General

Background

As many in the web design industry would know, if you're in the web design or development business, you're also defacto in the hosting/domain business. Some web companies choose to pass that role back on the client, advising them where to buy hosting. Other web design agencies will get a reseller account with a control panel host (e.g. Plesk or cPanel) such as Hostgator or Bluehost. That was our story many years ago - we got a reseller account at a cpanel host. What we ran into with that was a lack of control. We weren't able to install the php packages to suit our needs and had to dance around server config such as upload limits. One day we had a huge fiasco with a shared ip address that was directly linked into a newsletter mailing and we couldn't get the ip address back. That stress was enough for us and shared cpanel hosting.

So we moved to dedicated hosting. That brought a whole other set of challenges. We had to learn all about full administration of a linux server. For a while we continued to use cpanel but eventually even got frustrated with cpanel's limitations and just went to manual configuration. When we surveyed clients we found that the majority of our clients didn't even use the control panel and even found it a hassle. So in order to make changes to hosting config, clients would just submit tickets and we'd take care of it. We did find a very small percentage though that did still want a control panel so we always had bringing that back somehow in the back of our minds.

Another issue with dedicated hosting (where you rent a full box at a data center) is having a single point of failure. We had single disk servers to start with and then felt it would be better to move to raid systems. We had raid systems with Layered Tech and that was a nightmare. They seemed to just continuously reuse old hard drives. We had a major windows server crash three times in six months. That was enough for us there. We also had dedicated servers with Server Beach. Their support was better but unfortunately we had more hardware failures on raid5 that we did on single disk servers.

The hardware was the main aspect that prompted us to investigate cloud hosting. In the cloud sites serving load is spread across hundreds of servers. If one goes down it can easily be replaced without downtime. With dedicated servers we had to know and depend on our backup mechanisms as our life depended on it. If a server went down it certainly meant 48 hours doing a complete reload of all files and sites on the server. So being able to rest a bit more peacefully in regards to downtime was alluring to us.

Cloud hosting would also reintroduce a limited control panel for those clients who wanted one but would still give us the ability to manage advanced settings at a higher level. Even though we had staff in house that knew how to admin linux servers, having a control panel also meant that folks in admin could setup accounts or delete accounts if needed.

How to migrate from linux/cpanel to rackspace

This isn't meant to be a definitive guide on how to move websites to rackspace cloudsites but it is a compilation of suggestions we accumulated along the way. This guide is also a bit high-level / not detailed. You need a base of knowledge to do this. If you can't make these suggestions work then you may want to hire a more experienced technician to do this for you.

To us it seemed that there would be phased migration.

  • Step One: Migrate all DNS to zones to Rackspace AS THEY ARE. This means that you can repoint your hosting company's name servers to Rackspace's nameserver IPs and then all your clients DNS will also be performed from Rackspace BUT this is before you've moved ANY of the sites over. The DNS will actually point all of the domains BACK to your current main cpanel/dedicated servers.
  • Step Two: After migrate all the actual site files and databases.
  • Step Three: Switch the A record IP address for each website over from your old dedicated server IP to the Rackspace IP, essentially taking the site live.

If you manage DNS through a third party like your domain registrar then you can probably skip the whole DNS phase.

Migrating DNS

If you have a bare dedicated server or a cpanel dedicated server, chances are you have one of your dedicated servers also serving as your primary name server. If you're running cpanel, you're probably using bind (even if you don't know it) or if you don't have cpanel then you know you're running bind (because you have to manually edit named.conf to add domains).

So why do the DNS first? We use ns1/2.ourhostingcompany.com as our name servers. We have hundreds of domains registered. We've registered most of them but 10-20% are registered by the clients themselves. They all are pointed at ns1/2.ourhostingcompany.com though. We control that domain and we get to set the IP addresses of the name servers for ns1/2.ourhostingcompany.com. With moving to rackspace we could spend countless hours going and updating all the domains to point to ns1/2.stabletransit.com or we could just leave them and reroute the traffic to rackspace's nameservers.

We actually wanted to migrate all websites files and databases themselves first and then the DNS. The first way we tried this essentially failed. We went into our named.conf and made our nameserver an open forwarder. We set forward {any;}. The plan was to move the site files and database and make sure the website was working at Rackspace, then after we'd confirmed that each site had successfully migrated to Rackspace just go in their zone file on our name server and say "forward all DNS requests for this domain to Rackspace." This failed because when we did that rackspace's name servers thought they were authoritative yet our name servers were still thinking they were authoritative so there was confusion.

The next step seemed to be to ensure all our domain zones were replicated at rackspace and then completely repoint ns1/2.ourhostingcompany.com to rackspace's nameserver's IP addresses. And THEN we'd move the sites.

Getting ready

This was a huge task. Again we have 100s of accounts. The first thing we had to do was get someone to manually set up a client in Rackspace for each client we had. Rackspace, if you're reading this, please create an API that lets you programmatically add clients and websites to rackspace cloudsites. It would have sped things up for us massively. Having our admin staff do this in their spare time probably took 2-3 weeks. They would create the client, then create the website under the client, and then they would create the database, the username for the database, the database password and even take note of the ip address and hostname for the database. Most of our site's have databases so we needed to do this.

There's a control panel in Rackspace for all of this and it doesn't need much explaining. Once all that groundwork was laid we had to figure out how to transfer all the custom records in our DNS server to Rackspace's nameserver.

For example, some of our client have their MX records set to Google apps mail, some use paid 3rd party mail services. Some clients have custom cnames, etc. We didn't want human beings to have to sit there and manually copy and paste 1000s of domain record entries from our nameserver over to Rackspace's control panel (its slow if you're doing this type of repetitive task). Luckily Rackspace DOES have a DNS API. It's not hugely documented.

The actual code to migrate DNS from bind to rackspace via the api

The coolgeex one provides the rackDNS.php class and also a sample.php to show how to interact with the API. Using the sample.php we wrote our own script to do what we wanted. The coolgeex one didn't work immediately for us. We found there was some issue with curl and https. We had to set a curl parameter to ignore https problems and then it worked fine.

The idea was to essentially go through each domain, delete the default zone created by Rackspace and replace it with our zonefile. Of course if you run bind, all your zonefiles are located in /var/named or /var/named/chroot/var/named. The problem is that Rackspace only accepts FQDN format zone files as input so if some of your zone files are relative, it won't work. E.g., bind will let you point multiple domains at one zone file and just say

A xx.xx.xx.xx
sub CNAME whatever.domain.com ;subdomain

But Rackspace needs absolute zone files like this:

Domain.com A xx.xx.xx.xx
sub.domain.com CNAME whatever.domain.com

If you have a mixture of relative zone files there is a way to get bind to spit all the zone files back out as absolute zones. Here's a link on how to do that: http://ubuntuforums.org/showthread.php?t=903651

Basically it creates all your nameserver's domain zones in one file. You can then use PHP to loop through those zones and work with the Rackspace DNS API.

The second issue we had was account IDs. If you create a subclient in RS and then a domain under that client, if you connect to the DNS API and then say "show me all the domains" it will only show ones in YOUR account, not sub-client domains. In order to see sub-client domains, you have to connect to the api using the sub-client's ID number. There's more info on this topic at the donetexec link above. So consequently, what we needed was another file that mapped all our domains to client id's at rackspace.

Once we had these two pieces we could have a php script

  1. Read in all the domains from the bind dump and start looping through them
  2. For each domain connect to the dns api using the client's id
    1. Wipe what RS had there by default
    2. Load our zone file

I've provided the code that we ran with the coolgeex rackDNS.php.

<?php
/**
*
* Rackspace DNS PHP API sample.php
* @author Alon Ben David
* @copyright CoolGeex.com
*/
require_once "rackDNS.php";
//credentials
$rs_user = 'YOURRSUSERNAME';
$rs_api_key = 'YOURRSAPIKEY';
 
//first load all the codes we have for domains
$codes = array();
include('codes.php');
include('domain-dump.php');
 
//now lets load the zones into an array
$temp = explode(";", $tempstring);
unset($tempstring);
$zones=array();
 
//now lets rework the array with the key as domains
foreach($temp AS $zone)
{
//get the domain name from the first bit
$domain = substr($zone,0,strpos($zone," "));
$domain = str_replace(array(" ","\t","\n","\r"),"",$domain);
$domain = substr($domain,0,-1);
$zones[$domain]=$zone;
}
unset($temp);
$domainsdone = array();
$domainsmissingcode = array();
$domainserror = array();
if ( isset( $_COOKIE["domainsdone"] ) ) { $domainsdone = explode("|",$_COOKIE["domainsdone"]); }
if ( isset( $_COOKIE["domainsmissingcode"] ) ) { $domainsmissingcode = explode("|",$_COOKIE["domainsmissingcode"]); }
if ( isset( $_COOKIE["domainserror"] ) ) { $domainserror = explode("|",$_COOKIE["domainserror"]); }
 
//now lets loop through the zones and see which domains we have codes for.
//if we have a code, clear all records in that zone and load the zone file we have
$count = 0;
foreach($zones AS $domain => $zone)
{
if( $codes[$domain]!="" AND !in_array($domain,$domainsdone) AND !in_array($domain,$domainserror) )
{
//we've got the code, now lets do this.
$count++;
//establish connection
$dns = new rackDNS($rs_user,$rs_api_key,'US',$codes[$domain]); //($user, $key, $endpoint = 'US') $endpoint can be UK or US
//echo "Working with ".$domain." which has a code of ".$codes[$domain]."\n\r";
//get the domain for this code
$tempdomains = $dns->list_domains(50,0);
$domainslist = $tempdomains['domains'];
//print_r($tempdomains);
//unset($tempdomains);
//loop through the domains for this account and ensure we grab the right info for the right domain
foreach($domainslist AS $theirdomain)
{
if (strtolower($theirdomain['name']) == strtolower($domain))
{
$domainID = $theirdomain['id'];
$domainName = $theirdomain['name'];
}
}
//if (!$domainID) die("domain missmatch for ".$domain." and code ".$codes[$domain].". Halting.");
//should probalby check if $domain and $domainName matches
//if so we just delete it
if( strtolower($domain) == strtolower($domainName) ) $delete = $dns->delete_domains($domainID);
//wait a bit because deleting takes a while
sleep(3);
//now lets import it according to our zone
$import = $dns->domain_import($zone);
sleep(3);
if($import['status']=='COMPLETED' OR $import['status']=='RUNNING') {$domainsdone[] = $domain; }
else {
$domainserror[]=$domain;
if(!isset($_GET['dontshowerror']))
{
echo "<pre>Working with ".$domain." whose client has a code of ".$codes[$domain]."
and whose ID is ".$domainID."\n\r";
echo "All of their domains are:\n\r";
print_r($tempdomains);
echo "This is the result of the delete:\n\r";
print_r($delete);
echo "This is the result of the import:\n\r";
print_r($import);
die;
}
}
if ($count >=500) break;
} elseif (!in_array($domain,$domainsmissingcode) AND !in_array($domain,$domainsdone) AND !in_array($domain,$domainserror) ) {
$domainsmissingcode[] = $domain;
}
}
setcookie("domainsdone", implode("|",$domainsdone), time()+86400);
setcookie("domainsmissingcode",implode("|",$domainsmissingcode), time()+86400);
setcookie("domainserror",implode("|",$domainserror), time()+86400);
echo '<html><head><meta http-equiv="refresh" content="30"></head><body>';
echo "<pre>";
print_r($import);
echo "Domains that are done:\n";
print_r($domainsdone);
echo "\n";
echo "No codes for these domains:\n";
print_r($domainsmissingcode);
echo "Error occured when importing zones for these domains:\n";
print_r($domainserror);
?>

Note that you will have to modify to suit you. I'm not going to provide a copy of our domain dump from bind because that is a very standard format of file, but I will show a sample of how we loaded the "codes" (or client id numbers corresponding to each domain).

<?php
$codes["domain1.com"] =123123;
$codes["domain2.com"] =123124;
?>

We wrote the script to be executed by browser but it could be executed by cron. We wrote it to process X domains per run and then stop. We also wrote it to meta-refresh to keep running until all the domains had been processed. We decided to store the domains that had been processed in a cookie. We just didn't want to mess around with writing files to the server or setting up a database just for this one function.

One thing to note here. RS still gave errors on trying to import some of our domains even though they were in absolute format. What we found was that TTL times below 300 seconds would be rejected. So where we'd set TTLs on our server very low, those domain imports failed until we manually updated the domain dump file with higher TTLs. RS DNS imports failed for other reasons too. We modified the rackDNS.php file to show more detailed error results back from the RS DNS API to help diagnose this. It doesn't do it by default. See "show detail" in the RS DNS API documentation for more info.

Now that DNS had been migrated, essentially what we had was a complete mirror of our DNS server at Rackspace. All the domains pointed back to our current hosting server, not to rackspace itself. We then logged into our registrar, went under "register nameserver" and updated the IP addresses of our nameserver to those IPs of Rackspace's nameservers instead of ours. Everything kept running without a hitch.

Step two: move the files, databases and update config files

This part should be a little easier for most folks who have done a bit of hosting reselling to understand. The simple process is to use FTP to upload sites, use MySQL to upload databases and then update config files so sites at RS connect to RS's mysql servers.

We also chose to script this into one step. If you run cpanel there is some consistency in the way your accounts are setup, even if you don't, you have some consistency.

This is the basic perl script we used:

#!/bin/bash
#push an account to rackspace, files, database, etc. 
#NOTE THAT YOU have to update your server paths correspondingly
if [ -z "${11}" ]; then
echo 'Please supply arcuments after the script name in the following order'
echo '$1 = name of the home folder locally'
echo '$2 = username at rackspace'
echo '$3 = password at rackspace'
echo '$4 = the domain name' 
echo '$5 = the local database'
echo '$6 = the remote database hostIP'
echo '$7 = the remote database username'
echo '$8 = the remote database password' 
echo '$9 = the remote database name'
echo '$10 = the user number at rackspace'
echo '$11 = the remote database hostNAME'
exit
fi
#dump the database 
mysqldump -uroot -pYOURMYSQLROOTPASS $5 > /home/$1/$5.sql
#upload the database
mysql -h$6 -u$7 -p$8 $9 < /home/$1/$5.sql
#compress everything
cd /home/$1/public_html/
tar cvf /home/$1/thesite.tar *
#upload it
ncftpput -u $2 -p $3 ftp2.ftptoyoursite.com /$4/web/content /home/$1/thesite.tar
#we need to make sure a 'decompress' php file makes it up
ncftpput -u $2 -p $3 ftp2.ftptoyoursite.com /$4/web/content /home/PATHTOWHEREYOURESTORINGTHISFILE/unpack.php
#now run it so the site is decompressed (this also removes the tar and index.html file)
wget <a href="http://$4.php5-22.dfw1-1.websitetestlink.com/unpack.php">http://$4.php5-22.dfw1-1.websitetestlink.com/unpack.php</a>

 

You need to install ncftpput on your server for this to work. Try yum install ncftpput or google.

The script needs you to supply all the details as command line parameters. So what we did was we had a spreadsheet of all the websites along with columns for things like ftp username, password, database name, mysql hostname, etc.

At first we just did an ncftpput -r, which would recursively upload all the files one by one. We then found this not to be working too well for speed so we moved to uploading a TAR file. We got a little creative and wrote a php file that we could also upload to the hosting space at rackspace and then trigger it remotely from the script using wget. The script would basically unpack the tar at rackspace.

 

<?php
exec("rm index.html",$out,$retval);
exec("tar --keep-old-files -xvf thesite.tar",$out1,$retval1);
exec("rm thesite.tar",$out2,$retval2);
?>

 

If the site is large the tar fails to fully unpack within the 30 second timeout that rackspace allows. No worries though. Just --keep-old-files parameter. Wget will keep hitting the unpack.php and each time the untar happens, it will get further, finally unpacking all the files. Some large sites took 11-12 tries to fully unpack but they did work.

Also note in the script where it says "wget…" You'll have to edit that line to what ever websitetestlink.com address RS is generating for you. You could make the whole domain a command line parameter.

As I noted in the subheading above, the third part of this phase is to update all the config files. It's likely you're running a lot of wordpress, maybe some joomla, magento, drupal, etc. We got creative and actually included the edits for the config files in the script that was migrating.

Here's some sample code that edits a Joomla configuration.php (caution, your mileage may vary):

 

cp /home/$1/public_html/configuration.php /home/$1/public_html/tmp/configuration.php
#edit configuration.php
sed -i "/\$log_path/s/'.*'/'\/mnt\/stor3-wc1-dfw1\/MASTERRSACCOUNTID\/${10}\/$4\/web\/content\/logs'/" /home/$1/public_html/tmp/configuration.php
sed -i "/\$tmp_path/s/'.*'/'\/mnt\/stor3-wc1-dfw1\/MASTERRSACCOUNTID\/${10}\/$4\/web\/content\/tmp'/" /home/$1/public_html/tmp/configuration.php
sed -i "/\$host/s/'.*'/'${11}'/" /home/$1/public_html/tmp/configuration.php
sed -i "/\$user/s/'.*'/'$7'/" /home/$1/public_html/tmp/configuration.php
sed -i "/\$password/s/'.*'/'$8'/" /home/$1/public_html/tmp/configuration.php
sed -i "/\$db /s/'.*'/'$9'/" /home/$1/public_html/tmp/configuration.php
#upload config files because we customized those and need to overwrite remote old with new
ncftpput -u $2 -p $3 ftp2.ftptoyoursite.com /$4/web/content /home/$1/public_html/tmp/configuration.php

 

We're using sed to edit the config file on the fly and then upload the version that correctly configured for RS to RS. Note that we put this at the end of the script after all the other stuff is done. There's probably a more graceful way to do the sed but we did what we could. This approach could be adapted for any type of config for "insert your open source script here."

Testing

The last thing to do after all this was to simply test the sites work. Just visit the websitetestlink in your browser. The thing about this whole process is that you'll hit various snags along the way. For example with the DNS migration various zones got stuck and we had to fix them. Then with transferring files, sometimes the write permissions on the configuration.php would be wrong and we'd have to fix that. It's just troubleshooting at that point.

A special note on SSL. Some sites of course will require SSL. There's no need to generate a new CSR from rackspace and get a new cert. Just simply copy the certificate files from the old server. You'll have to do a bit of research to find out where they are. First you'll have to find your httpd.conf. On a cpanel server it may be difficult to know where that actually is. It's been a while since I've worked with cpanel so I can't recall exactly. A common place is /etc/httpd/conf/httpd.conf. Once you're in that file check to see if the virtual host entry for the domain is in there. Or else check at the bottom of the file for the include statement. Its generally going to include a block of files like /etc/httpd/conf/vhosts/*.conf. Once you find where the actual vhost file is you can look at that. Look for an entry for "SSLCertificateKeyFile". Note the location of that file. Go and open the file and copy and paste the key over to Rackspace. Then also copy and paste the "SSLCertificateFile" over. Note that when you save the SSL at rackspace, based on the methodology described in this guide, it WILL take the site live immediately - because it's updating the A record for the domain.

Beware of HTACCESS. If you're site such as Joomla or Magento is using SEF urls with htaccess rewrite - you MUST set the RewriteBase in htaccess. If you don't the site will not show. You also may find it extremely valuable to add the following values to the end of the htaccess file. It will enable your clients to upload larger files via their admins. 

php_value upload_max_filesize 50M
php_value post_max_size 50M
php_value max_execution_time 200
php_value max_input_time 200

We actually automated this too by tagging this code to the very end of our migration scripts: 

 

sed -i "s/# RewriteBase/RewriteBase/g" /home/$1/public_html/.htaccess
echo "
php_value upload_max_filesize 50M
php_value post_max_size 50M
php_value max_execution_time 200
php_value max_input_time 200" >> /home/$1/public_html/.htaccess
ncftpput -u $2 -p $3 ftp2.ftptoyoursite.com /$4/web/content /home/$1/public_html/.htaccess

 

Beware of include paths! If you have code in your old sites that have something like "include('/home/whatever/blah/file.php')" that will fail. Not only that, it will disable php error reporting so the error is not shown to you. I'm not sure why error reporting is disabled for this type of error but I'm thinking that it's a security thing? Maybe they don't want people to be able to probe server root paths and publicly show what paths exist or not. If you have a blank site - check the includes.

Switchover

So once the site is working its time to switch it over. Because we created placeholders for all the sites using the RS control panel to start with, then we moved all the current DNS zones over to RS via the API, then we repointed the hostingcompany's dns servers to RS's Nameserver's IP addresses - RS's Nameservers are still pointing back to the old hosting servers. The only thing to do is to go into RS's control panel, into the client's website and update the A record back to the default it would have been set at before we overwrote them with the custom zone entries (that, again, point back to the old dedicated servers). So HOW do we know what the IP is at RS???

Do a dig on the "websitetestlink.com" url supplied in the General tab of the website settings. If you dig that, it will give you the correct A record. If you also have an FTP cname for the domain, you may want to point that to ftp2.ftptoyoursite.com

Don't forget parked domains! When you migrate the sites, don't forget to also migrate the alias/addon domains. Putting an alias domain on a website at rackspace is a bit weird. See if you can figure out how to do it, but if not, chat support and they'll tell you. I'm not writing in here how it's done because I just want to make a point that I think this part of the process is a bit funky at RS.

If you migrated your aliased domains to RS before migrating the sites, RS will not let you reset their A records via the API. To repoint the alias domains over to RS, you have to use the "donotexec" toolkit above. Its easy to forget aliased domains but clients will call up at some point asking where their other domains aren't working.

If you refrained from actually going to theclientsdomain.com in your browser, you can actually go to it now and it SHOULD direct you to the client's site at RS so you can further test. The reason for this is that if you haven't directly hit the client's domain recently, then you don't have their IP cached locally and your computer/router is going to go grab the fresh IP. If you're not sure then open up /etc/system32/drivers/etc/hosts file and "hardcode" the new RS IP in for the clients domain and visit it. Your computer will definitely be showing the client's site at RS so you can test it. If you're really unsure, make a change to the site via FTP or websitetestlink.com and see if you can see the change.

The last thing you want is to do a switchover but then get a call from the client that their site is in actual fact, down.

Conclusion

I hope some have found this guide helpful. I wrote it because migrating from a dedicated server to a cloud environment can be a real bear. What makes it difficult is the control panels and lack of api to speed up the process. You have to do so much work manually. If it were migrating from one dedicated server to another, it would just be a matter of copying all the files and doing general config. If this helped you please feel free to comment below.

Comments (0)Add Comment

Write comment

security code
Write the displayed characters


busy
Web Content Management System Web Development Technical Partners

Newsletter Signup

Signup for WinWorld's monthly newsletter
and special offers.

ARCHIVE >>
Our Web Design page on Facebook
  
Our Twitter Feed