I pride myself on being a geek. A very patient geek, even. But even still, the more I read about CPanel, the more I grew to hate it. And then, I got a chance to indirectly work with it. Now, I’ve come to despise it with the passion of a hundred thousand suns.
I started out helping Shane throw together some kind of a fix for a problem he was having with his WordPress installs. Or rather, several small problems that, when lumped together, became one very hugely gigantic ball of oh my god what the hell am I doing. That was well over 3 hours ago. From there, we ended up blowing away the WordPress install, trying our damnedest to get it to reinstall, banging our heads against Apache and Suexec, and generally coming this close to screaming. My poking at Suexec config files, at least those I could find in that not so cleverly disorganized mess CPanel calls a directory structure, told me it should be working the way it’s supposed to. But when WordPress went to do something as simple as generate a config file, it crapped out with permission errors. Okay, this wasn’t how I invisioned spending an evening, but hey, what the hell else was I gonna do?
So I poked around some more, and discovered when CPanel installs Apache by default, it compiles things in a not very Suexec-friendly way. And convincing it to recompile, as I learned tonight, in such a way that it would actually do what we want without puking all over the place first, well, it wasn’t about to happen instantly. Apparently, something within CPanel tells it it’s alright to slap a random file in /etc to prevent Apache from actually being shut down, even in situations wherein it needs to be shut down–such as, for instance, to be recompiled. Finding that file, then finding out what it’s doing there, then finding out if just plain ripping it out would break anything, took a bit of digging. Then, after much hair pulling with both the web and command line interfaces to CPanel, we eventually, finally, managed somehow to explain what it is we were trying to do. Getting to that point, of course, just had to involve a tech support person from the hosting company who wasn’t a whole lot more clued in than we were–par for the course when you’re us. So we decided to take a random shot in the dark and rip out that file, then try desperately to convince CPanel that yes, it was perfectly alright to do what we’re asking it to do.
After about 2.5 hours of screwing with it, we finally have CPanel singing the right tune. It does its thing, eventually recompiling both apache and PHP to build in support for what we want to do–PHP as CGI through Suexec. Great, so now we just pray to god it works. By this time, my brain is pretty much sawdust, and we still have the initial issue I was trying to fix before all this to work out. Craptacular. So we get to doing that, and thank the freaking gods that goes through without a problem–now that we managed to exhaust just about everything we had access to to get to that point.
At the end of all this, I’ve come to a very important–well, to me, anyway–decision. If ever I find myself in a situation where I’m forced to use CPanel, I will not walk, but run terrifiedly screaming in the exact opposite direction as though this guy was after me. Faster, even, as I swear that thing is the software reincarnation of Satan. If you’re even remotely technical, at all, stay the hell away from CPanel. You *will* lose years off your life. And develop a strange craving for alcohol. Speaking of, where’d I put mine?