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:
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.
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:
laravel new blog
Via Composer Create-Project
Alternatively, you may also install Laravel by issuing the Composer
create-project
command in your terminal:
composer create-project --prefer-dist laravel/laravel:^7.0 blog
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
serve
Artisan command. This command will start a development server at
http://localhost:8000
:
php artisan serve
More robust local development options are available via
Homestead
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
Homestead
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.
Typically, this string should be 32 characters long. The key can be set in the
.env
environment file. If you have not copied the
.env.example
file to a new file named
.env
, you should do that now.
If the application key is not set, your user sessions and other encrypted data will not be secure!
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:
Cache
Database
Session
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:
Options +FollowSymLinks -Indexes
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Nginx
If you are using Nginx, the following directive in your site configuration will direct all requests to the
index.php
front controller:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
When using
Homestead
or
Valet
, pretty URLs will be automatically configured.
Laravel is a web application framework with expressive, elegant syntax. We believe development must
be an enjoyable and creative experience to be truly fulfilling. Laravel attempts to take the pain
out of development by easing common tasks used in most web projects.
Laravel is a Trademark of Laravel Holdings Inc.
Code highlighting provided by
Torchlight