I discovered SuiteCRM by means of searching through my web host’s cpanel softaculous thing – that thing that allows one click installs of ‘apps’ for your server. Over time, I became a heavy believer in and user of SuiteCRM. Eventually, I installed an instance for my company on my shared host and the company started using it more and more. Finally, today, I realized that I better figure out how to back this bad boy up. I thought it would be as simple as going to the SuiteCRM documentation, but I guess I’m not smart enough for that. I also tried the SuiteCRM user guides which, for everything else, are very excellent. However, couldn’t seem to figure it out there, either. There is also this ‘backup feature’ in the Admin area which also I couldn’t figure out on my own or by searching. I even posted this post in the forum and it seems as though I had asked a question that was too easy for anyone to answer.
I’m just a standard, shared host, cpanel user, not a database guy or even web host guy, although I’ve got a small server running at home. How is it that I cannot figure out how to do a simple back up of SuiteCRM so that I can protect it as well as move it from host to host should I choose? So, with all that background, I will now begin to find the answer and document it here for my future benefit and hopefully help a few others along the way.
What I have learned from reading most stuff online is that If I want to be sure something like SuiteCRM is backed up safely I have to do the following two things:
- backup the SuiteCRM folder/directories/files
- back up the mysql database
Sounds easy except that when I went into cpanel, there was no ‘download’ button to get all my directory stuff! Although I’m shocked that there doesn’t seem to be a web-based download button, I also assume there must be a security reason for that so I won’t kick up a storm. I now assume that I have to do it the old FTP client way. So, I will now perform the following two steps in an attempt to download the directory parts of SuiteCRM:
- create an FTP account from the home page area of cpanel so that I can login with FTP client and
- download and install Filezilla on my computer
I went to the Ubuntu software centre and downloaded Filezilla successfully.
I entered in my credentials. It turns out that I did not have to create a new FTP user since my main cpanel login credentials/passwords worked perfectly to get in. However, if this is for someone else to login, obviously you’ll want to create a new FTP user/password for them and restrict them to the areas they are permitted to go.
Since my website wasn’t the ‘main’ website of my shared hosting, I had to go into the ‘public_html’ directory to find my SuiteCRM directory. Found it!
I learned the hard way that I must *first* choose the local machine directory to where the files must be downloaded. The first time I didn’t specify so it started running errors for five minutes while I sat there and drooled on my desk. Once I figured it out, I cancelled, started again by stating the local directory (in fact, I created a new directory just in case and to help me remember where it was) and then right clicked on the ‘remote server’ folder (my SuiteCRM install folder) and clicked ‘download’ and now everything appears to be downloading successfully to my machine.
The next step will be the second step which is to download/backup the mysql database… Of course, I’ve never done this so I am going to find this tutorial by Siteground which looks pretty solid. Siteground (whoever they are) seem pretty cool, by the way and has killer SEO results with Duck Duck Go. Let’s see if this tutorial works. You will probably have lots of time to study this tutorial if your FTP download is as big as mine. My SuiteCRM has nearly 10,000 files to download. It appears also, that this tutorial will show how to restore this mysql database for the next part of this tutorial which I’ll probably have to write for myself… In this tutorial, the only thing that seems ‘unknown’ to me is the ‘drop table’ option. Good thing I didn’t choose this option, I believe, because this tutorial shows that ‘drop table’ means to delete tables. I am quite certain that I will want to *keep* all the tables in this database so that I can import the database perfectly into the server to match the SuiteCRM stuff…. but I don’t know anything so we’ll see as we move forward 🙁
The above tutorial was good except that they claimed there was an ‘add drop table’ option in their screenshot example but it wasn’t there. They also didn’t mention that you have to choose ‘custom’ instead of ‘quick’ in order to view those options. And it turns out that the ‘add drop table’ option is just a recommended feature to add in while exporting which I chose to do. Otherwise, click ‘go’ and it worked. I have an .sql file on my hard drive now.
I think I’ve now backed everything up, but now I have to try to move it onto another server to test it out. Hopefully I will have a link to that tutorial soon but for now, stand by.
Did Green Geeks (www.greengeeks.com) not want to help you get Let’s Encrypt working in your Cpanel even though it works in cpanel? You aren’t alone. But we can take matter into our own hands, you know.
The tutorial I’m going to share is awesome. It’s pretty much what I based everything on and of course my experience of just making my own self signed SSL to do the same thing but more home-brew.
His tutorial is great if you’ve worked on servers or command lines for a while, but I wasn’t so smart. Hopefully my notes will help the less fluent folk accomplish freedom too.
Let me just give a few side notes to help someone as they do this:
Before beginning, in your terminal, you will need to:
sudo apt-get install git
- steps 6 and 7 – Cpanel help – Note before beginning! At no point should you ever, ever, press enter on your keyboard while in the terminal because it will force you right back to square one and you’ll have to delete all this great work you are about to do:
- go to file manager
- go to public_html directory and click it
- click ‘create folder‘ with the + icon
- type ‘.well-known’ (no apostrophes) into the field that says ‘new folder name’
- in top right settings of your control panel hit the cogwheel and click ‘show hidden files’ or you will not see the .well-known folder you just made
- go into the .well-known directory and create another directory called ‘acme-challenge‘ and click ‘create new folder’
- now go inside the ‘acme-challenge’ folder and click the +file button. you will get the file name from your terminal by selecting everything after ‘acme-challenge’ and then using control+shift+C to grab it to clipboard as per this screenshot
- paste it into the file name with control V and ‘create new file’
- now go back to terminal and grab the next bunch of random strings and copy it to clipboard as you are learning so well to do, young champion as per this screenshot:
- highlight your newly created pile of randomness in cpanel
- click the ‘edit’ button top right ish area of the screen and it will give you some warning and you will say ‘uh huh yep’ and click ‘edit’
- you will now control V paste that bad boy into your file (just into the big white space) and click ‘save changes’ and should see ‘success!” because you deserve success by now, my little cherry cake.
- click ‘close’.
- Now you will have to do it again. The tutorial doesn’t say why but I figured it out, by golly. It’s because you had domain.com and www.domain.com so you have to do two verifications. If you had a bunch of subdomains, you’d have to do these steps for all of them as well, FYI. Also, there is no mention about what to do with these random files sitting in these directories in cpanel. You can delete them after the verification is done.
- now go back to his original tutorial and start at step 8
- Note! The coolest part about this experience is when you get this message at the end: ‘Self-Verify of Challenge Failed” – so you are like ‘NOOO!” and then what comes a few seconds later in the terminal? This message: “Congratulations! Your certificate and chain have been saved at…” which is actually the truth. And then you are like ‘YAAAAH!!’ So much drama! So many victory cries!
- step 9 isn’t as easy as the author lets on. It’s also a mystery to my why I cannot have permissions with sudo to do this in the command line but it gives permission denied. I didn’t know there was a permission higher than sudo but….
sudo nautilus yes, but then where? this screenshot should help
Note also typing the first letter of the folder you are searching for will speed things up, like in ‘L’ for ‘letsencrypt’ in the next level 😉
- Step 11 isn’t easy either as he doesn’t explain how to open with ‘gedit’. Just right click on the .pem files, then go to ‘open with other applications’ and then ‘show other applications’ and then start typing ‘gedit’ and it should show right up
Now here is the *critical awesomeness* that took 7 hours of my life to learn. I will never get these hours back so I hope that you will take all the money I didn’t save by spending all the time and get it back out of GreenGeeks who refused to support Let’s Encrypt when at least myself and a few people I referred to Green Geeks asked them if they would help. This, by the way, was the response we got:
No, you don’t support them. But because you didn’t support me, I now support them with this blog post. And for just 5 years of free hosting with the best plan they have, I might be convinced to remove this truth so fewer of your customers find out that they can work around your antics….
Let’s get started taking away those $20 purchases from the Geeks which are Green, shall we, or any of your hosting companies who don’t want to move into the future shall we?
How to Get a Free SSL Cert Working on your Green Geeks Hosting Plan on all your domains with Cpanel
You can create a let’s encrypt certificate for *all* of your shared domains.
Where I lost all my time was where to put the .well-known/acme-challenge in the subdomains and the whole time it was super easy. You just click in, open the main directory under file manager and create the directories right there at the top level. That’s it.
Then you go back and create certs for each domain and pop them in by repeating this tutorial. One for the www and one without.
Done! Now let’s encrypt.