Laravel is a highly popular PHP framework that follows the MVC (Model-View-Controller) architectural pattern. It simplifies the process of web application development with its elegant syntax, modular packaging, and overall convenience.

Advertisement

This article will provide a step-by-step guide on how to install Laravel on Ubuntu 20.04. We will also install all the necessary prerequisites such as PHP, Composer, and other PHP extensions.

Step 1: Install Apache Web Server and PHP

To host our Laravel application, we need a web server. We will use Apache for this purpose. We also need to install PHP because Laravel is a PHP framework. The latest Laravel version required PHP 8.1 or higher version.

To install Apache and PHP, open your terminal and type the following commands:

sudo apt update 
sudo add-apt-repository ppa:ondrej/php 
sudo apt install apache2 php libapache2-mod-php php-mbstring php-xmlrpc php-soap php-gd php-xml php-cli php-zip 

This command will install Apache, PHP, and some additional PHP extensions that Laravel requires.

Step 2: Install MySQL Server (Optional)

Most Laravel applications need a database. We will install MySQL, but you can choose any database system you prefer.

To install MySQL, type the following commands:

sudo apt install mysql-server 
sudo mysql_secure_installation 

The second command will guide you through a series of prompts to secure your MySQL installation.

Step 3: Install Composer

Composer is a dependency manager for PHP. Laravel requires Composer for managing all its dependencies.

To install Composer, use the following commands:

curl -sS https://getcomposer.org/installer | php 
sudo mv composer.phar /usr/local/bin/composer 

The first command downloads the Composer installer and runs it. The second command moves the composer.phar file to a directory that is in your PATH so you can access it globally.

Step 4: Install Laravel

Now that we have all the prerequisites installed, we can proceed to install Laravel. We’ll install Laravel globally so it can be used on any project.

First, we need to move to the directory where we want our Laravel project to be installed. This is typically in the /var/www/html directory:

cd /var/www/html 

Then, install Laravel using Composer:

sudo composer global require laravel/installer 

Step 5: Create a New Laravel Project

Now, you can create a new Laravel project with the following command:

composer create-project --prefer-dist laravel/laravel myProject 

Replace “myProject” with the name you want to give to your project.

This command will create a new folder in your current directory with the name of your project, and it will install a fresh Laravel installation in that folder.

Step 6: Configure Apache

In order for Apache to serve your Laravel application, you need to modify its configuration.

First, create a new configuration file:

sudo nano /etc/apache2/sites-available/laravel.conf 

Add the following content to the file:


<VirtualHost *:80>
    ServerName laravel.example.com
    ServerAdmin webmaster@example.com

    DocumentRoot /var/www/html/myProject/public

    <Directory /var/www/html/myProject>
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Replace “laravel.example.com” with your actual domain, and set the correct Document root.

Then, enable the new configuration and disable the default one:

sudo a2ensite laravel.conf 
sudo a2dissite 000-default.conf 

To make use of Laravel’s .htaccess file to handle some web server settings, you’ll need to enable Apache’s rewrite module:

sudo a2enmod rewrite 

Finally, restart Apache to apply the changes:

sudo systemctl restart apache2 

Step 7: Configure Environment Settings

In your project directory, there’s a .env file which holds all the settings that Laravel needs to run, such as database information, application key, and more. Make sure to update this file according to your environment.

You can make a copy of .env.example and generate secret key with the following commands:

cp .env.example .env 
php artisan key:generate 

Step 8: Access Laravel Application

You have successfully configured the Laravel PHP framework on your system. Access Laravel application in your favorite web browser

Setting Up Laravel on Ubuntu
Laravel default page

Conclusion

That’s it! You’ve successfully installed Laravel on Ubuntu 20.04. You can now start building your Laravel application. Make sure to check out Laravel’s official documentation to get familiar with what you can do with Laravel.

Share.

22 Comments

  1. Thanks for this step by step…It was really helpful to me.
    First time installing laravel on my localhost and it went smooth

  2. Thank you for posting the tutorial. Despite following the instructions accurately, I receive an error when trying to install Laravel from GIT:

    fatal: could not create work tree dir ‘laravel’: Permission denied

    I tried:

    sudo git clone https://github.com/laravel/laravel.git

    But this creates other problems (Apache stops running.)

    • fjsigalladev on

      hello, just change the permission on your newly created laravel directory. If you are using any linux distribution, just move to /var/www then run the commond “chmod 777 .”
      From there you should be able to clone laravel from git

      • fjsigalladev on

        *UPDATE*

        On the above comment I meant change permission of you /var/www directory and not laravel, coz at this point you dont have laravel directory yet

  3. In PackageManifest.php line 122:

    Undefined index: name

    Script php artisan optimize handling the post-update-cmd event returned with error code 1

  4. hi, i have the same problem : “UnexpectedValueException
    The stream or file “/var/www/laravel/storage/logs/laravel.log” could not be opened: failed to open stream: Permission denied” … i use

    sudo chmod -R 777 /var/www/laravel/* . then it’s works fine… but i don’t know if using a wildcard “*” is correct. ¿Can you tell me?

    Congrats, greetings from Chile .

    • Set 777 permission on storage directory not the entire project. Try below commands.

      chmod -R 755 /var/www/laravel
      chmod -R 777 /var/www/laravel/storage

  5. [Composer\Downloader\TransportException]
    The “http://repo.packagist.org/p/fideloper/proxy%243c476aa5bc1f7be4de12519b02c7d32e5
    271ecf43f8ad9119472305e52cc7d85.json” file could not be downloaded: failed to open s
    tream: HTTP request failed!

    help

  6. UnexpectedValueException
    The stream or file “/var/www/laravel/storage/logs/laravel.log” could not be opened: failed to open stream: Permission denied

  7. Daman Camara on

    After running:

    sudo composer install

    I was told to not run composer as a super-user. Your documentation may be in need of updates.

    • Paul A. Gureghian on

      Try running the command without, it might say you don’t have the permission. in which case you would need to be root.

Leave A Reply


Exit mobile version