- Awesome Laravel (Chirag Gude)
- Release Notes
- Upgrade Guide
- Directory Structure
- Laravel Homestead
- Request Lifecycle
- Service Container
- Service Providers
- Errors & Logging
- CSRF Protection
- HTTP Requests
- HTTP Responses
- HTTP Session
- Blade Templates
- Compiling Assets (Laravel Mix)
- API Authentication (Passport)
- Resetting Passwords
- Artisan Console
- Package Development
- Task Scheduling
- File Storage
- Database Getting Started
- Database Query Builder
- Database Pagination
- Database Migrations
- Database Seeding
- Eloquent Getting Started
- Eloquent Relationships
- Eloquent Collections
- Eloquent Mutators
- Eloquent Serialization
- Testing Getting Started
- HTTP Tests
- Browser Tests (Laravel Dusk)
- Database Testing
- Laravel Cashier
- Envoy Task Runner
- Laravel Scout
Are you a visual learner? Laracasts provides a free, thorough introduction to Laravel for newcomers to the framework. It’s a great place to start your journey.
The Laravel framework has a few system requirements. Of course, 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 >= 5.6.4
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring 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.
First, download the Laravel installer using Composer:
Make sure to place the
$HOME/.composer/vendor/bin directory (or the equivalent directory for your OS) in your $PATH so the
laravel executable can be located by your system.
Once installed, the
laravel new command will create a fresh Laravel installation in the directory you specify. For instance,
laravel new blog will create a directory named
blog containing a fresh Laravel installation with all of Laravel’s dependencies already installed:
Alternatively, you may also install Laravel by issuing the Composer
create-project command in your terminal:
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
serve Artisan command. This command will start a development server at
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.
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.
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 Homestead virtual machine, these permissions should already be set.
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.
Typically, this string should be 32 characters long. The key can be set in the
.env environment file. If you have not renamed the
.env.example file to
.env, you should do that now. If the application key is not set, your user sessions and other encrypted data will not be secure!
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
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:
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.
.htaccess file that ships with Laravel does not work with your Apache installation, try this alternative:
Options +FollowSymLinks RewriteEngine On
If you are using Nginx, the following directive in your site configuration will direct all requests to the
index.php front controller: