Valet ist eine Umgebung, die PHP-Projekte aus einem lokalen Verzeichnis automatisch im Browser verfügbar macht. Es ist eine leichtgewichtige Alternative zu Vagrant oder Docker. Um es gleich vorweg zu nehmen: Die hier vorgestellte Lösung ist nicht an Laravel gebunden sondern eignet sich für die Entwicklung von PHP-Projekten aller Art (z.B. Symfony, Zend, Drupal, WordPress, Magento, usw.).
Valet funktioniert knapp gesagt so: Man gibt in einem Ordner in dem Projekte liegen valet park ein. Ab da kann man die Projekte in dem Ordner über verzeichnis.dev im Browser aufrufen. Gibt man noch valet secure verzeichnis ein, kann man die Seite sogar über https://verzeichnis.dev aufrufen (ohne Zertifikats-Fehler).
Will man jemandem von Extern Zugriff auf die lokale Entwicklungsumgebung gewähren ist dies mit valet share möglich. Diese Funktion nutzt ngrok, um einen Tunnel aufzubauen und generiert einen Link, den man teilen kann. In einem lokalen Webinterface kann man noch jeden externen Request beobachten und inspizieren.
Bevor wir zur Einrichtung kommen, hier noch mal schnell ein lustiges Fake-Marketing-Video zu Valet:
Installation
Ab Ubuntu 17.04 funktioniert Valet „dank“ systemd leider nicht mehr out-of-the-box. Wie man die Probleme behebt habe ich im vorheringen Artikel beschrieben (Update: Im aktuellen Valet funktioniert es auch ohne eigene Änderungen an 17.04). Im Folgenden gehe ich davon aus, dass composer bereits installiert ist und $HOME/.composer/vendor/bin im Pfad liegt. Wir benutzen nicht die offizielle Version von Valet, sondern einen Fork, der auch unter Linux funktioniert (neben Ubuntu sind auch Fedora und Arch getestet).
sudo apt install libnss3-tools jq xsel php7.0-cli php7.0-curl php7.0-mbstring php7.0-mcrypt php7.0-xml php7.0-zip php7.0-sqlite3 php7.0-mysql composer global require cpriego/valet-linux valet install mkdir ~/Sites cd ~/Sites && valet park
Alle Projekte, die nun in ~/Sites liegen, sind über verzeichnis.dev aufrufbar. Über Treiber erkennt Valet, um was für eine Art von Projekt es sich handelt und serviert es entsprechend dem Browser. Auf Github gibt es eine Liste der Treiber, man kann aber auch leicht eigene schreiben.
Viel Spaß beim Coden. ;-)
Pingback: Ubuntu 17.04: DNS mit dnsmasq statt systemd | YuMDaP.net Blog