Reinstalling any piece of software is never fun, but that’s especially true when you are starting over from scratch with a piece of software that seems to take forever to install. And when you get to almost the end of the process and then f–k it up, that really doesn’t make your day.
I decided to reinstall FusionPBX because I regretted a couple of choices I had made during the initial install. I realized that I would rather use Apache than the default Nginx for serving web pages, and also that I’d prefer to use MySQL rather than SQlite for the database. It was the latter choice that got me into trouble. Near the end of the install, this screen appeared (click on it to enlarge the image):
I especially want you to note the last few lines of the above image, which tell you what to do on the second page of the web-based part of the installation, which looks like this:
Note that the two fields mentioned at the bottom of the first image are the bottom two fields on this image. So I filled in just those two fields, but not Database Name, Database Username, or Database password, because the first screen didn’t tell me to and because I didn’t know what I was supposed to put in those fields. I figured that if I was missing something necessary, it would tell me and return me to that page and let me enter the missing information. Oh, how foolish of me to think that!
What actually happened was that it printed out a screen with nothing but a bunch of MySQL error messages, and if I tried to use the back button in the browser to go back and try again, it the gave me a page with nothing on it but the background (no login screen). After a couple of hours effort, I was well and totally screwed, and basically had to go back and start from scratch, because I had no idea how to recover from this.
My biggest complaint about FusionPBX is that they assume far too much knowledge on the part of the user, and often it’s knowledge that the user would have no way to obtain. I couldn’t find anything on their wiki about what needed to be entered on the above screen when installing FusionPBX and MySQL, nor could I find anything that worked on how to recover from a bad install (removing config.php, as suggested on one page I found, did NOT do it because apparently the MySQL part of the installation had been partially, but not completely finished).
So if you noticed that I sort of stopped posting articles about FusionPBX, it’s because I am just finding that everything I try to do is taking me far too long, and I just get tired of all the assumptions of what I should know, when the fact is that I don’t know and the documentation doesn’t tell me what I need to know. As I write this I am tired, and not just a little ticked that this install blew up in my face, so to speak.
Of course, if anyone had this issue before and it had been documented in an online forum, I could (hopefully) find that by using a search engine and perhaps have found out what was supposed to go in these fields. But if someone asked in IRC and it was explained to them, well, that explanation is gone forever, and at the times when I try to do things like this IRC always tends to be like a ghost town.
EDIT: I submitted an “issue” about this, and was a little perplexed by the response posted by FusionPBX author Mark J. Crane:
Certainly this can and will be improved as time permits. Priority of database support in FusionPBX is in this order PostgreSQL, SQLite, and MySQL. The order of ease if use is SQLite, PostgreSQL, MySQL. Native support in FreeSWITCH is SQLite and PostgreSQL was recently added and MySQL is unlikely to get native support in FreeSWITCH because the libraries to do it are GPL however it is still possible to use via ODBC.
As I said before this will be improved as time and resources allow.
I hate to say it but I’m starting to more and more think that this author just doesn’t get it. When you are a user and you are following an “Easy Install” script and it offers you three choices for database server, you assume all three are pretty much equally supported unless there is some statement to the contrary. Here he’s making it sound like MySQL is a low priority and not fully supported, but he’s not at all addressing the fact that the Easy Install script offers all three as choices, yet if you pick MySQL it will not work and will screw up your installation. “Time and resources” were available for someone to put it into the “Easy” install script as a choice, but not to make it actually work, and this response suggests that the author really doesn’t care all that much if you have problems. Maybe it would take a lot of time and effort to make it work, but I’ll bet it would not take a lot of time to remove the MySQL choice from the Easy Install script until it does, which is something an author might do if he were the slightest bit considerate of his users.
F—k it. I’m through with FusionPBX. It’s just not ready for “users” yet. I’m not saying it won’t work well enough for some people, especially the types that still look upon software installation as a challenge or a game, where part of the “fun” is getting it all to work. But if you’re expecting to just install and go, and have everything work as it should, you might be sadly disappointed.