How to Install Laravel Local Dev Environment On Ubuntu

How to Install Laravel Local Dev Environment On Ubuntu

Let's get a simple Laravel dev environment running on Ubuntu desktop 19.04 & 18.04 including a complete MySQL database connection.

This article assumes some familiarity with the Linux terminal.

Install PHP

Add and install the PHP 7.3 PPA

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.3

Verify the PHP version installed

php -v


PHP (cli) (built: Aug  7 2019 09:52:53) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.8, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache, Copyright (c) 1999-2018, by Zend Technologies

Install MySQL database

sudo apt-get install php7.3-mysql
sudo apt-get install mysql-server
sudo mysql_secure_installation

Now you'll be presented with some prompts.

For a local dev environment I skip the 'Validate Password Plugin'.

You will be asked to enter a password for the root user.

From there remove the anonymous users, disallow the root user from remote access, and remove the test database.

When asked to reload privilege tables select yes.

Create a non-root user with root privilages

We will use this user when configuring our Laravel application later on.

Log into MySQL as root.

sudo mysql -u root -p

Run the following SQL to create a new user admin.

CREATE USER 'admin'@'localhost' IDENTIFIED BY '';

Enter exit to leave the MySQL CLI.

mysql> exit

Test out the new user by logging in as admin without using sudo.

mysql -u admin

You should see something like:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.7.27-0ubuntu0.19.04.1 (Ubuntu)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> _

Exit MySql and we'll move on to installing Composer.

mysql> exit

Install Composer

First, we need to update our package manager.

sudo apt update

Now we are going to install some dependencies needed for the Composer installation.

  • curl for downloading Composer
  • php-cli is needed to run the install
  • php-mbstring provides functions for a library used
  • git will allow Composer to download project dependencies
  • unzip for unzipping packages
sudo apt install curl php-cli php-mbstring git unzip

With that out of the way we can download the Composer installer.

Begin by moving into your home directory

cd ~

and starting the Composer installer download.

curl -sS -o composer-setup.php

Before we can run the installer it needs to be verified for corruption.

Visit and find the 'Installer Signature (SHA-384)'

Use the signature and run the following commands to verify your installer.

php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

You should see the output of

Installer verified

otherwise you will need to re-download the installer and go through the verification steps again.

Run the installer

Now we are free to install Composer globally on the system.

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer


All settings correct for using Composer

Composer (version 1.9.0) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

Verify Composer is installed

⚠️ Do not run composer as root using sudo ⚠️

Simply run


and you should see:

  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
Composer version 1.9.0 2019-08-02 20:55:32

Time for Laravel!

But first, some dependencies.

sudo apt-get install php7.3-zip
sudo apt-get install php7.3-xml

Download the Laravel installer using Composer.

composer global require laravel/installer

Now we need to update the Linux $PATH

echo 'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> ~/.bashrc

After updating the $PATH close your terminal window and open a fresh one.

Hello, World

Let's get a boilerplate Laravel app running on our localhost.

First we will need to create the database that we will be connecting to.

Log into MySql via the terminal using the admin user that was created earlier.

mysql -u admin

Now run the following SQL to create a database named laravel.


With our database created we can move to the Laravel side of things.

cd via the terminal into the folder you want to create your Laravel application in.

For me that's ~/dev/laravel/

Run the following command to scaffold the app:

laravel new hello-world

hello-world is just the name of the app so name it whatever you like.

Once this finishes cd into the new directory for your app.

cd hello-world

At this point we need to tell the Laravel app how to connect to our database.

For this we will edit the .env file in the root of the application.

sudo nano .env

The connection settings should look like this


You can save the changes from nano with ctrl+x-> 'y' -> [ENTER]

Now we need to test this connection.

For this we will edit /routes/web.php

It should end up looking like

Route::get('/', function () {
    // return view('welcome');
    try {
        $caught = false;
    } catch (Exception $e) {
        $caught = true;
        die("Could not connect to the database.  Please check your configuration. error:" . $e );

        echo 'Hello, world.';

Now start the server by running

php artisan serve


Laravel development server started: <>

Now you can check it out in your browser at

You should see 'Hello, world.' printed to the screen signalling a successful connection to the database.

That's it!

You now have PHP 7.3, MySql, Composer, and the Laravel installer configured for your local Ubuntu development environment with a running starter Laravel app.

Originally published on

laravel php mysql ubuntu web-development

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

PHP Web Application Development Company

As a top **PHP Web Application Development Company in USA**[]( ""), we at Data EximIT have...

PHP Website Development

Skenix Infotech is a leading PHP Web Development Company that helps companies get results with industry best practices. Get affordable PHP Development Services.

Laravel Development Company

Skenix Infotech is a top Laravel Website Development Company with Expert Laravel Developers that provides robust Laravel Development Services at fair costs.

Hire Dedicated PHP Developer

Looking to hire affordable yet experienced PHP developers? **[Hire Dedicated PHP Developer]( "Hire Dedicated PHP Developer")**, who can convert your idea to reality, within the stipulated...

Hire PHP Developer

Looking to develop a PHP based website from scratch or revamp your existing website? **[]( "")** has always been an industry leader for companies and business owners looking to hire...