bactrim ds capsules 100 mg female viagra pharmacy escrow out of business kroger pharmacy anderson indiana vente de diovan au quebec best desyrel prices what is wellbutrin mg used to treat amoxil 250 mg dosage how to take isoniazid buy urispas next day canada estro tablets online branded antibiotics online purchase amlodipinbesilat in australia claritin pill shortage levitra with no perscription doxycycline malaria effectiveness generic abilify no prescription clarithromycin in late pregnancy is there a drug comparative to chloramphenicol walmart pharmacy jobs oregon prograf supplier in uk purchase promethazine lowest price india lioresal price order flagyl on line usa wellbutrin medicine for depression what is combivent side effects lamictal dose for unipolar depression movalis birth control online canada buy priligy online pharmacy discount nitrofurantoin mg viagra mg india procardia no prescription tenormin tablets 50 mg ginseng medication order cialis coupon 30 tablets free where do i buy dramamine pletal online overnight premarin inhouse pharmacy augmentin canada sale buy prednisolone in ireland buy nolvadex online from india anacin usa keftab suppliers overseas zyban online ordering erection packs 3 pills online in the uk order isoptin uk pharmacy how to by nootropil online can order trileptal canada indocin low cost buying citalopram for dogs terlupa makan pil perancang noriday can buy sildenafila online discount cardura adalat prices usa ordering cialis super active tadalafil generic acquistare estrace in italia best mexican pharmacy online what does proventil treat how to use betnovate scalp lotion buy lady era tablets usa buy accutane online reviews buy brand viagra online from usa viagra for sale south africa cardura delivery london phone in order for brand advair diskus i pill periactin website generic levitra super active in usa prescription drugs for sale in mexico is there a generic substitute for nexium methotrexate dose calculator ectopic estrace buy online india vagifem on line in the mexico where could i buy cleocin without prescription painkillers online no rx metronidazol online pharmacies with out prescription what does vagifem clincin supplier in uk what is percocet used for synthroid medicine children withdrawal symptoms from paxil duration alfa flucon over the counter canada order fasigyne online without rx acheter pas cher combivent medication without prescriptions uk buy accutane tablets meclizine uk companies only zovirax generico ranitidine limited india is phenamax available over the counter is it safe to order acai half price lantus arimidex shopping quetiapinum without insurance generic desyrel in usa purchase generic retino a cream 0 025 zestril buy australia over the counter medicine that acts as colchicine purchase toprol in canada dyazide online buy pfizer viagra canada zentel online in usa floxin reviews for men betamethasone valerate 0.025 emoquette from usa ordering cleocin gel on line how to get caverta in australia alavert dose quibron t from india real viagra online aurochem laboratories palghar overseas pharmacy no prescription levitra professional price increase pilex discount diarex mg betnovate side effects otc supply of tamsulosin nootropil 800 mg tablets compazine pregnancy class football stats app the online drugstore colchicine is remeron legal in uk cialis cheap price synthroid 75 mcg tablet buy finax from canada buy doxycycline hyclate capsules clorfenamina dosis buy aciphex overseas ordering clarina meri adalat 1984 watch online what does ceftin treat post cycle therapy zyban brand name avalide online buy tretinoin 0,05 online australia no prescription where to purchase oristal viagra professional delivery uk acai berry pills walmart price eltroxin on line in the mexico long time side effects imitrex med cab kamagra gold stilnox cr information is there an over the counter singulair viagra super active for sale australia what is the generic for skelaxin buy lopressor online with out prescription diamox barato best place to buy nitrofurantoin in mexico can you get zestoretic comprar vagifem portugal health express pharmacy greystones where can i buy flagyl tablets misoprost lawsuit how to use benzac ac 2.5 albenza prescription only best price toradol lopid in croatia over the counter medicine containing metronidazole what is strattera like elocom online usa us online pharmacy no prescription levaquin medication from mexico suprax diclofenac sodium tablets how to buy minocin buy alesse 10 online doxi 1 india prescriptions cheap acticin permethrin zanaflex mg price can ceftin tablets be crushed diclofenac cheap australia pharmacy over the counter drugs similar to sepibest best place to buy zyvox in usa buy oratane online with no prescription clopidogrelum online from usa buy differin online with out prescription what is anastrozolo pills used for wv ginseng prices 2012 quiero comprar pyridium alavert uk pharmacy trandate online legally revia without script best place to buy prometrium without a prescription ordering flovent usa forzest sale online cialis buy viagra jelly in ireland safe beconase aq buy order disulfiramum without prescription acheter abonnement xbox live pas chere gasex during pregnancy azithromycin tablets usp 250 mg uses buy reglan 20 www.watch sony tv serial adalat online purchase dutasteride hair loss cheap prescription misoprostol side effects abortion can i order mycelex g no prescription in the usa buy calan 10 buying dyazide florinef australia companies only maximum tramadol dosage what does precose do generic flagyl uk cheap seroquel no prescription 25 mg yagara lawsuit settlements donde comprar brand cialis en colombia genuine diflucan best price coumadin with no rx what types of voveran are there buy qnexa online canada order imitrex uk pharmacy can you buy metformin over counter port huron hospital pharmacy place buy nizagara paypal accepted order medrol dosepak tablets florida wellbutrin ponstel shelf life ceftin fast india alli spain atacand 16 mg side effects viagra online express delivery janumet next day non prescription priligy pharmacy beat way to order revatio is prilosec better than protonix kesan sampingan pil perancang diane 35 zovirax free shipping levitra super active billig kaufen actoplus met xr generic cialis super active online india buy apo furosemida online without a prescription can i get a cialis prescription online shallaki cheap mexico pharmacy calan cost comparison overseas pharmacy no prescription danazol list of tesco stores selling frusemide ed pills actoplus buy usa mail order generic ortho tri cyclen viagra en ligne paiement paypal blopress tablet sale we bought a zoo wiki oracea uk no prescription flovent cfd download free order carvedilolo on line mexico buy amoxil online from mexico starlix side effects uk 60 mg cheap zyvox differin without prescription miami half price sildenafila buy zentel online uk no prescription where is allopurinol metabolized oder mg tablets of alfa flucon buy generic floxin online no prescription what kind of holiday is purim aciclovir from europe levlen mg mexico uk version of dramamine buying lopressor for dogs percocet pas cher purchase altace mexico citalopram drug in fr pharmacy where to buy retin a 0 025 ointment canada pharmacy no prescriptions online kolla filmer online gratis rumalaya forte no rx is generic avalide available in usa where can i get voveran pills where to buy bactrim drugs online augmentin 625 mg tablets medicine pilex without script buy diovan greece us pharmacies online that sell atomoxetin prevacid back order cipla generic propecia chloromycetin pharmacies in how much is bupron tablets petmeds no rx lamisil online canada generic hytrin brand positioning prednisone 20 mg tablets uses doxycycline hyclate acne does work trental online india periactin user reviews can you get high off levitra levlen ed buy online no prescription cafergot pharmacy online safe cafergot no prescription ginette 35 buy no prescription original advair diskus online non generic depakote vytorin medication lopressor to buy in england florida bupropion ortho tri cyclen australia companies only emsam lawsuit canada buy aldactone cheap overnight cleocin gel shortage 2012 colchicina generico italiano cymbalta without subscription allegra canada no prescription buying zertalin using paypal ondansetrona dosage instructions purchase ciprofloxacin hydrochloride prevacid limited india lexapro price india top 10 online erexor sites malegra dxt without a prescription buy tetracycline pills in the us bisoprolol hydrochlorothiazide prices imitrex where to buy in canada calan spain buy oracea tablets american levoxyl suppliers of paxil in us what is the generic for zestril generic zyvox available discount cheap carafate free delivery cialis aus kanada lopressor over the counter drugs compazine prices usa acyclovir zovirax cost without rx neurontin medication information side effects of anastrozole arimidex canadian online pharmacy percocet where do i tamoxifen in australia cheapest levitra sale uk zocor cheap price cost of ventolin inhaler ireland sildenafil citrate max dose discount brand levitra of canada proventil hfa rxlist list of tesco stores selling cipro can i get ophthacare can i buy albenda in canada comprar actonel portugal role azithromycin bronchiectasis zyvox for sale online isoptin limited india alti doxycycline on line in the usa cost of wellbutrin percocet tablets ovral l usa no prescription purchase yaz on line in canada seasonique cheapest rate singulair shortage lamisil spray boots shuddha guggulu over the counter uk generic ciplox usa pharmacy amitriptyline 10mg dosage digoxin order buy aceon mg online aygestin pills online in the usa cialis billig kaufen how to take dilantin keflex no prescription needed canadian online pharmacy atrovent online luvox cr medication buy pyridium otc buy revatio pills sustiva online legally does walmart have generic zyrtec levitra drug in uk pharmacy online drug for flovent order altace online no presctiption proventil for sale philippines glucotrol order online no prescription best site get aviane 28 buy styplon tablets cialis for men nimotop medication amoxicillin and the pill bleeding over the counter medicine estradiol valerate rush limbaugh viagra thailand buy noroxin online usa levitra vs. viagra effectiveness i want to pay some otomax use clomid fertility drug best blood pressure medication for kidney disease boots aspirin extra tablets what is the dosage of metformin for pcos generic suprax us order olanzapine online no presctiption doxazosin with prescription how to buy eulexin in london online pharmacy uk lukol how to take methotrexate for psoriasis comprar sinequan original buy ampicilina online safely best place to order picrolax in us buy chloroquine proguanil tablets canadian drugs northwest pharmacy can i make flucazole cheap genuine plendil online where to buy tegretol lamisil limited india pulmicort uses medication antivert uses medication online pharmacy uk zofran how to get isoniazid drug buy augmentin mg where can i buy prescription drugs without a prescription ezetimibe bnf buy trazodone without a prescription lipitor atorvastatin calcium canadian pharmacy online arjuna kamagra oral jelly no prrescription viagra 100mg tablet price ordering low dose aceon actoplus met pills drugstore coumadin diet education tramadol online no prescription cod to buy tretinoin in uk generic colchicine cost best medication for anxiety and depression 2012 acheter voltaren plast buy singulair online us reglan perth australia what is atorlip 20 tablets cheap aygestin no prescription myasthenia gravis medication mestinon order thyrohormone overnight where can i buy digoxin online without a prescription generic lipitor recall lot numbers buy lamictal 100 mg uk meloxicam enolat to buy in england interesting thalidomide facts coversyl 4mg emoquette refills phexin on line with no prescription parlodel no prescription fedex ups best periactin prices order zyprexa in buy ortho tri cyclen mg online for order minocin from india without prescription astelin without prescription altace without a prescription from australia purchase prinivil in uk india pharmacies online that sell levoxyl max daily dose of doxycycline blopress uk next day delivery roxithromycin 150mg biaxsig microzide on line no script generic drug sales us mestinon mexican pharmacies can you buy yasmin over the counter uk american myambutol clincin generic india valtrex for dogs buy aspirin dose post mi cheap generic betoptic brand viagra with no rx buy viagra soft online ireland cheap allopurinol pills 100mg generic buy fucidin tablets australia depakote tablets 150 mg generic zovirax us cialis super active reviews and dosage liquid elimite review abilify paypal can you get pregnant while taking yasmin buy cheap diclofenac gel pills rumalaya gel coupons actonel best price levothyroid uk online tizanidina reviews for men avapro with paypal payment ann summers womens viagra procardia on line in the mexico ali yasmin australia best place to buy obelit in usa how big are zithromax pills nitrofurantoin liquid cost order adalat 40 mg adalat 5mg tablets deltasone buy online canada buy nitrofurantoin cheap serophene pills buy propranolol 20 mg tab pliva med rx canada cheap ivf meds in usa free viagra samples by mail aricept 23 mg prices get propecia nhs better than ginseng costco pharmacy duprost price zovirax pills for cold sores low cost kamagra gold sinequan drug oversea best way use cytotec abortion pharmacy buy drugs floxin mexican tenormin zanaflex canada drug store is it safe to order himcolin albenda online reviews on nitrofurantoin buy orlistar canada generic pamelor switzerland imuran tabletas 50 mg where can i get some dramamine how to order esperal epivir hbv reviews for men orlistatum without prescription medication serevent generic uk avalide prescription only actonel risedronate sodium tablets buy viagra soft online uk no prescription olanzapine cost effectiveness anafranil to buy in the canada without a prescription cipralex without prescription order lamisil spray american vasodilan abana shop net best prices 20mg levitra online buy singulair pills in the us cheap cytoxan 100 mg disulfiramo online uk buy keflex online india cheap viagra. com isotretin price india buy canadian rizact buy salvent online pharmacy purchase aleve online buy acai pulp melbourne orlistar usa pharmacy jobs northern ireland how to buy viagra on line buy atorlip 5 mexican pharmacies dutas drug class nitrofurantoin mg usa kamagra maximum dose worldwide pharmacy pletal can prednisone get you high blood pressure amoxicilina generic 2013 drugs revia italiano ordering strattera mexico maximum viagra dose lamisil ordering online pharmacy medicine ciprofloxacin used for ranitidine tablets ingredients losartan potassium and hydrochlorothiazide tablets erexor not generic codeine syrup addiction proscar without perception azitromicina no prescription needed canadian online pharmacy reviews on lotensin voveran sr online usa no prescription buy caffeine ergotamine australia posologia aciclovir comprimido 400 mg nitrofurantoin over the counter usa buy tablets online order lamisil buy actoplus with a mastercard round light blue mylan a1 cialis 20 united states ampicillin 500 mg dose birth control pills diamox ginseng discount no prescription mentat medicine buy generic viagra using paypal anteovin tablets from buy toprol next day delivery baclofen without memantine research grade motilium duphalac lactulose solution for babies tadalis sx in the uk now buy yasmin online cheap pulmicort flexhaler piracetam effects on blood pressure drugs similar to orlistat order rumalaya online uk pravachol without prescrip non prescription yagara pharmacy periactin medication where to buy overseas pharmacy no prescription retino a cream 0,05 zoloft drugs what is ginseng for anafranil echeck propecia shortage can you buy sildenafila in ireland minocin discount code ordering fluconazol india can you buy zyrtec over the counter does lisinopril cause you to gain weight sildenafila with prescription omnicef from uk best forzest prices buy zestril tablets australia lotensin pharmacies can i get exelon siberian ginseng seeds australia teva levofloxacin alcohol amlodipinbesilat mg no prescription roxithromycin for men sale in uk antibiotics alcohol metronidazole buy clavamox boots pharmacy buy elocom cream buy zestoretic no prescription canada pharmacies online that sell l thyroxine allegra by mail 24 hours rx pharmacy tablet pages l thyroxine medicine online biaxin to buy evecare order periactin stores drug discount furosemide from canada motrin 800 and breastfeeding how to buy diovan express scripts prior authorization form for adderall buy malegra fxt hong kong cialis 40 mg side effects best medication for anxiety during pregnancy mentax where can i buy what is erythromycin es tablets 400mg celexa order in the us flunil pharmacy prices list mestinon prices cvs what does purim sameach mean hyzaar online sales what is eurax tablets buy retin a gel 0,1 pills online cialis livraison discrete ralista in us finpecia uk next day delivery flunil no prescription minipress bonus pills delta cortef for sale uk quiero comprar prednisone buy cialis jelly online us no prescription pharmacy buy drugs viagra allopurinol sold over counter online deltasone purchase cheap methotrexate prescription xenical over the counter drug medication from mexico retino a cream 0 05 evista where to buy in canada doxi 1 without a prescription from us singulair prices usa sinequan free shipping phone in order for styplon nitrofurantoin capsules nitrofurantoin mono mac 100mg caps price www erexin co uk orlistat costco keppra 100mg tablet imitrex order biaxin comprar tadapox maximum dosage doxycycline alcohol dose canada pulmicort tablets online what is cialis soft tablets what is alphagan drops used for carvedilolo order in the us atorlip 10 generico italiano tadapox medication side effects buy levothroid online no prescription us blood pressure medicine called bystolic where can i buy asacol in canada buy generic finast generic avapro in usa emoquette usa bactrim buy online ireland vpxl costco www.canadian pharmacy 24.com order cleocin gel without rx buy otc drugs online india suppliers of zyloprim in us xs 650 levitra medication side effects buy generic carafate online no prescription brahmi australia price colchicina online azitromicina drug in usa pharmacy what is betnovate for antivert overnight delivery rx btv onlain.bg order metronidazol online no presctiption effects of taking thyroid medication how to use prednisone cheap bactrim online kelnor usa pharmacy compare meds online review how to take flagyl 400 buy probalan hong kong purchase coversyl on line in canada a good web page to buy rythmol with no script what is tizanidina made of buy amoxicilina with no script is perindo 4mg the same as coversyl 5mg how much promethazine do you have to take to get high clomid generic equivalent sulfato de amantadina 100mg hydrochlorothiazide from canada with no prescription terramycin online usa long term side effects of rumalaya liniment buy generic pyridium online with prescription canadian pharmacy spam cheap painkillers no prescription order buspar on line canada l tryptophan costco nasonex mometasone furoate monohydrate nasal spray tretinoin 0,05 usa sale ponstel canada online no prescription generic orlistar for sale on line lowest price ponstel how to take topamax allegra generic target how to take prilosec otc maximum dilantin loading dose commande cialis canada buy retin a gel 0 1 5 non persciption viagra jelly can you only get levlen on prescription terramycin canadian pharmacy what does flonase look like medication prometrium generic australia what is hoodia gordonii extract buy ranitidine where can i buy apo furosemida paxil withdrawal lawsuit 2012 stediril with no perscription acticin noprescrition needed usa online pharmacy lexapro nizoral canada shoppers drug mart zoot z pack transition bag can you order prednisolone prescription available buy dutas pills in the australia cheaper alternative to strattera purchase tenormin on line in usa buy elocom online no prescription usa cialis soft generic india cheap abilify 6 pharmacy walgreens pharmacy puerto rico buyers of riperdal canada levitra frankreich erection packs 3 otc europe actonel sales 2009 l tryptophan delivery uk buy demadex mexican pharmacies side effects of accutane on liver pain pills from canada efectos secundarios de lisinopril and hydrochlorothiazide azitromicina for men sale in uk how to get allegra drug getting prograf in australia buy pills online from mexico buy generic aviane 28 online with prescription what is dramamine pills used for i pill lansoprazol website free propecia sample what strength does norvasc come in vytorin coupon buyers of myambutol canada how long does it take for buspar side effects to go away buy ampicillin usa humana walmart drug prices buy wellbutrin sr without a prescription from canadian pharmacy cigna mail order pharmacy address ordering lantus india order clomifene on line india long term side effects of azitromicina ivenox generic name biaxin usa sale usa buy arzomicin without prescription medazole drug in mexico pharmacy what is brahmi in tamil mevacor no prescription overnight delivery use requip coupon online glucophage dosage administration lerk jet sildenafil valacyclovir online no prescription female viagra online store what is clomid made out of unisom drug classification buy generic plavix tegretol in the uk dulcolax over counter medication elocon scalp lotion over counter donde puedo comprar cephalexin trandate tablets purchase on line where can i purchase flomax side effects of orlistato abana brands india cheap flucazole sale uk lasix banned horse racing decadron pct buy buy suhagra online from usa buy tizanidinum online amazon purchase oestrogel in australia indiarx trazodone 50 mg tablet sdk medicine online levitra super active plus flagyl for dogs buy best bupron sr prices where purchase pariet tetracycline drug in canada pharmacy buy parlodel capsules difference between propecia and finpecia order erythromycin generic buy diclofenac gel online from mexico claim secure pharmacy what is the drug amitriptyline hcl used for generic effexor xr capsules current price rogaine 5 maxalt without insurance lariam medication order aleve tablets for sale buy mircette birth control florida detroit diesel allison jacksonville emoquette canadian online overnight pharmacy prednisone 20 mg dogs side effects meloxicam 7.5 get you high beta val women buy buy geriforte syrup capsules estradiol valerate coupons buy extendaquin tablets canada better than glucotrol xl cephalexin usa cvs prices vpxl lowest price bentyl im dose flagyl er uk sale best site for astelin buy artane without a prescription from canadian pharmacy mail order live butterflies zetia delivery london purchase clopidogrelum in mexico buy levitra plus in usa fluoxetine drug in canada pharmacy nimotop 50mg tablets femara shortage flagyl buy online canada store generic zanaflex cabgolin buy online india combivent tablets 40mg viagra sublingual trusted online drug stores in canada atacand drug in uk pharmacy buy diovan pills diclofenac sodium overdose side effects nitrofurantoin mono mac 100mg caps side effects accutane uk nhs buy mobic online from australia oestrogel no script methotrexate pregnancy men lamictal xr generic launch generic arava usa pharmacy what is alliteration used for celexa online overnight where amaryllis outdoors bulb buy vistaril online overnight is generic propecia just as effective is it safe to buy meds from canada how to get propranolol drug purchase keftab in uk cordarone capsules allegra where to purchase testosterone therapy for men benefits feldene discount medications plendil medicine used coversyl generic usa now brand acai berry the chepest lamisil online no prescription uk for clonidine buy otomax online thru paypals buy levothroid inhaler canada drugs similar to robaxin novo digoxin fast usa propecia side effects go away buy alesse low cheap price us pharmacy online trental comprar thyroxin portugal do you need rx hydrodiuril health canada levitra plus acquisto cialis originale italia mylan wellbutrin sr reviews very cheap levothyroid compare prices zoloft buy cipro online safely best site to buy neurontin buy zaditor online overnight gyne lotrimin for sale philippines phone in order for lanoxin celexa noprescrition needed uk online pharmacy why has deltasone been discontinued zyprexa buy uk purchase viagra professional on line in australia cialis jelly over the counter usa cheap estradiol valerate free delivery levitra professional noprescrition needed usa online pharmacy amoxil canada head office provera and clomid pregnancy best place to buy lexapro in canada can we trust lipitor online lipothin woldwide shipping generic serevent usa pharmacy buy flagyl er next day symptoms of z pack antibiotic where do i disulfiramum in india speman pricing best generic prometrium sites is estro available over the counter baclofen alcohol treatment 2011 lowest price dutasteride buy ponstel online no prescription canada himcolin pharmacy order himcocid tablets online is it illegal to buy medications online cheap canadian tizanidina no prescription colospa purchase mirapex generic cost chloromycetin usa no prescription where cane i buy citalopram where abilify disorder treat lamisil pills no prescription metronidazole wiki pl buy elimite online amazon buy salbutamol pills in the australia zocor to buy calan supplier in uk combivent costco legal buy bactrim online canada amoxil bd 875 mg sertraline withdrawal symptoms brain zaps order amaryllis flowers generic erythromycin paypal plavix not generic buy albenza 50 buy generic sildenafila online no prescription paxil uk brand name generic cefadroxil no prescription best place to buy zyvox in india buying tadalis sx from canada no prescription viagra womens viagra lisinopril for sale uk what does bupropion do if you snort it tadalis sx over the counter usa i pill diclofenac website canadian drug company nizoral prescription drugs from india safe clozaril 100 mg tablet buy prevacid online pharmacy vytorin tablets online aurochem pharma india best memory enhancement drug how much is clincin tablets yagara from canada with no prescription myambutol prescription coupon endep prix en pharmacie en france tadalis non perscription countries buy generic arzomicin online best place to buy bisoprololi fumaras without a prescription research grade mentat where purchase cystone pill rx health altace products alphagan generic cost mail order pharmacy florida jobs weekly actonel dose lisinopril legal in england order renova without rx accutane lawsuit canada 2012 avodart pct buy janumet brand positioning ditropan discount medications order flucazole on line mexico ampicillin noprescrition needed canada online pharmacy ponstel drug class buy zocor online india biaxin dosage rxlist bentyl online from canada azulfidine perth australia generic zoloft pills pictures how to buy hyzaar in london lantus prices cvs ivenox india no prescription warafin generic 2013 drugs hytrin on line no script clonidine 1 mg tablets order cialis online fast shipping carbozyne legal in england buy isoniazid greece estro over counter safe to buy generic claravis from usa clomid uk pharmacy canadian drug company tegretol grifulvin v pill canadian what is haldol pills used for canada and pyridium overnight pharmacy celebrex buy janumet pills in the australia buy clomid without prescription uk cefixime oral suspension for babies lady era canada drugs brand lotensin buy search female viagra allegra medicine india buy revatio online without a prescription combivent inhaler best prices viagra onde comprar portugal depakine chrono cheap us pharmacy where to purchase dutasterid triamcinolone injection dose famvir online forum buy carafate xr without prescription esperal no rx walmart pharmacy seroquel buy lotrisone cream online canadian zoloft uk equivalent order himcolin from australia without prescription tamsulozin medicine online augmentin and alcohol side effects generic allegra sale buy finpecia with e check us pharmacies online that sell orlistatum safe alli no prescription online minomycin india renova uk pharmacy is there a generic alternative to voltaren gel arjuna in croatia buy lamisil mg rhinocort aqua side effects how to use flovent with spacer can buy ceftin online purchase anastrozolo on line in mexico what is trial erection packs 1 pills used for cat medication prednisolone comprar actoplus met portugal albuterol sulfate side effects prednisone 20mg for sale stromectol mexico pharmacy atorlip 10 online canada triamterenum to buy in the canada without a prescription how to buy cialis jelly online what is rumalaya forte drugs what is the correct dosage of eurax metformin er no prescription canada female viagra no prescription fosamax italiano avalide medicine low dose accutane regimen 400 mg lisinopril sale plendil buy canada cheap ventolin australia stopping thyroid medication effects cardizem from mexico merck fosamax sales buy eurax pills in the us pliva 433 get high can fosamax tablets be crushed zyrtec cheap canada pharmacy how much will avalide cost what is the drug adalat used for grifulvin v usa no prescription where do i retin a 0,05 in canada lynoral without prescription ordering cialis sublingual micronase mexico companies only calan canadian online purchase ciprofloksacin mg mazda rx8 for sale cheap prevacid tablets from buy erythromycin 250mg gastro resistant capsules viagra price in hyderabad amitriptyline tablet sale lipitor best online non prescription pharmacy where to buy speman online mexico metrogel canada drug store can i buy viagra plus in canada costco pharmacy kamagra soft price venlafaxina pills online in the india buy lexapro mg medco mail order forms prescriptions buy cyklokapron bulk buy eurax 40 resources for unisom ordering low dose minipress cost of clomifene without insurance colchicine generic equivalent maxifort 50 mg dosis diovan hct side effects mayo clinic topamax alcohol addiction flonase usa cvs prices metformin pcos weight loss success purchase delta cortef in usa best place to buy amoxicilina online caffeine ergotamine mexico companies only where can i get salbumol pills diclofenac birth control online india cardizem billig kaufen buy levitra online from india buy xenical weight loss pills coreg side effects long term use zebeta otc europe anastrozolo fda approved to buy without prescription frumil to buy in the canada without a prescription alli weight loss free sample baclofen tablets 10 mg alphagan side effects long term use tadacip mexico pharmacy genuine florinef 100mg buy viagra online mexico no prescription is generic aciphex effective seasonique online from uk generic elocon safe benadryl price at walgreens wigraine australia price cheap celexa genesis acai berry 100 fasigyn daily use reviews demadex canada synthroid discount prescription drugs januvia 50 mg prices order lamisil on line india how to order vistaril online buy feldene online from mexico where to buy cheap generic sinequan dimenhydrinate tablets uk orlistato uk brand name comprare cialis tadalafil cialis chloroquine phosphate cost lisinopril mexico no prescription what is the difference between generic viagra and viagra where can i puchase minomycin buy periactin tablets uk prescription approved lotensin generic india trazodone priapism lawsuit extendaquin on line in the uk arjuna pills online in the india sublingual sale viagra online where to buy flunil without a prescription bactrim dose pediatric uti endep dosage for depression pharmacy in canada toronto buy amantadine syrup order maxalt online uk medrol medication overnight delivery order viagra online singapore estrace sublingual dosage can you get high off mobic colchicina mg usa how to buy silagra online buy albenda online from mexico cheapest benicar paypal singulair online usa no prescription colchicine pericarditis levlen cost in canada can you buy estrogen online buy viagra professional 15mg online buy pariet online uk no prescription zithromax generic form order acnetane on line india mail order alesse buy tetracycline paypal accepted pariet generic mexico what is lamisilate pills used for where purchase sertralina purchase cefixime on line in usa minocin 100mg cheep buy colchicine without a script levothroid without prescrip buy maxaman in india online buy ditropan online no prescription where can i buy phentermine 37.5 without a rx purchase hyzaar on line in canada vantin medication information ordering low dose roxithromycin female viagra no prescription canada fucidin crema pret where can i buy lady era strattera on line in the canada order quibron t online uk doxycycline medication order how to order retin a 0 025 online purchase allegra in us buy aciclovir tablets on line offering purchasing ceftin online cymbalta online pharmacy shipped to canada is it safe to order tenormin order cefixime online with visa tijuana domperidone pharmacy online buy phenergan lowest price neurontin purchase buy nexium tablets mexico how much is innopran xl tablets tretinoin 0,025 cheap uk does purinethol cause weight gain shallaki fast india what is lipitor medicine robaxin generico italiano sominex drug canadian pharmacy prednisone medicine wiki aygestin side effects long term use erythromycin mg buy rogaine 2 from canada with no prescription zocor online legally buy lamisilate online canada naprosyn online usa imdur 3days delivery otomax cheap us pharmacy clonidine from canada without rx best site for nootropil purchase movalis pills is venlafaxina available on line in canada i pill duphalac website united pharmacies uk finpecia where to get propecia prescription cordarone for sale online side effects of dilantin levels too low can you buy confido in ireland buy cleocin 10 natural substitutes for cialis buy acticin cheap drug generic ciprofloxacina canada extendaquin cheap us pharmacy betoptic 100mg buy atorlip medications order thyroxin on line canada is it illegal to order generic flucazole atorlip 20 max dose where can i purchase zentel phenamax tablets from buy crestor 10 mg wikipedia order voveran canada buyers of c ratioph canada olistat canada pharmacy lantus drug in fr pharmacy cheap clomid 100 mg lopid shopping can buy etabus online where to buy liposafe without a prescription buy wellbutrin sr online no prescription canada xeloda women buy viagra prezzo online thyrohormone with no prescription maximum dosage of celebrex what is casodex for zovirax cream for children buy ivenox xr without prescription tinidazole dosage for amoebiasis flagyl er without prescrip buyers of diovan canada voltaren ec 50mg buy altace online no prescription buy levothyroxine synthetic thyroxine t4 order lisinopril online uk buy wellbutrin sr online no prescription united states pyridium no prescription canada what is sofilex cephalexin 250 mg buy online elimite generic advair on line in the canada carafate online in canada pramipexole tablets 0.25mg differin gel quanto costa how to take ampicillin 500 purchase aygestin on line in mexico purchase 3 aciphex mg ordering demadex india buy tizanidinum online us no prescription cheap diarex no prescription flagyl best online non prescription pharmacy canada lamisil tablets online aprovel birth control online uk purchase diamox in uk cordarone daily use reviews rumalaya roche precio argentina buy zithromax xr without prescription voltaren generic drug abilify rx assistance program fertomid pill canadian generic fluticanose india tetracycline pharmacy orlistat capsulas de 120 mg discount diarex from usa where to buy generic zyrtec d drugs order cleocin on line mexico aceon mg india cabgolin pills online in the uk order bupropion online with visa homeopathic viagra alternatives where can i purchase acai berry in canada estro with no perscription kytril bonus pills indian pharmacy aciphex buy bentyl without a script aristocort usa no prescription bupron online pharmacies with out prescription no script online pharmacy buy ranitidine online no prescription canada celapram buy online us mexico pharmacies online that sell depakote purchasing triamterenum online kamagra jelly sale uk cheap keflex antibiotic for strep throat purchasing atomoxetin online olanzapine prices at costco keftab generic mexico west indies vs new zealand live match where can i get omnicef pharmacy has best price cipralex altace hct medication buy rhinocort boots pharmacy buy prednisolone online amazon retin a 0,05 tablets symptoms of asthma in babies raloxifeno delivery buy zanaflex online amazon ginseng cultivation in india metronidazole no rx is there a shortage of hyzaar buy vytorin online at canada pharmacy albendazole chewable tablets spc elavil 10 mg amitriptyline hcl cheap glucofage uk ashwagandha indian name orlistar usa pharmacy generic prednisolone us finisteride viagra buy anacin in italia buy real fincar arimidex low dose birth control movalis buy without nexium uk boots best price for real ophthacare dutas order on web where to buy american ginseng seeds is it legal to get prescription drugs from mexico where can i get compazine from buy eldepryl online usa avodart 100mg cheap buy suprax no prescription buy dramamine patches amoxiline delivery is it illegal to order generic lipothin xalatan latanoprost side effects donde puedo comprar singulair cheap canadian parlodel no prescription buy ditropan online canada no prescription zyloprim drug in mexico pharmacy cheap liverpool tickets 2011 buy generic finpecia online no prescription where to buy permethrin mevacor online canadian where to buy benadryl online uk cymbalta discounts codes cheap albenda mg what is the dosage for zyrtec in children symptoms of chlamydia in men throat what is celebrex pills used for permethrinum online from canada cheap effexor xr 40 mg zoloft 100mg tablets where can i puchase seroflo amoxicilina noprescrition needed usa online pharmacy order ortho cyclen uk pharmacy top 10 online levaquin sites ordering tinidazole viagra par telephone meloxicam enolat on line no script canada buy nexium without prescription generic mestinon safe lansoprazol over the counter drugs trandate mexico companies only cheap celadrin sale uk cilest sublingual dosage zedd uk companies only order strattera no rx canadian pharmacy cheap diclofenac gel india cleocin gel medication order trental pct buy buy saltwater fish online australia buy hydrodiuril online canada no prescription atarax dosage for adults mail order dilantin online femcare prix en pharmacie en france erection packs 2 drugs quality can you split zocor tablets legal buy viagra sublingual online canada what are the different types of pills called forum next day cheap rhinocort online capoten sent to spain lipitor pills sweat yaz tablets online over the counter ponstel code red 7 pill ingredients mometasona pills online in the canada can you only get kamagra gold on prescription buy pfizer viagra online trial erection packs 2 canada head office do you need rx gasex parietal lobe function definition can you buy levitra at walgreens frumil prescription only brafix phone orders buy vasotec tablets finax medicine online wellbutrin dosage for adhd zantac for gastritis reviews fasigyn drug in fr pharmacy maxalt uk pharmacy isotretinoin reviews uk how much will triamterenum cost online pharmacy uk fluticanose how to buy aviane 28 original seasonique online generic kamagra in usa online no prescription uk for nolvadex generic pills for torsemide generic promethazine usa cialis viagra wiki 100mg where to buy moduretic online mexico retin a ge without script ordering prometrium usa quickest synthroid best place to buy dulcolax what are the side effects of celebrex tablets cefixime online coupon code buy proscar 100mg online is zenegra available over the counter how much is alli diet pills generic uk paypal erythromycin best site to buy zyloprim non generic advair diskus oristal without a prescription from india pozitivpszichologia buy yasmin low cheap price bupropionum online in uk get tinidazolum toronto brand cialis buy mexico buy lamisilate tablets india herbal diet pills india buy flagyl singapore where to buy lozol with echeck buy hong kong discount generic rhinocort naprosyn us pharmacy cialis jelly tablets us online sex pills for women nz dutas pas cher zyloprim drugs online purchases requip over the couter where to buy ditropan online canada order duetact no rx canadian pharmacy riperdal shop net where to buy tamsulozin online india apcalis sx tablet sale antara without prescription pills aricept 23 mg tablet suprax antibiotic and alcohol haldol without a prescription cheap salbumol no prescription can i buy beta val in canada online pharmacy uk pilex ciprofloxacin 500mg antibiotics ordering cheap generic amantadine dutas cheap us pharmacy best place to buy metronidazole cara pengambilan pil perancang yasmin keflex dose buy fluoxetine pills in the uk healthboards etodolac order cefixime lowest price american express account login australia ou acheter furosemide order motilium over the counter cardizem to buy from europe exelon stock cost basis purchase suhagra buy trileptal in usa buy baclofen capsules aches and pains clinic first canadian place retin-a zitromax fast india provera for sale online generic uk paypal benicar list of tesco stores selling levitra super active cefixime gonorrhea cdc pharmacy 1st web co uk online pharmacy no prescription needed female viagra retino a cream canadian online overnight pharmacy ventolin maximum dosage sumycin buy uk paroxetine dosage anxiety disorders health canada disulfiramum motilium uses medication purchase keflex in uk top 10 drugstore shampoos oferta cialis generico metronidazole canada online no prescription buy retino a cream 0 025 mg to buy diovan almetec price india meloxicam 7.5 mg get you high femara online store allegra 180 mg fexofenadine hydrochloride buy vasotec online amazon oral isotretinoin therapy atomoxetin without insurance antivert medicines dosage directed lasilix buy uk generic accutane online purchase zyban on line in usa cialis jelly legal in england phenergan rectal pediatric dose what is pyridium used for doxi 1 mg canada cheap himcolin delivered overnight where can i purchase olistat buy modafinil online no prescription uk comprar torsemide en argentina antivert pharmacy online discount prandin otc search valtrex tesco pharmacy viagra 2012 fluoxetina on line in the mexico atacand to buy in the canada without a prescription can you buy dapoxetine online prescription drugs without prescriptions mexico beconase aq australia nombre comercial y generico de haldol buy rizact with mastercard buy pulmicort hong kong order cheapest yamaha rx 100 costa rica indocin suppliers overseas
Home Blog

Migrating websites from dedicated cpanel servers to Rackspace Cloud

General

Written by WinWorld Wednesday, 21 March 2012 19:56

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.

   

Using Eggdrop App as a virtual yard sale

General

Written by WinWorld Tuesday, 20 September 2011 14:17

eggdropI've sold my stuff on a number of yard sales throughout my life as I'm sure many have. One thing I never liked was all the effort involved. It don't like how you have to pick everything up and take it outside and potentially tag it. Then if it doesn't sell, you bring it back inside or take it to the thrift shop or dump. Or worse yet, if it rains you run around like crazy with tarps, etc. All this to make a couple hundred bucks (depending on what you're selling).

If you don't want to have a yard sale, there's always eBay. To me, eBay only seems to be for certain things. If you have something unique, valuable and shippable, then eBay is the way to go. A custom guitar for example. If it's a keyboard and mouse combo for $2.50 then eBay is not the way to go since there are 1000s of other sellers and you won't sell your item. The alternative is craigslist. You get to deal locally. To their credit, craigslist has kept things simple. You put in a title, price, description, place and pictures. To me this still seems a little harder than it needs to be. You've got to verify who you are and there are all these rules for posting stuff. A drawback of craigslist is that it seems you only have network marketers and dating services on there any more. They have not evolved.

Here's what I want...

I want a mobile app where all I have to do is take a picture of what I'm selling. That is litterally it. One step. If I want to title and price it, fine, its easy enough to do that quickly. Mobile phones have camera's built in so it just seems like the most logical decision to use them to make it easier to sell stuff. Recently the app "Eggdrop" came out. It seems to be pretty close to what I want. This article is a review of the app plus some things that I did to extend it's functionality into what I wanted.

   

Creating branching logic in multi-page RS Form Pro

Joomla

Written by WinWorld Friday, 26 August 2011 15:35

RS Forms is a great component. Its got all the hooks in the admin to be able to add any kind of advanced dynamic functionality that you want. A recent version of RS Form introduced the concept of 'pagination' or - breaking your form onto seperate pages. This can be a handy feature if you feel that your form is too ominous in it's entireity.

What we wanted to do however was build special logic into the sequencing of the pages. So based on how the user answers a question in RS Form, we direct them to the next question we want them to see. In the form builder world, this is sometimes refered to as branching logic. Understandably, the makers of RS Forms have not added this feature because it's possibly hard to administer. However by adding some jquery to the form, we can add the functionality we need.

Here's how you do it...

   

Processing Credit Card Payments with RS Form Pro

Joomla

Written by WinWorld Friday, 26 August 2011 14:20

RS Forms is a great component. It lets you build forms on your website by adding the fields you want. There are a number of default layouts for the form but what I like is that you can do your own layout for the form by moving {tags} around in HTML and putting the fields where you want them. you can also add attributes to fields for JavaScript actions and CSS styling. This is the first of two new tutorials I'm doing for RS Form. I have done  previous tutorials that you can find here. .

How to setup RS Forms Pro for Authorize.net payments

1. SSL in place

The first thing you have to do is get yourself an SSL certificate and make sure that is configured. Then you have to make sure that when you send people to the form, that the link is HTTPS. It is possible to PHP code in the form to sense this and automatically redirect but we have not bothered with this.

   

How to compare us to other web firms: what's not included

General

Written by WinWorld Tuesday, 16 August 2011 14:22

focusWhen shopping for a new web provider, it can be difficult to compare apples to apples. There are so many variables. One of the main points of comparison is price. With web development however there could be so many things included or not included.

Take house building for example, will the builder also landscape your yard? Will they also furnish and decorate the new house?

With websites, there are services that some firms throw into the package deal that we feel should be priced seperately (analogous to the house example in landscapers and interior decorators).

   

Page 1 of 9

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