Ubuntu 14.10 LAMP server with Joomla, RSync, SMB & NO-IP.

MS SQL On Ubuntu 16.04
This is a step-by-step guide to making an Ubuntu LAMP server to self-host a Joomla! website at home.
To begin, install Ubuntu 14.10 Server using a FQHN and only install Open SSH during the wizard install.
For this install, we’re using the hostname test.domain.com, the user pcuser, and the server has the IP address 1.2.3.4 – substitute your own values in the method below.

The Steps

Check networking is working and hostnames are set correctly on the server:
Update your install
Install sysv-rc-conf to make looking after services easier.

Install your basic LAMP server

LAMP stands for Linux (we already have the with Ubuntu) Apache MySQL and PHP – and a few other packages we’ll need later:

To enable .htaccess for sites hosted by apache, add this to the bottom of /etc/apache2/apache2.conf

Then Restart apache.

You can now visit http://1.2.3.4 to make sure that apache server is working.

Test PHP is installed and working

Add this into the file you just created:
Visit http://1.2.3.4/info.php to make sure its working with the LAMP server.

Install the NO-IP DUC

All domain names point to an IP address, and normally for a server, this is fixed. HOWEVER, you’re probably reading this as you want to try this at home and most home net connections don’t have a static IP address.

Using No-IP eliminates this problem as it lets you set up a domain name with a dynamic IP address. You need to sign up on their site first, and the directions below set up their Dynamic Update Client (DUC) on our little Ubuntu box.

Install PhpMyAdmin

Installing PhpMyAdmin lets us manage the MySQL databases with a nice GUI via a webpage.

To install it;

And you can visit it at http://1.2.3.4/phpmyadmin

Install Joomla

Installing Joomla is fairly simple to do, but we need to delete the index.html file installed in the html directory by default to make sure that apache serves your Joomla site instead of the apache welcome page;

Now visit http://1.2.3.4 in your browser and you can install joomla (assuming you’ve set up a database and a user via PhpMyAdmin) onto your LAMP server.

Fix permissions

Once Joomla is installed, we need to reset the file permissions of the site.

Password protect the whole site (optional)

This is fairly straightforward – just do this and you’re sorted!

Edit the site’s .htaccess file;

Add this to the bottom of the file:

Also, create and edit /var/www/.htpasswd

And insert your username as password values – it’s easiest to use an online generator to generate this code.

Install Samba

This will install samba so we have a password protected directory available to other computers;

Add this to the bottom of the file – this creates the share definition named secured.

Next make the user group and add a user to that group

Set up RSync to act as a backup on the LAMP server

Boom!

You’ve just set up a pretty decent little hosting LAMP server for development purposes. You’ll need to perform some additional hardening to turn it into a production server for the wilds, but otherwise – nice work!

 

Please feel free to ask about anything in the comments…