Installation

    The Laravel framework has a few system requirements. All of these requirements are satisfied by the Laravel Homestead virtual machine, so it's highly recommended that you use Homestead as your local Laravel development environment.

    However, if you are not using Homestead, you will need to make sure your server meets the following requirements:

    • PHP >= 7.2.0
    • BCMath PHP Extension
    • Ctype PHP Extension
    • JSON PHP Extension
    • Mbstring PHP Extension
    • PDO PHP Extension
    • Tokenizer PHP Extension
    • XML PHP Extension

    Laravel utilizes Composer to manage its dependencies. So, before using Laravel, make sure you have Composer installed on your machine.

    Via Laravel Installer

    First, download the Laravel installer using Composer:

    Make sure to place Composer's system-wide vendor bin directory in your so the laravel executable can be located by your system. This directory exists in different locations based on your operating system; however, some common locations include:

    • macOS: $HOME/.composer/vendor/bin
    • Windows: %USERPROFILE%\AppData\Roaming\Composer\vendor\bin
    • GNU / Linux Distributions: $HOME/.config/composer/vendor/bin or $HOME/.composer/vendor/bin

    You could also find the composer's global installation path by running composer global about and looking up from the first line.

    1. laravel new blog

    Via Composer Create-Project

    Alternatively, you may also install Laravel by issuing the Composer create-project command in your terminal:

    Local Development Server

    If you have PHP installed locally and you would like to use PHP's built-in development server to serve your application, you may use the Artisan command. This command will start a development server at http://localhost:8000:

    1. php artisan serve

    More robust local development options are available via and Valet.

    Public Directory

    After installing Laravel, you should configure your web server's document / web root to be the public directory. The index.php in this directory serves as the front controller for all HTTP requests entering your application.

    Configuration Files

    All of the configuration files for the Laravel framework are stored in the config directory. Each option is documented, so feel free to look through the files and get familiar with the options available to you.

    Directory Permissions

    After installing Laravel, you may need to configure some permissions. Directories within the storage and the bootstrap/cache directories should be writable by your web server or Laravel will not run. If you are using the virtual machine, these permissions should already be set.

    Application Key

    The next thing you should do after installing Laravel is set your application key to a random string. If you installed Laravel via Composer or the Laravel installer, this key has already been set for you by the php artisan key:generate command.

    Additional Configuration

    Laravel needs almost no other configuration out of the box. You are free to get started developing! However, you may wish to review the config/app.php file and its documentation. It contains several options such as timezone and locale that you may wish to change according to your application.

    You may also want to configure a few additional components of Laravel, such as:

    Web Server Configuration

    Laravel should always be served out of the root of the "web directory" configured for your web server. You should not attempt to serve a Laravel application out of a subdirectory of the "web directory". Attempting to do so could expose sensitive files present within your application.

    Apache

    Laravel includes a public/.htaccess file that is used to provide URLs without the index.php front controller in the path. Before serving Laravel with Apache, be sure to enable the mod_rewrite module so the .htaccess file will be honored by the server.

    If the .htaccess file that ships with Laravel does not work with your Apache installation, try this alternative:

    Nginx

    1. location / {
    2. }

    When using or Valet, pretty URLs will be automatically configured.