Setup
Um Laravel auf Windows mit XAMPP zum Laufen zu bringen benötigen wir zunächst XAMPP. Zusätzlich wird Composer benötigt, um die verschiedenen Abhängigkeiten zu laden. Und letztlich wird auch GitHub benötigt, da Composer mit Github arbeitet.
Installiere also zunächst ( falls noch nicht geschehen ) die folgenden Programme:
- XAMPP https://www.apachefriends.org/de/download.html
- GitHub https://git-for-windows.github.io/
- Composer https://getcomposer.org/download/
Stelle sicher, dass für GitHub und Composer jeweils die Path-Variable entsprechend konfiguriert ist.
Setup Testen
Bevor wir weitermachen sollte das Setup einmal getestet werden.
XAMPP
Starte Apache und Mysql und stelle sicher, dass beide auf Running stehen
Composer
Öffne eine Konsole und tippe "composer about" ein. Stelle sicher, dass der Befehl gültig ist.
GitHub
Öffne eine Konsole und tippe "git --version" ein. Stelle sicher, dass der Befehl gültig ist.
Laravel Installer
Am einfachsten lässt sich Laravel über den Laravel Installer aufsetzen. Öffne dazu zunächst die Konsole und lade den Installer.
composer global require "laravel/installer"
Danach ist das Kommando laravel new verfügbar, über welches du ein neues Laravel Projekt initialisieren kannst.
laravel new blog
Vergiss nicht vorher in den entsprechenden Ordner zu navigieren. Solltest du XAMPP standardmäßig auf C: installiert haben wäre das wie folgt zu lösen:
cd C:/xampp/htdocs
laravel new blog
Composer lädt nun alle benötigen Abhängigkeiten und platziert diese in dem Ordner blog (für das gegebene Beispiel)
Virtual Host
Nach der Installation sollte sichergestellt werden, dass der Webroot unseres localhosts auf den public Ordner unseres Laravel Projektes zeigt. Da wir eventuell mehrere Projekte auf dem localhost laufen lassen wollen, ist es nicht zu empfehlen, den localhost direkt auf diesen Ordner zeigen zu lassen.
Eine gute Alternative ist ein Virtual Host. Dieser läuft letztlich auch über den localhost, bietet uns jedoch die Möglichkeit eine Host zu simulieren. Dadurch können wir später z.B. über http://blog.dev auf unsere Anwendung zugreifen.
Hosts anpassen
Zunächst musst du in der Systemdatei hosts einen Eintrag hinzufügen. Öffne dazu
C:/Windows/System32/drivers/etc
Dort befindest sich die hosts Datei. Diese muss nun im Administratormodus bearbeitet werden. Verwende am besten ein Programm wie Notepad++ welches beim Speichern erkennt, dass der Admin Modus nötig.
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
127.0.0.1 localhost
127.0.0.1 blog.dev
Füge einen neuen Eintrag hinzu um deinen localhost 127.0.0.1 mit deiner lokalen, virtuellen Domain zu verknüpfen (blog.dev). In dem oben gegebenen Beispiel ist lediglich der Eintrag 127.0.0.1 blog.dev neu hinzugekommen. Das # wird zum auskommentieren verwendet. Sollten die gezeigten Zeilen bei dir nicht auskommentiert sein, solltest du das noch tun.
Apache Konfiguration anpassen
Als nächstes müssen wir den Virtual Host in unserem Apache konfigurieren. Gehe dazu in folgendes Verzeichnis
C:/xampp/apache/conf/extra/
Dort befindet sich die Datei httpd-vhosts.conf. Öffne diese mit einem Editor deiner Wahl (z.B: Notepad++). Füge dort folgenden Eintrag hinzu:
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/blog/public"
ServerName blog.dev
ServerAlias blog.dev
DirectoryIndex index.html index.php
<Directory "C:/xampp/htdocs/blog/public">
Options Indexes FollowSymLinks Includes ExecCGI
Order allow,deny
Allow from all
AllowOverride All
</Directory>
</VirtualHost>
DocumentRoot und Directory sollten dabei jeweils auf den public Ordner deines Laravel Projektes zeigen. Servername und Serveralias sollten dem Wert entsprechen, den du bereits in der hosts Datei gesetzt hast.
Außerdem musst du folgende Zeile entweder einmalig einfügen, oder (da bereits vorhanden) das #, welches in die Anweisung auskommentiert entfernen
NameVirtualHost *:80
Zu guter Letzt solltest du noch den standard localhost konfigurieren.
<VirtualHost *:80> DocumentRoot "C:/xampp/htdocs" ServerName localhost
ServerAlias localhost </VirtualHost>
Wenn das geschafft ist, speichere deine Änderungen. Es ist nun wichtig Apache & Mysql in dem XAMPP-Control Panel neu zu starten.
Datenbank & Umgebungsvariablen
Nachdem Host und Laravel aufgesetzt sind, muss nun die Datenbank erstellt und mit Laravel verknüpft werden.
Öffne dazu phpmyadmin auf deinem localhost (http://localhost/phpmyadmin) Erstelle eine neue Datenbank. Optional kann hier auch direkt ein neuer Nutzer speziell für diese Datenbank angelegt werden.
Im Anschluss öffne die .env Datei in deinem Laravel Projekt. Sie liegt direkt im Projekt Root. Hier können Umgebungsvariablen für die Laravel Applikation gesetzt werden (Datenbank, Mailserver, Sessionhandling etc.).
Pflege hier nun deine Datenbank Daten ein.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=<db name>
DB_USERNAME=<db username>
DB_PASSWORD=<db password>
Zusätzlich solltest du die APP_URL pflegen
APP_URL=http://blog.dev
CACHE_DRIVER und SESSION_DRIVER lassen wir vorerst auf File. Solltest du weder Redis, noch Mail verwenden, kannst du diese vorerst aus der .env Datei entfernen.
APP_ENV=local
APP_DEBUG=true
Sorgen dafür, dass Fehlermeldung sichtbar angezeigt werden (inklusive Stacktrace). Dadurch müssen nicht ständig logs nachgelesen werden.
Testen
Damit ist vorerst alles Notwendige aufgesetzt. Du kannst nun testen, dass alles wie erwartet funktioniert.
Anwendung Abrufen
Öffne http://blog.dev (oder die Äquivalente URL, welche du als Virtual Host definiert hast) und stelle sicher, dass der Default Laravel Screen zu sehen ist.
Datenbank testen
Öffne eine Konsole und navigiere in dein Projekt. Rufe
php artisan migrate
auf um sicherzustellen, dass du die Nutzertabelle migrieren kannst. Diese ist standardmäßig vorhanden.
Nächste Schritte
Du kannst nun anfangen deine Anwendung zu entwickeln. Eine kleine Einleitung zur Entwicklung mit Laravel wird in einem anderen Tutorial dazu kommen.
Gute Tutorials für Laravel findest du hier: laracasts.com
Solltest du mit LESS oder SCSS arbeiten, musst du zu den bereits installierten Anwendungen auch noch Node.js installieren. Laravel verwendet Grunt um Less zu kompilieren, Scripts zu minifien und für vieles mehr.
Solltest du Node.js isntalliert haben musst du lediglich
npm install
in deinem Projekt ausführen. Im Anschluss solltest du den Befehl
grunt
ausführen können.
Moin,
schön, dass es doch noch aktive Laravel Blogger gibt. Leider sind es einfach viel zu wenige.
Viele Grüße
Dirk
Hervorragend detailliert beschrieben, funktioniert auch 2019 noch wunderbar.