DEV Community

Bilal Niaz
Bilal Niaz

Posted on • Edited on

How to Install Laravel on Ubuntu 20.04

Laravel is an open-source PHP web framework. It is mainly used for building PHP-based web applications.

Laravel is suitable for both small-scale and enterprise-level application development. Its elegant syntax, advanced features, robust tools help simplify web application development. Laravel is highly scalable and has built-in support for distributed cache systems.

Step 1: Install Apache web server:

 sudo apt install apache2
Enter fullscreen mode Exit fullscreen mode

Once installed, Apache should be running. If it's not, for whatever reason, start it:

sudo systemctl start apache2
Enter fullscreen mode Exit fullscreen mode

Then enable it to start on boot time.

sudo systemctl enable apache2
Enter fullscreen mode Exit fullscreen mode

To verify the status of Apache, execute:

 sudo systemctl status apache2
Enter fullscreen mode Exit fullscreen mode

Image description

Step 2: Install PHP and additional PHP extensions:

sudo apt install php libapache2-mod-php php-mbstring php-cli php-bcmath php-json php-xml php-zip php-pdo php-common php-tokenizer php-mysql
Enter fullscreen mode Exit fullscreen mode

When the installation is complete, verify the PHP version.

php -v
Enter fullscreen mode Exit fullscreen mode

Image description

Step 3: Create Database for Laravel Application:
But first, we need to install a database server. Laravel supported database systems are MariaDB, MySQL, SQLite, Postgres, or SQL Server.
We will go with the MariaDB database engine.

sudo apt install mariadb-server
Enter fullscreen mode Exit fullscreen mode

Once the database server is installed, log into the MariaDB prompt:

sudo  mysql -u root -p
Enter fullscreen mode Exit fullscreen mode

Once logged in create the database, database user, and grant all privileges to the database user.

CREATE DATABASE laravel_db;
Enter fullscreen mode Exit fullscreen mode
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'secretpassword';
Enter fullscreen mode Exit fullscreen mode
GRANT ALL ON laravel_db.* TO 'laravel_user'@'localhost';
Enter fullscreen mode Exit fullscreen mode
FLUSH PRIVILEGES;
Enter fullscreen mode Exit fullscreen mode
QUIT;
Enter fullscreen mode Exit fullscreen mode

Step 4: Install Composer:
Composer is a dependency package manager for PHP. It provides a framework for managing libraries and dependencies and required dependencies. To use Laravel, first install composer.

curl -sS https://getcomposer.org/installer | php
Enter fullscreen mode Exit fullscreen mode

This downloads the composer.phar file.

Image description
Next, move the composer file to the /usr/local/bin path.

sudo mv composer.phar  /usr/local/bin/composer
Enter fullscreen mode Exit fullscreen mode

Assign execute permission:

sudo chmod +x   /usr/local/bin/composer
Enter fullscreen mode Exit fullscreen mode

Verify the Composer version installed:

composer --version
Enter fullscreen mode Exit fullscreen mode

Image description

Step 5: Install Laravel 8 on Ubuntu:
With Composer installed, the next course of action is to install Laravel.

Navigate to the webroot directory, type:

cd /var/www/html
Enter fullscreen mode Exit fullscreen mode

Now, install Laravel using the composer command, type:

sudo composer create-project laravel/laravel laravelapp
Enter fullscreen mode Exit fullscreen mode

The command creates a new directory called laravelapp and installs all the files and directories for Laravel.

Change the ownership of the Laravel directory to the webserver user and also the permissions:

sudo chown -R www-data:www-data /var/www/html/laravelapp
sudo chmod -R 775 /var/www/html/laravelapp/storage
Enter fullscreen mode Exit fullscreen mode

Feel free to replace laravelapp with a preferred directory name.

Image description
Once the installation is done navigate to the installation directory and check the Laravel version.

 cd laravelapp
Enter fullscreen mode Exit fullscreen mode
php artisan
Enter fullscreen mode Exit fullscreen mode

Image description

Step 6: Configure Apache to serve Laravel site:
Lastly, we need to set up the Apache webserver to host the Laravel site. For that to happen, we need to create a virtual host file

sudo vim /etc/apache2/sites-available/laravel.conf
Enter fullscreen mode Exit fullscreen mode

Next, past the content shown and replace the example.com ServerName directive with the FQDN or public IP of the server ( Or private IP in case the server is on a LAN network ).

<VirtualHost *:80>
ServerName example.com
ServerAdmin admin@example.com
DocumentRoot /var/www/html/laravelapp/public
<Directory /var/www/html/laravelapp>
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Save the changes and exit the file. Next, enable the Laravel site and Apache rewrite module using these two commands.

sudo a2ensite laravel.conf
Enter fullscreen mode Exit fullscreen mode
sudo a2enmod rewrite
Enter fullscreen mode Exit fullscreen mode

To apply the changes, restart Apache

sudo systemctl restart apache2
Enter fullscreen mode Exit fullscreen mode

Step 7: Access Laravel from a browser:

Image description
Follow Me : Twitter LinkedIn

Top comments (1)

Collapse
 
bukanspot profile image
Indra Wahyu • Edited

You missed one step, after install mariadb-server run sudo service mysql restart, in certain cases mysql does not run automatically after being installed, for example in WSL. without that you will have this error ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) for runing sudo mysql -u root -p. btw, this is my problem when following your tutorial and I want to share it. haha