Tile Emporium Ringwood – Website Launched

We are pleased to announce our launch of another new website: Tile Emporium Ringwood.

Suppliers of all types of tiles for home and garden, trade and retail, our client supply kitchen, floor & wall tiles  and have an extensive showroom in Ringwood which is easily accessible from Bournemouth, Poole and Southampton.

The website is a mobile first sales focused brochure type website which encourages the visitors to order free tile samples, join the social network, make an enquiry or to visit the showroom.

The telephone number is clickable on a mobile making it easy for customers to call.

The website is also secure which helps SEO and utilises the modern .uk extension instead of the old fashioned .co.uk version.

And – we achieved relevant 1st page organic Google results the day after launch!

Visit Tile Emporium Ringwood: Tiles Bournemouth

Creating New Sites with Homestead & Laravel on Mac OSX

If you’ve previously installed Homestead on your local OSX machine and have a few sites running on the same Vagrant box, this guide is a reminder on how to add additional sites.

In a text editor or Bash Nano, edit the

~/.homestead/Homestead.yaml file.

Append the new sites under ‘folders’ and ‘sites’.

In Terminal, navigate to your Homestead sites directory, eg:

$cd /Users/Harrold/Sites/Homestead/sites

Create the new Laravel project, eg:

$ laravel new project-name

The project-name is the folder name from your .yaml folder map

Reload Vagrant for the changes to take effect

$ vagrant reload

SSH into Vagrant:

$ vagrant ssh

Navigate to the Laravel project, eg:

$ cd /home/vagrant/project-name

Run Composer Install to download Laravel’s dependencies.

$ composer install

Setup the .env file

$ mv .env.example .env

Generate the Laravel application key:

$ php artisan key:generate

If necessary, set the permissions:

$ sudo chgrp -R www-data storage bootstrap/cache
$ sudo chmod -R ug+rwx storage bootstrap/cache

You may need to manually set up the Nginx Server Blocks, remembering to setup the symlinks:

$cp /etc/nginx/sites-available/old-site /etc/nginx/sites-available/another-site

$ sudo nano /etc/nginx/sites-available/old-site

$ ln -s /etc/nginx/sites-available/another-site /etc/nginx/sites-enabled/another-site

$ sudo nginx -t

$ sudo service nginx reload

Navigate to the site in the browser to hopefully see a Laravel home page!

Edit the welcome page to check the Server Blocks are pointing to the correct site.

Bookmark the dev URL in the browser, and the Database connection in the DB GUI.

Setup the databases and other Laravel stuff and configure the app/config etc.


Software Samaritan

If you have a software coding problem, often describing the problem to a colleague reveals the solution.

Your colleague takes the role of ‘Software Samaritan’. They sit there and listen but don’t utter a single word.

By describing the problem in greater detail to enable your colleague to fully understand it, I find the problem solves itself.

Laravel 4.2 Set up Cron for Laravel Artisan Command

Brief instructions to setup a Cron job on Ubuntu for a Laravel PHP Artisan Command.

Create a Crontab for the vagrant user
$ sudo crontab -u vagrant -e

Add the following lines:

#test the cron every minute
*/1 * * * * /usr/bin/php /vagrant/ahvla-beta/artisan command:login-access –status=enable –disable-confirm=1 –disable-log=1

#test that the cron is running without PHP dependancy
*/1 * * * * echo “$(date)” >> /vagrant/project-root/cron-contents.txt

Save the file.

Check the contents

$  crontab -l



How to install CloudFlare’s Free SSL on Laravel

… when you’re too stingy to use a full paid for SSL ;) or during development of course …

Following instructions doesn’t quite work due to the infinite number of various setups available.

Digital Ocean, Forge, Nginx, Cloudflare free SSL, Laravel 5.1, Laravel Collective Forms


  • SSL is already running in Cloudflare for website. However, Laravel doesn’t know about the SSL, so is generating none secure absolute URLs for the form methods.  An unlogged error along the lines of method not allowed:

MethodNotAllowedHttpException in RouteCollection.php line …


  • Create a Self Cert certificate on your server in /etc/nginx/ssl
  • Edit the site’s nginx file /etc/nginx/ssl to point to the cert
  • If using Lavavel Forge: Install Existing Cert; Add the key and cert. Get the contents for each file from /etc/nginx/ssl/
  • Cloudflare: Set the SSL to Flexible