DEV Community

Cover image for How to set up Laravel in Ubuntu
Bunnyshell
Bunnyshell

Posted on

How to set up Laravel in Ubuntu

Laravel is a very popular open-source PHP framework aimed at easy development of applications. If you are looking for a new PHP framework, you should give Laravel a try.

Summary

The following steps will show you how to install and run Laravel on an Ubuntu 18.04 LTS based Apache server. This tutorial works for Ubuntu 17.x as well. But for servers, you should prefer to use an Ubuntu LTS release like the current Ubuntu 18.04 LTS. Learn how to set up Laravel in Ubuntu.

After showing you how to set up this PHP framework in Ubuntu, we’ll be showing you what it takes to set up your Laravel Application using the Bunnyshell Platform.

How to set up Laravel in Ubuntu

Pre-Requisites

We will assume that you have a basic server based on Ubuntu running.

Before proceeding with the installation, it’s always a good idea to make sure your sources and existing software are updated.

sudo apt-get update

sudo apt-get upgrade

Before Laravel, we need to install other components that are essential.

Installing Apache and PHP 7.2

Next step is to install PHP along with several extra packages that would prove useful if you are going to work with Laravel.

sudo add-apt-repository ppa:ondrej/php

sudo apt-get update

sudo apt-get install apache2 libapache2-mod-php7.2 php7.2 php7.2-xml php7.2-gd

php7.2-opcache php7.2-mbstring

Even though Ubuntu’s own repository has PHP, it’s better to add a 3rd party repository here because it gets more frequently updated. You can skip that step and stick to Ubuntu’s version if that’s what you prefer.

Installing Laravel

Before we finally delve into it, we also need Git version control to be installed. If you have it installed, you can skip the following step.

Download and install Git for Linux:

sudo apt-get install git
Once the installation has successfully completed, the next thing to do is to set up the configuration details of the GitHub user.

git config --global user.name "user_name"

git config --global user.email "email_id"
To install Laravel, we need to install Composer first. It is a tool for dependency management in PHP that allows you to package all the required libraries associated with a package as one. To install Laravel and all its dependencies, Composer is required.

cd /tmp

curl -sS https://getcomposer.org/installer | php

sudo mv composer.phar /usr/local/bin/composer

The curl command downloads composer.phar package to your /tmp directory. But we would want composer to run globally hence we need to move it to /usr/local/bin/ directory under the name ‘composer’. Now we can run composer from anywhere.

To install Laravel, move to the public html directory on your system. Since we are on Ubuntu and using Apache, we will install it in the /var/www/html directory.

cd /var/www/html

sudo composer create-project laravel/laravel your-project --prefer-dist

The above command will create a “your-project” directory with Laravel installation in it. Composer uses Git to download and install all the packages and modules that Laravel requires for functioning.

Configuring Apache

Now that we have installed Laravel, we move onto the step of configuring Apache webserver.

Give proper permissions to the project directory:

sudo chgrp -R www-data /var/www/html/your-project

sudo chmod -R 775 /var/www/html/your-project/storage
Go to the /etc/apache2/sites-available directory and use the following command to create a configuration file for our Laravel install:

cd /etc/apache2/sites-available

sudo nano laravel.conf

Add the following content to the file and close it after saving. Replace yourdomain.tld with the domain name of your website inside the file:

ServerName yourdomain.tld

ServerAdmin webmaster@localhost

DocumentRoot /var/www/html/your-project/public

<Directory /var/www/html/your-project>

    AllowOverride All

</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined
Enter fullscreen mode Exit fullscreen mode

We have to enable this newly created .conf file and disable the default .conf file that is installed with the default Apache install. Also, we need to enable mod_rewrite so that permalinks can function properly:

sudo a2dissite 000-default.conf

sudo a2ensite laravel.conf

sudo a2enmod rewrite

sudo service apache2 restart

Your Laravel installation is now complete. Visit the IP address or domain name of your server with a web browser.

Looking for an easier way? Check the full tutorial to see how to set up Laravel using Bunnyshell.

Top comments (0)