How to install Laravel 5 with Xampp (Windows)

Published Feb 03, 2016Last updated Mar 20, 2018
How to install Laravel 5 with Xampp (Windows)

Requirements

  • PHP >= 5.5.9
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension

Install Xampp

First of all, we need Xampp, so we can download it from the official page:
Download Xampp
enter image description here

Composer

After you've downloaded and installed Xampp, we need to install Composer.

Composer is a PHP package manager that is integrated with Laravel Framework. In Windows we can install it easy going to the official page and download the installer.

Composer Download page

After install it, we can open a Windows terminal and write composer for execute the command:

Composer

Xampp Virtual Host

We will configure a Virtual Host in Xampp for a Laravel project, and in this example, we want to configure the domain laravel.dev for our project.

We need to edit httpd-vhosts.conf that is located in C:\xampp\apache\conf\extra\httpd-vhosts.conf and add following lines at the end of the file:

# VirtualHost for LARAVEL.DEV

<VirtualHost laravel.dev:80>
  DocumentRoot "C:\xampp\htdocs\laravel\public"
  ServerAdmin laravel.dev
  <Directory "C:\xampp\htdocs\laravel">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
  </Directory>
</VirtualHost>

After this, our apache is listening to laravel.dev connections, but we have to configure our hosts file that allows to redirect laravel.dev to the localhost that is located in C:\Windows\System32\drivers\etc

IMPORTANT!: To edit this file, maybe we should give access, click properties and allow your user to modify this file.
Edit hosts file adding our localhost for laravel.dev:

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost

127.0.0.1	laravel.dev

NOTE: Read at the bottom of the page for .dev domains

Save the file and we are ready to install laravel.

Install Laravel Framework

We are prepared to install and configure a Laravel Framework. First of all, we have to navigate to htdocs folder to install it and run this following command:

composer create-project laravel/laravel laravel "5.1.*"

Will start the installation of the Framework:

Laravel installation

Laravel installation

When it finishes, it will create following directory schema:

Schema

Finally, start our apache and MySql from Xampp control panel:

Xampp control panel

Success!

Navigate to laravel.dev and Laravel it's installed!

Laravel installed

**If you’re having some difficulty getting laravel.dev to work, here’s some information you should know: (Thanks to @pooks1958) **

Gooogle recently purchased the .dev TLD, and forces Chrome (and Firefox, apparently) to use HSTS connections to connect to any .dev TLD. If you don’t believe me, go to chrome://net-internals/#hsts and query anything ending with .dev. Look at the information displayed, and note that it says
static_upgrade_mode: FORCE-HTTPS. This means that when you go to www.laravel.dev, Google will force it to use HTTPS Strict Transfer Security. I’m not 100% certain on the version, but I believe this was implemented in Chrome 59.0 and later. Unfortunately, even if you have an SSL certificate or self-signed SSL cert on your development machine, it will not load any .dev TLD while using Chrome or Firefox. It would seem that Google has officially broken development machines everywhere.

So, you can’t use .dev for development anymore. But what can you do? Try changing your hosts file (on Windows: go to C:\Windows\System32\Drivers\etc\hosts). After all the lines that begin with #, type a new line reading:
127.0.0.1 laravel.site (or whatever you named your project).
Just use a different TLD since Google selfishly broke the .dev domain. As for the server adjustments, you’ll have to make the changes mentioned above in your httpd.conf file, but replace “.dev” with whatever TLD you chose for your project.

The article should be updated to reflect this. I’m not sure if Laravel has made changes to Valet to compensate for this change yet, but I would imagine that an update should be rolling out soon if it hasn’t already.

Discover and read more posts from Marc Garcia Torrent
get started