Yesterday I went over the cheapest WordPress hosting options and came to the conclusion that Nearly Free Speech is the clear winner if you’re willing to do some technical stuff yourself. If you’re not willing to do some technical stuff and potentially deal with some technical issues, then HostGator is probably your best bet.
So what is it about Nearly Free Speech that you’ll have problems with? First of all, the online interface for managing accounts is arguably less intuitive for a lot of people. You will have to look at carefully before you fully understand it.
Second, you will need to setup the MySQL database process and create both the database, the user and give the user privileges to the database. There is no “1 click install” at NFS, so you will also be uploading WordPress on your own meaning you will need to use an FTP client.
Third, you’re going to need to change the permissions and group of the files in the wordpress folder, otherwise WordPress will not work the way you want it to. This will require you to use an SSH client like Putty.
Setting up your host and account
The first steps are easy. Visit Nearly Free Speech’s Signup page and follow the steps to get your site hosted. This will include setting up or directing an existing domain to a site and attaching a bandwidth account to it. This will cost about $10 unless you already have a domain then it will be free.
Setting up MySQL
The next thing you need to do is setup a MySQL process. To do this: select the MySQL tab on the top and click ‘Create New MySQL Process’ on the right. You will need to assign it to a funded account which you should have created in the previous step. It will take a few minutes to create your database…
Once it’s setup, you can connect to it by returning to the MySQL tab and selecting ‘Open phpMyAdmin’ from the right, or by clicking here. This is going to allow you to interface with your MySQL process so that you can create a database and create a user with sufficient privileged to use that database. This will be your WordPress database.
Enter your database name that you just selected for Server. Enter your NFS username and your NFS password to get in:
Once you’re logged in select ‘Privileges’ from the top and then click ‘Add a new User’ half way down the page:
In the popup that comes up, enter a username (I use “wordpress”) and then enter a password. For the password, make it something very unique. You should write it down but you’ll only have to type it once. Do not use an existing personal password. You can use the ‘generate password’ tool below or just slam on the keyboard. Finally, select ‘Create database with same name and grant all privileges.’
Once you click ‘Create User’ you’re all set. You now have a WordPress user in MySQL with full access to a database. You’ll use this information next when you configure WordPress.
The next step is to upload WordPress to your new host by using an FTP client. If you have done this sort of thing before all you have to do is download WordPress from here (http://wordpress.org/download/) and upload the contents of the directory into your public folder. Otherwise, here is a step by step tutorial to do this:
First thing is first, download WordPress from http://wordpress.org/download/. You will get a compressed file with a folder called wordpress in it.
Next, you will need an FTP client. You can download FileZilla here (http://filezilla-project.org/). Install it. Open it up, go to File -> Site Manager and create a new site:
Make sure you select “SFTP” from the drop down and enter your username not mine. You can find your username under the sites tab at nearlyfreespeech.net.
Once you’re connected, you’ll see the folder on your server on the right side of the FileZilla interface. Next you need to drag the WordPress folder contents into the public directory. Hopefully thank makes sense because it’s hard to visualize with a screen shot. The point is that you upload all those files into your public folder so that when you visit http://www.yourdomain.com/ you see the wordpress site.
If you have any problems with that please comment below and I’ll help you as soon as I see it and then I can improve the tutorial for everyone else.
To confirm that WordPress is uploaded properly, visit your website and you should see a WordPress screen with this message: “There doesn’t seem to be a
wp-config.php file. I need this before we can get started.” Don’t follow the instructions yet, instead continue to the next section to fix file permissions.
Fixing file permissions so WordPress works
WordPress requires certain access to your server’s directory and file structures. When you upload media it will need to be able to create files and when you do automatic updates and plugin installations it will need to be able to over right files and create directories. You can fix this problem as soon as WordPress is uploaded.
If you’re interested in the technical details of this, visit this blog for the original source of the following information. Otherwise, just follow these steps:
Download Putty from (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html). Open it up and connect to Nearly Free Speech’s SSH server using these settings:
Now you’ll see a terminal screen asking you for your login. Look up your login and password under your site tab at NFS. It’s probably something like username_username. Then type your password and login. Once you’re logged in you’ll see some scary looking white text on black. Keep in mind that I’m not an expert and you may inadvertently break something as a result of following these instructions, so use this tutorial at your own risk. Also keep in mind that you can look up all of these commands if you want to understand exactly what they do, there are no secrets here. If you did that, you’d learn a ton!
So the first thing you should do is type:
Which will show you all the files in your current directory along with their associated permissions and such. You should see, from top down, ., .., index.php, license.txt, etc. You should see a bunch of wp-activate.php, wp-admin, etc. These are the WordPress files you just uploaded. If you don’t see these return to the previous step and upload WordPress properly.
From left to right you’ll see permissions such as: -rw-rw-r– and then some long numbers lke 195392, which is your user ID at NFS. We’re going to change the group of all these files so that the web server can create and modify files. This was originally recommend here.
We’re also going to create a .htaccess file, which will let WordPress use permalinks (nice looking URLs). So let’s get started!
Create .htaccess file:
Note: Nearly Free Speech does not recommend that you change permissions as I explain below. “[this] can cause people’s blogs to get irreparably trampled by hackers whenever WordPress (or any one of its themes or plugins) has a security issue. (And particularly when it comes to themes and plugins, that happens a lot.).
Change the group of all files to web:
chgrp -R web *
Change the group of the current directory to web (only if WordPress isn’t installed yet)
chgrp -R web .
That’s it! As long as those commands didn’t report any errors you should be able to configure WordPress now.
Configure and Setup WordPress
To configure WordPress visit http://www.yourdomain.com and follow the wizard which will request your username, database name and password. In the ‘database host’ make sure you put the name of your database, for example: testtest.db. Run the setup and you’re all set!
I have one small tip left to share with you. If you want to be able to install and update themes and plugins easily from inside WordPress you need to set the FS_METHOD to direct in the wp-config.php file. You can do that by appending:
to the end of your wp-config.php. Otherwise, if you still have putty open you can execute this command:
echo "define('FS_METHOD','direct');" >> wp-config.php
Now you’re WordPress installation should work like a charm. Did I miss something? If I did please let me know in the comments.