The Dreaded Web Host Manager

The next to last paragraph in the first article on this subject went like this,

Going hand in hand with Cpanel is WHM, the WebHost Manager (this will be important in the next section) Their user documentation is here and here. If your web host uses Apache they are most likely going to be using Cpanel and WHM as the control panel and manager for the hosting service. Once you have signed up with a web host you are now dabbling in web hosting, at least vicariously. WHM is your best friend when managing a web host. You should probably get to know your new best friend better.

If your site is part of another site, you might have more to do than just trying to break your new web host’s software. You have real work to do breaking other stuff first. Before doing anything else, even if you have a completely new site, you should probably make sure that you have a clean backup of your current website. This is the kind of common advice that gets a well duh response, but every time there is an unrecoverable oops event, it is because someone ignored the well duh advice. Backing up isn’t the easiest thing to do with a hosted web account. It isn’t easy because a simple duplication of your online files will not give you something that you can restore your site from. Backup in cpanel requires you to backup your files and databases separately if you want them to be available to be used to restore an oops event. So do a backup, and then keep reading.

No, Seriously. Backup!

Done? Good. So now you want to create your new website, right? A personal place all your own to host your blog on. You want to create a separate web site because you are borrowing space from a lifelong companion not known for her neat, organized workspace (Ouch! Don’t throw things at me! It’s true and you know it!) and you’d like to know what part of this mess is yours to deal with. This will require you to access WHM, the WebHost Manager. Since you are creating an account for yourself (or myself, in this case) be generous. But don’t worry, you can change the package and account settings later. As is typical with linux GUI’s, some of the settings will say they have been changed or can have particular values, but the implementation of the setting may fail because of limitations that your web host places on your account. This is the one bright point about hosting for yourself, the thing I told you that you didn’t want to do in the first installment of this series. The only bright spot in self hosting, being able to set any hosting variable to any allowed value. This isn’t necessarily a good thing.

Make sure that autoSSL is included as part of the feature set of whatever package you end up creating. SSL? Secure Sockets Layer. It allows you and your visitors to establish an encrypted connection between the two of you. AutoSSL generates a certificate for you at your new hosting location, so you will want it enabled. If it isn’t, you will not be able to be certified as an HTTPS location on the web, and that is bad on today’s internet using todays browsers. WHM will generate an error if you set your bandwidth to unlimited and disk usage to unlimited when you set up your package, and this error will keep you from successfully creating an SSL certificate. You can set the bandwidth to 100GB if you want (one hell of a lot of data) It just can’t be unlimited. Like I said, not a good thing to be able to muck about with all the settings.

Once you have your package set up the way you want it, the way you are allowed to set it up, create your account from the create new account tab on the sidebar menu. Select the package you just created. If you followed your web hosts rules correctly it should show as green and selectable. If you aren’t planning to resell or offer to piggyback your needy relatives on your web host, you can skip package creation and just go straight to account creation. When you get to the menu for “select package” simply toggle the Select Options Manually checkbox, and you can piss off your web host all over again by selecting values that aren’t allowed while simultaneously creating your account. This will save you the trouble of trying to figure out what your web host will allow while creating the package that you will only need once anyway, but you won’t get to give it that special name if you don’t create the package in advance. For me, naming is important. You may be content to let someone else pick the names you use. To each his own.

Get the important stuff right! Check the domain name. Check the user name. Write down the password. Make sure the email address is a working email address. The only default setting that I needed to change on our web host was toggling the recommended setting for mail routing to Automatically Detect Configuration because, again, if if the host can find it, it will find it. If not, you can always figure out what it is later. Hit Create and you are done.

Now comes the fun part, and when I say fun I mean tooth extraction levels of pain. But fun, you know? Since you are migrating your (my) wordpress installation, you’ll have to duplicate the SQL database that makes the installation do what it does in its current location. SQL? Sequel. Structured Query Language. You don’t really need to know what it does (but the link will tell you all about it) you just need to know that you need it. If you only copy the files from the software installation that you are migrating, you may or may not notice parts of your installation working the same way later. You’ll need to access PHP admin. PHP? It’s yet another scripting language (see? Fun!) PHP stood for Personal Home Pages back at the dawn of time, but now stands for Hypertext Pre-processor. I think we’re up to version 7 as I type this. I seriously couldn’t care less. I wish I could work up to caring at least a little. Trying to make Linux work for a decade burned me out on caring about coding, one failed install at a time. AutoCAD Lisp was a walk in the park next to getting Linux to run on mystery hardware. Now I just want the software to WORK, DAMMNIT! I want it to work pretty much 24/7 without my having to do anything about it. It’s enough to make you wish you had the money to pay Squarespace to do this all for you. But I digress.

Accessing the PHP manager will allow you to copy out your SQL commands so that they can be applied to your new account. You’ll want to follow the directions of your web host for doing this. Just make sure you verify which SQL command list is associated with your current install beforehand, then go to the PHP manager, highlight the right one (not expand it) and make sure that, add DROP TABLE/ VIEW/ PROCEDURE/ FUNCTION is selected. This should be in the options section. Export as SQL. Next you will go into your new account, use the SQL wizard to create a new database, associate the database with the user for the account, and then import the SQL file you downloaded earlier. Wipe the sweat off your brow, because that was the hard part of this process.

Time to export all those collected years of hard work. Don’t slip up! Grab your current install of WordPress from the directory that it is in. It should be about twenty-two files, four of which are folders, including one named wp-content. Once you have located those files, zip them up through the cPanel file manager interface, and download them to your local drive. Then you open your new account, go to the file manager, and upload the same zip file to a directory there. I suggest using the tmp directory. That is what temporary directories are for, things you will delete later. move the files and folders from where they land in tmp and paste them to the public_html folder. Verify that the file and folder structure matches your previous files and folders before doing anything else.

Now it is back to coding, again (I’m sorry) You will need to edit your wp-config file in order to modify a few commands so that they point to the new SQL database. This is where writing down your username, password and SQL command list name comes in handy. Open the wp-config.php file in a text editor, like Windows notepad or the native editor in CPanel. Scroll to the lines in the file that say DB_NAME, DB_USER and DB_PASSWORD and then modify the SQL database name username and password with the information that you wrote down previously. Because you wrote it down like I said, right?

Put on your dunce cap, because it’s time for a test! Don’t Panic! This is a website test, you won’t have to cram for the exam. To conduct this test you will need to modify your WordPress config file in the new location, similar to what we did in the last paragraph. There are other ways to test the configuration including logging into the wordpress installation directly and altering the file storage location in settings, and modifying the SQL database to point to the new location, but the test method I chose was modifying the wp-config.php file because I was in that file already. Insert two lines into the code that read as follows, replacing yoururl with the URL that your new installation is currently residing at.

define('WP_HOME','http://yoururl');

define('WP_SITEURL','http://yoururl');

After you do that go back to your original installation location and backup the existing WordPress installations wp-config.php file. After you do that replace the wp-config.php file with an empty text file by creating a new file with that name. This is just a test, and if you backed up like I told you to, you can always revert to the correct wp-config.php if the test fails. Then open your browser and type in your test URL and click on a few links to make sure that everything displays properly.

Nothing sideways? Everything where it is supposed to be and working correctly? Great!

Once you are satisfied that the new installation is working correctly, you can reedit the new locations wp-config.php with your real URL name, and then redirect your URL to point to the new location on your web host. You do this from within CPanel in your old location, deleting the URL from the Domains menu, and then adding the URL to your new location. Once you have successfully moved the URL to your new web host location, you are done. Log back on your site and bask in marvel of your unique genius and programming wizardry. Unless of course, the site doesn’t come up like it is supposed to. If not, go back through the steps and make sure you hit all the points correctly.

If all else fails, even the cheapest of web hosting sites will have some form of chat available to paying customers. Log on the chat and see if they can help you. Just don’t panic. It’s just electrons whizzing around in space. It isn’t the end of the world if the website is down a few days. You’ll get it back up because you made a backup, and you didn’t delete the old installation yet.

Wait. You did make a backup, right? Oops?

Web Hosting? What’s That?

When I transferred the blog to WordPress I promised to write a guide to creating your blog on WordPress, or at least describe how I transferred the blog from Google’s Blogger service to a self-hosted installation of WordPress. Well, the guide to how this might be done really has to start with getting your own site up and running, not with the process of getting 10+ years of Blogger blog entries to appear in WordPress. WordPress is hands down one of the best ways to get your writing in front of people who want to read it, but WordPress is just the front end of a process that starts with deciding on a web host.

So, starting from the beginning, the question is should you self-host or should you pay someone to host your site? You can self-host your own website, we did that for years on a Dell PC that we had bought for me to do CAD on. We slapped a second NIC card in it and it was the router/web host for the family until it died a few years back. When we set that system up we had programmers who worked for Dell wandering in and out of the house on a pretty regular basis. It was a simple thing to get one of them to set up a Linux shell on the old CAD system, load Apache on it, do their programming magic, and presto we had a webhost. A black box that I never did manage to figure out how not to break, so I left it alone aside from editing my homepage. I had a static page on ranthonysteele.com that I paid for for years and years for no good reason other than that I figured I needed a website. I was a technologist, a CAD evangelist, and I was quite full of confidence in my unique abilities back when the internet was young and I was certain that the best times in life were still ahead of me.

But this article isn’t about how poor health can ambush and destroy the best laid plans of men. Anyone who doubts this is true should read up on the life of Alexander the Great. The greatest conqueror on the face of the Earth then or now, who was rudely interrupted in the middle of his conquest of Asia with a sudden illness and subsequent painful death. My life plans were much less grandiose than that, and don’t involve the enslavement of entire regions of the planet, and I’m not dead (at least not yet) so I’ve been diverted and not canceled, at least. But being here writing about how to get blogging software to work on a site you run yourself was not where I wanted to be eighteen years down the road. And I’m still not up to that, or up to recommending that you self-host even the most basic site on today’s internet.

I never got the hang of programming. I never found any joy in it. I just wanted to be able to program a website without having to do all the work involved in writing all the code for myself on top of all of the CAD work that I was already engaged in at the time. I knew I hated writing code from the few times that I tested/edited/wrote lisp scripts for AutoCAD. Luckily we had some real programmers on staff at one of the architecture offices I worked for, so most of my work with scripts was testing and not writing. But I did enough of it that I knew that the fiddly, nitpicking work of making sure that every character in the code was absolutely perfect was not what I wanted to do with the rest of my life. So the static page remained static for years on end, while I relied on Blogger to keep doing their Blogger thing as a few years turned into ten and then into fifteen.

The Wife on the other hand needed to maintain her professional presence in the digital world. She had to create and maintain websites through all of the really early years of the world wide web, websites for many different versions of her own professional abilities (effects, actor, producer, unlicensed broadcast engineer, etc)  and eventually she wound up maintaining websites for many different people. When she first started using her current web host she set up a demonstration account to show me what we could do with blogging software. I thought it was interesting but maintaining my own website looked too much like programming to me. Besides, I had a history on Blogger and I didn’t want to lose it.

…And then Blogger started to show the effects of Google not seeing blogging as one of its money-making features. The exploitation of programming holes the long unpatched bugs in the web interface not to mention the released and never updated mobile app. So when I turned to her with my Blogger is losing my drafts problem, she threw together another website for me on her hosting service using my old ranthonysteele.com URL, and I was in business for myself. At least to all external observers, I was flying on my own.

Except, I still didn’t understand one damn thing about what it was I was doing. I’m still not a programmer. Learning the in’s and out’s of maintaining a website is much harder than my experience with learning architecture was. Learning how to build something is as simple as wandering through a construction site and asking questions over and over. This is something I’ve done since the town doctor bought property across the street from my family in Leoti, Kansas, and proceeded to have a house built there. I was six or seven years old then, and construction was this weird miracle process that I experienced first hand through each stage as I wandered that construction site on a daily basis.

A small U.S. town in the 70’s was such a wonderful place and time to grow up, from that perspective. No one cared that a child, or a group of children, wandered onto construction sites. They’d even answer questions if you asked nice, before shoeing you away so they could get back to work. I cut my architectural teeth that way, on dozens of construction sites. Wandering into construction wherever I stumbled across it, fascinated by the simple act of creation that was involved in them. Wandering around in finished buildings and then going places that aren’t finished for public occupancy so that I could see how all the pieces went together to form the seamless facade that is what the public sees.

Programming is invisible, like the structure hidden behind the finish in your home. Programming is best when you never notice it. If you notice the programming, it is like noticing that whoever taped and floated the wallboard for your office wall wasn’t very good at their job. You have to know where to look in order to find the programs that run everything on the web. Right click on any window in your browser, for example, and pick view page source. You’ll get a nearly incomprehensible page of text characters as a result. Incomprehensible, if you are a layman.

If you work with HTML for awhile, something you will have had to do if you’ve written anything for the web and cared about how it looked, the text that is displayed becomes more comprehensible. You can seperate commands <text> from the rest of the content on the page simply by recognizing the characters that denote a command. If you’ve been working around websites for years like I have, you become convinced you know more about the subject of putting stuff on the internet than you actually do. Until you have to do the work to get it there, and there is no one willing to talk to you about it.

So if you find yourself in the predicament I’m describing, trying to figure out how to get stuff to show up on the internet, this guide is for you. Welcome. Let’s learn stuff together, eh? The first thing you want to decide is where to host your website. That’s your first job. 

Most cheapskates will be tempted to host their own website. My advice is don’t. Don’t do it unless you are a programmer and you have enough cash to pay for all of the hardware you will need (and if you are that person, you won’t be reading this in the first place) That is my best advice right there. If you aren’t a programmer then hosting your own website is ultimately only going to create another digital zombie that can be used to attack other websites, or it will serve as a ransom target. A liability that will cost you more than the hosting fees will cost you. So don’t be John Podesta. Be smart, like Hillary Clinton. What, Hillary Clinton isn’t smart? She didn’t get caught, did she? I rest my case. Hire people to do the stuff you don’t know how to do, and pay them well to do it. You’ll thank me for that advice, if you follow it.

You also don’t want to necessarily go with the cheapest web host. Do you want the cheapest doctor you can find, or the one that knows enough to help you and not hurt you? There are several websites that can help with this task, selecting a web host. Who is hosting this? is one of those sites. Look around to see what the people in your line of work are doing. See what other comparable web hosts are offering and for what price. Go with someone who can help you in a crisis, not just someone who has the cheapest price. You can even buy space from a web host so you can act as a web host. This is what the Wife is doing, she’s just not making any money off of me when she does it.

So you have your web host selected? Good.

A web host provides the software you will be using to create your website. Everything to do with computers requires software, but the internet is everywhere and in everything these days, so it is easy to forget that there is code behind all this interconnectivity that we enjoy today. Your web host will have software it utilizes, and that software is most likely going to be Apache. As an open source evangelist, I wouldn’t suggest you run anything else on your web servers.

ASF 20th Anniversary – Mar 26, 2019

Cpanel is the most common graphical user interface for Apache once you get beyond the command line; and frankly, why use the command line if you don’t have to? Cpanel is short for Control Panel. If I have to tell you what a Control Panel is then you haven’t been doing this long enough. Take some basic computer classes, or just pay SquareSpace for their services. They’ll happily hold your hand, given how much you will be paying them. If you don’t have the money for Squarespace (it isn’t cheap) and can manage without their very useful 24/7 helpline, but still want to be using a super simple interface, there is Wix.com and Weebly.com. Squarespace isn’t paying me a dime to recommend them, therefore I’ll go the distance and give you a few more options.

Going hand in hand with Cpanel is WHM, the WebHost Manager (this will be important in the next section) Their user documentation is here and here. If your web host uses Apache they are most likely going to be using Cpanel and WHM as the control panel and manager for the hosting service. Once you have signed up with a web host you are now dabbling in web hosting, at least vicariously. WHM is your best friend when managing a web host. You should probably get to know your new best friend better.

CPanel – Softaculous

If your site is new on the web hosting service, it is a pretty simple thing to just pick the software you want to use from the software list that your web host should offer (softaculous on our web host) WordPress is very likely to be one of them. Install that software and start playing around. You’ll break things a few times, but that’s great. You want to break things when you are learning new stuff. Use the installer to uninstall, and start over. Have fun! If your site is a new site with a new web host then congratulations, you’re done. If you are like me, borrowing space on someone else’s hosting site, then you are only getting started. Read on for the dreaded WHM and the effective separation of your shit from their shit.