Had to move azbikelaw.org (and cazbike.org) hosting today.
My previous two IPs on Webhost.pro (WHP) had all sorts of, um, adult-sounding website names (DirtyWivesClub? euroButts?), 184.108.40.206, and more recently 220.127.116.11 [interestingly, it looks like WHP moved my account on their own volition as of mid-March, about a month after I switched the traffic to Stablehost, to 18.104.22.168 webhosts sometimes (finally) figure out loading issues on their own?]. WHP was very inexpensive, unfortunately I ran into problems back in early 2016 that were resolved by webhost.pro moving my account (but I had to nag them to do it; but did cause trouble for a week or more until they finally acquiesced to move my account to another server. Everything was fine for a year or so, until Feb 2017 when performance problems arose again, so I jumped ship to Stablehost, which is about twice the price, after a “50% off” coupon (that recurs) through WebHostingTalk forums.
Prices comparison of old vs. new hosting, updated 5/9/2017:
- WebhostPro “Easy” $3/mo (drops to $2/mo for 24 months — they’ve always limited to 5GB storage, but recently reduced the number of hosted sites to two, which would no longer be enough for me. They typically have a new customer promo of 20% off — but I assume that doesn’t recur.
- Stablehost “Unlimited Pro” $9/mo (drops to $8/mo for 24 months — but was “lifetime” 50% off the published rate with the code mentioned above. The number of hosted sites, and storage amount are supposedly unlimited.
The new server certainly has very few sites on its IP 22.214.171.124, only 9 as of today. Stablehost has a datacenter in Phoenix, for what it’s worth… but they are filling it up, there are 113 on 5/9/2017.
Looking back at traffic, there is a LOT of ‘bot traffic; crawlers / spiders / scrapers and just plain malicious scripts probing for vulnerabilities. I did finally install and turn on caching (supercache) and that makes a big difference. I also blocked all but the IP address where I usually am for wp-login (that doesn’t help xmlrpc.php attacks by the way; wordfence does throttle that, too though).
Moving wordpress installations went ok. WHP uses installatron, and Stablehost uses softalicious as installation and backup managers but both have more-or-less the same functionality. I used an installatron backup to “overlay” a fresh softalicious install; having only to adjust the db prefix, and database names. Other minutia a few places supercache plugin refers to the full pathname (was /home/azbikela, now /home/bombercu) that needed adjusting.
Softalicious / Softaculous
WHP used Installatron for the same functions, it’s a script installer, management and backup tool. The backup in Installatron is better, more choices, e.g. it had the option a combined daily / weekly / monthly rotations.
The Softalicious backup system seems to work okay. I have initially set it to do daily backups, and retain no more than four. Curiously, so far anyway, the backup for azbl blog consistently happens at 1218p local time (phx, which is handily my time zone, as the server is located in a phoenix area data center), and the cazb blog fires every day at 1006a. [Update: sometime in April, Stablehost turned OFF softaculous’ automated backup feature. That sort of irks me, but can still make manual backups anytime, and for any sort of crisis situation, Stablehost has a pretty fancy self-serve restoration tool called R1 Soft and they keep full daily backups for it looks like 6 weeks or so. I used this to restore my wordpress installation when jetpack pushed out a bad update]
This activity consistently causes a couple of minute CPU spike to 40 – 50%, a brief I/O spike, a fault or two, and a bump of ~ 100MB phy mem usage
Backups are stored in ~/softaculous_backups
The issues below like Eliminate 404’s and wp-cron, supercache are what i did to attempt to optimize performance…
404’s cause wordpress to get involved: lots of overhead, (i would guess?) and returns a large file (relatively speaking).
I was seeing thousands of requests for apple-touch*.png per month, so I generated a set of such icons and placed them in the root of azbikelaw.org. There’s a cleverer way to put just one and use .htaccess rewrite to use just one file but whatever.
Fixed / straightened out some missing css references under the articles folder.
I get a lot of these and return 404, not sure what to do? : /?author=1 (and 2, and 3 and all the way to 14! )
I did this but I’m not sure it’s a good idea. The concept is to replace a call to wp-cron that supposedly fires with every request that wp handles with a “real” cron job which simply executes wp-cron.php on some schedule; e.g. every 4 hours or whatever. It involves adding a line in wp-config.php, and adding a cron job through cPanel.
The plugin crontrol can be handy; it displays the list of wp-cron jobs. Unfortunately it doesn’t have any sort of history (that i can find), that would be handy.
[update: no longer used; see comment below about Litespeed] This is the most-obvious step to take to reduce shared hosting resource issues/problems. Tried W3 Total Cache but didn’t like/understand some of its features. Then moved on to SuperCache. At the moment it’s configured with mod/rewrite (works completely without wp intervention once it’s cached) on azbl; and for variety with php caching on cazb.
When using mod/rewrite, the location of the cache files must be within the root of the domain being cached; but with php (the default/recommended) they can be moved anywhere in the home directory of the account. This is better in the sense then the cached files can be separated and therefore not backed up by softaculous; the cache files quickly grew to ~ 20MBytes per installation. So they were moved here (and also exclude the wp_cache folder in the cPanel backup file :
cazb ‘Cache Timeout’ is disabled (‘0’ seconds) and runs once a day a 0222am; I doubt it causes a noticeable load, but I can check just in case.
azbl is still mod/rewrite. but timeout and garbage is as above except 0444am.
Stablehost Update, a few months later
Working well, performance seems good, I haven’t tweaked out supercache but doesn’t seem necessary.
A few months after that they more-or-less forced Litespeed cache on all wordpress installations. It seems to work fine, so removed supercache plugin.
I tried to use WHP email back when I switched from godaddy to WHP (2015?). This was a disaster, as apparently since WHP is, ahem, less discriminating in the types of customers they have, they end up with spammy customers sharing the same IP, and this in turn causes the server’s (WHP’s server) IP to be blacklisted by various spam filters. The simple/easy answer is to (continue to) keep the domains (azbikelaw.org, cazbike.org, etc) registrared at Godaddy, and use godaddy’s free email forwarding. Works like a charm.
I haven’t tried since to try and find out if perhaps Stablehost’s servers are better (better at not being blacklisted). They are probably ok.
Stablehost new account circa 2018
In mid-2018, acquired a new, another, account with same hosting provider that was same type but this one was 70% off for life; it works out to around $30/yr (the existing account was something like 50% off for life, about $53/yr).
Procedure to copy from existing (“bombercu”) to new (“azbikela”) account, example to copy the cazb stuff; both accounts must have ssh access:
rsync -azy /home/bombercu/public_html/cazb/ email@example.com:/home/azbikela/public_html/cazb rsync -azy /home/bombercu/public_html/domenicscycling/ firstname.lastname@example.org:/home/azbikela/public_html/domenicscycling rsync -azy /home/bombercu/public_justin/ email@example.com:/home/azbikela/public_justin rsync -azy /home/bombercu/public_html/azbl/ firstname.lastname@example.org:/home/azbikela/public_html/azbl
initially used rcp, this works however it stinks because it recursively “follows” symlinks. SO DON’T DO THIS (use rsync instead) but i’ll leave it here as a warning. Note that the target folder, in this case cazb, must exist:
on new acct: mkdir /home/azbikela/public_html/cazb/; chmod 755 /home/azbikela/public_html/cazb/ on old / existing acct: scp -rp /home/bombercu/public_html/cazb/* email@example.com:/home/azbikela/public_html/cazb/
Then just need to fix up databases; set up add-on domains; and point DNS (still at godaddy) to the new acct.
One weird problem is a few of the subdomain folders were 750 and that worked on the existing account but not on the new one, would e.g. throw 403 error (?i never figured out why). Chmod’ed to 755 and all is well.