Thursday, December 11, 2014

Installing Joomla on NearlyFreeSpeech.net

NearlyFreeSpeech.net is a web hosting service popular with more technically minded folks because of its pricing structure and its anti-censorship attitude. It lacks training-wheels features, so setting up a content management system like Joomla is trickier than usual. This post details what I did to get going.

Prerequisites

I already had an account, DNS hosting, and a SQL process set up. I will assume you are to the point where you can create a /home/public/phpinfo.php file, bring up http://somedomain.org/phpinfo.php, and confirm you have a working environment. Then I'll assume you emptied out your /home/public/ directory, including hidden files. (Of course, this also means I assume you're familiar with using an SSH and SCP client to manage things. You can leave FTP turned off, as NearlyFreeSpeech recommends.)

Create Database

In the NFS member console (I'll call this "NFS console" from now on), go to the "mysql" tab then click the DSN you created (let's assume "somedomain.db"). Command line fans can use the info here to connect over the SSH connection and make an empty database. Alternatively, click "Create a database" on this page. I'll assume the new database is called "joombase".

Acquire Joomla

In whichever way you prefer, put the contents of the Joomla download into /home/public/.

Note: You may want to check the requirements of the version of Joomla you download against the Server Type and CGI/SSH Realm as listed on the "sites" tab in NFS console. I used the most recent stable version of Joomla and the current general purpose recommendations on NFS:

Joomla version: 3.3.6
Server Type: [Production] Apache 2.4, PHP 5.5, CGI (Stochastic)
CGI/SSH Realm: Blue

Command Line Stuff

From /home/public/:

> mv htaccess.txt .htaccess
> touch configuration.php

> chgrp -R web *
> find . -type f -exec chmod 664 {} \;
> find . -type d -exec chmod 775 {} \;

At this point, your /home/public/ directory should look similar to this:


Install Time!

Open a web browser to http://somedomain.org/installation

(1) Configuration page: make up your own values here.

(2) Database page:

Database Type: MySQLi
Host Name: somedomain.db (or whatever you named your DSN; don't use 'localhost'!)
Username/Password: (see the same page in NFS console that lists the DSN for MySQL credentials)
Database Name: joombase (or whatever you created earlier)
Table Prefix: (leave it as it is)
Old Database Process: Remove

(3) Overview page: pick your preferred sample data and take a gander at the information below, then proceed.

Hopefully, "Congratulations! Joomla! is now installed." will be showing. Click "Remove installation folder." If you need to remove it manually, go to /home/public/ and run:

> rm -R installation/

Administration Console

Go to http://somedomain.org/administrator/ and use the credentials you created on the Configuration page of the installer.

Click System -> System Information -> Directory Permissions, then confirm that all of the directories have a "Writable" status.

Click System -> Global Configuration -> Server, then confirm that "Enable FTP" is set to "off." I had trouble with installing extensions when this was enabled, even if I wasn't trying to use FTP to install extensions.

Click System -> Control Panel -> Install Extensions, then click "Add 'Install from Web' tab".

Do things with your new site!