Einführung
Laravel ist ein modernes Open-Source-PHP-Framework für Webentwickler. Es soll Entwicklern eine einfache und elegante Möglichkeit bieten, eine voll funktionsfähige Webanwendung schnell zum Laufen zu bringen.
In diesem Handbuch wird die Installation von Laravel unter Ubuntu 14.04 erläutert. Wir werden Nginx als unseren Webserver verwenden und zum Zeitpunkt dieses Schreibens mit der neuesten Version von Laravel, Version 4.2, arbeiten.
Installieren Sie die Backend-Komponenten
Das erste, was wir tun müssen, um mit Laravel zu beginnen, ist den Stack zu installieren, der es unterstützt. Wir können dies über Ubuntus Standard-Repositorys tun.
Zuerst müssen wir unseren lokalen Paketindex aktualisieren, um sicherzustellen, dass wir eine neue Liste der verfügbaren Pakete haben. Dann können wir die notwendigen Komponenten installieren:
sudo apt-get update
sudo apt-get install nginx php5-fpm php5-cli php5-mcrypt git
Dies installiert Nginx als unseren Webserver zusammen mit den PHP-Tools, die benötigt werden, um den Laravel-Code tatsächlich auszuführen. Wir installieren auchgit
, da das Toolcomposer
, der Abhängigkeitsmanager für PHP, mit dem wir Laravel installieren, es zum Abrufen von Paketen verwendet.
Ändern Sie die PHP-Konfiguration
Nachdem wir unsere Komponenten installiert haben, können wir sie konfigurieren. Wir werden mit PHP beginnen, was ziemlich einfach ist.
Als erstes müssen wir die Haupt-PHP-Konfigurationsdatei für den von Nginx verwendeten PHP-fpm-Prozessor öffnen. Öffnen Sie dies mit sudo-Berechtigungen in Ihrem Texteditor:
sudo nano /etc/php5/fpm/php.ini
Wir müssen nur einen Wert in dieser Datei ändern. Suchen Sie nach dem Parametercgi.fix_pathinfo
. Dies wird auskommentiert und auf „1“ gesetzt. Wir müssen dies auskommentieren und auf "0" setzen:
cgi.fix_pathinfo=0
Dies weist PHP an, nicht zu versuchen, ein ähnlich benanntes Skript auszuführen, wenn der angeforderte Dateiname nicht gefunden wird. Dies ist sehr wichtig, da ein Angreifer durch das Zulassen dieses Verhaltens eine speziell entwickelte Anforderung erstellen kann, mit der versucht wird, PHP zur Ausführung von Code zu verleiten, der nicht ausgeführt werden sollte.
Wenn Sie fertig sind, speichern und schließen Sie die Datei.
Der letzte Teil der PHP-Administration, den wir ausführen müssen, ist die explizite Aktivierung der MCrypt-Erweiterung, von der Laravel abhängig ist. Wir können dies tun, indem wir den Befehlphp5enmod
verwenden, mit dem wir optionale Module einfach aktivieren können:
sudo php5enmod mcrypt
Jetzt können wir den Dienstphp5-fpm
neu starten, um die vorgenommenen Änderungen zu implementieren:
sudo service php5-fpm restart
Unser PHP ist jetzt vollständig konfiguriert und wir können weitermachen.
Konfigurieren Sie Nginx und das Web Root
Der nächste Punkt, den wir ansprechen sollten, ist der Webserver. Dies beinhaltet tatsächlich zwei unterschiedliche Schritte.
Der erste Schritt ist die Konfiguration des Dokumentenstamms und der Verzeichnisstruktur, in denen die Laravel-Dateien gespeichert werden. Wir werden unsere Dateien in einem Verzeichnis namens/var/www/laravel
ablegen.
Zu diesem Zeitpunkt wird nur die oberste Ebene dieses Pfads (/var
) erstellt. Wir können den gesamten Pfad in einem Schritt erstellen, indem wir das Flag-p
an unseren Befehlmkdir
übergeben. Dadurch wird das Dienstprogramm angewiesen, alle erforderlichen übergeordneten Pfadelemente zu erstellen, die zum Erstellen eines bestimmten Pfads erforderlich sind:
sudo mkdir -p /var/www/laravel
Nachdem wir einen Speicherort für die Laravel-Komponenten festgelegt haben, können wir mit der Bearbeitung der Nginx-Serverblöcke fortfahren.
Öffnen Sie die Standard-Serverblockkonfigurationsdatei mit sudo-Berechtigungen:
sudo nano /etc/nginx/sites-available/default
Nach der Installation enthält diese Datei einige erläuternde Kommentare, aber die Grundstruktur sieht folgendermaßen aus:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ =404;
}
}
Dies ist eine gute Grundlage für die Änderungen, die wir vornehmen werden.
Das erste, was wir ändern müssen, ist der Speicherort des Dokumentenstamms. Laravel wird in dem von uns erstellten Verzeichnis/var/www/laravel
installiert.
Die Basisdateien, die zum Ausführen der App verwendet werden, werden jedoch in einem Unterverzeichnis innerhalb diesespublic
gespeichert. Hier legen wir unseren Dokumentenstamm fest. Darüber hinaus werden wir Nginx anweisen, alleindex.php
-Dateien bereitzustellen, bevor nach ihren HTML-Gegenstücken gesucht wird, wenn ein Verzeichnisspeicherort angefordert wird:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/laravel/public;
index index.php index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ =404;
}
}
Als nächstes sollten wir die Direktiveserver_name
o setzen, dass sie auf den tatsächlichen Domänennamen unseres Servers verweist. Wenn Sie keinen Domainnamen haben, können Sie die IP-Adresse Ihres Servers verwenden.
Wir müssen auch die Art und Weise ändern, wie Nginx Anfragen behandelt. Dies erfolgt über die Direktivetry_files
. Wir möchten, dass es zuerst versucht, die Anfrage als Datei zu liefern. Wenn keine Datei mit dem richtigen Namen gefunden wird, sollte versucht werden, die Standardindexdatei für ein Verzeichnis bereitzustellen, das der Anforderung entspricht. Andernfalls sollte die Anforderung als Abfrageparameter an die Dateiindex.php
übergeben werden.
Die oben beschriebenen Änderungen können folgendermaßen implementiert werden:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/laravel/public;
index index.php index.html index.htm;
server_name server_domain_or_IP;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
}
Schließlich müssen wir einen Block erstellen, der die tatsächliche Ausführung von PHP-Dateien übernimmt. Dies gilt für alle Dateien, die mit.php
enden. Es wird versucht, die Datei selbst zu erstellen und sie dann als Parameter an die Dateiindex.php
zu übergeben.
Wir werden die Direktiven vonfastcgi_*
o festlegen, dass der Pfad der Anforderungen für die Ausführung korrekt aufgeteilt wird, und sicherstellen, dass Nginx den Socket verwendet, denphp5-fpm
für die Kommunikation verwendet, und dass die Dateiindex.php
ist wird als Index für diese Operationen verwendet.
Wir werden dann den ParameterSCRIPT_FILENAME
einstellen, damit PHP die angeforderten Dateien korrekt finden kann. Wenn wir fertig sind, sollte die fertige Datei so aussehen:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/laravel/public;
index index.php index.html index.htm;
server_name server_domain_or_IP;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Da wir die Server-Blockdatei vondefault
geändert haben, die bereits aktiviert ist, müssen wir Nginx einfach neu starten, damit unsere Konfigurationsänderungen übernommen werden:
sudo service nginx restart
Auslagerungsdatei erstellen (optional)
Bevor wir mit der Installation von Composer und Laravel beginnen, ist es möglicherweise eine gute Idee, einen Swap auf Ihrem Server zu aktivieren, damit der Build korrekt abgeschlossen wird. Dies ist in der Regel nur erforderlich, wenn Sie auf einem Server ohne viel Arbeitsspeicher (z. B. einem 512-MB-Droplet) arbeiten.
Swap Space ermöglicht es dem Betriebssystem, Daten vorübergehend aus dem Speicher auf die Festplatte zu verschieben, wenn die Menge der Informationen im Speicher den verfügbaren physischen Speicherplatz überschreitet. Dadurch wird verhindert, dass Ihre Anwendungen oder Ihr System bei speicherintensiven Aufgaben mit einer OOM-Ausnahme abstürzen.
Wir können sehr einfach einen Swap-Bereich einrichten, damit unser Betriebssystem einen Teil davon bei Bedarf auf die Festplatte mischen kann. Wie oben erwähnt, ist dies wahrscheinlich nur erforderlich, wenn weniger als 1 GB RAM verfügbar sind.
Zuerst können wir eine leere 1GB-Datei erstellen, indem wir Folgendes eingeben:
sudo fallocate -l 1G /swapfile
Wir können es als Swap Space formatieren, indem wir Folgendes eingeben:
sudo mkswap /swapfile
Schließlich können wir diesen Bereich aktivieren, damit der Kernel ihn verwendet, indem wir Folgendes eingeben:
sudo swapon /swapfile
Das System verwendet diesen Speicherplatz nur bis zum nächsten Neustart. Es ist jedoch wahrscheinlich, dass der Server den verfügbaren Speicher während des Erstellungsprozesses überschreitet. Dies sollte also kein Problem darstellen.
Installieren Sie Composer und Laravel
Jetzt können wir endlich Composer und Laravel installieren. Wir werden zuerst Composer einrichten. Wir werden dann dieses Tool verwenden, um die Laravel-Installation zu handhaben.
Wechseln Sie in ein Verzeichnis, auf das Sie Schreibzugriff haben (z. B. in Ihr Basisverzeichnis), und laden Sie das Installationsskript aus dem Composer-Projekt herunter, und führen Sie es aus:
cd ~
curl -sS https://getcomposer.org/installer | php
Dadurch wird eine Datei mit dem Namencomposer.phar
in Ihrem Home-Verzeichnis erstellt. Dies ist ein PHP-Archiv, das über die Befehlszeile ausgeführt werden kann.
Wir möchten es jedoch an einem global zugänglichen Ort installieren. Außerdem möchten wir den Namen incomposer
ändern (ohne die Dateierweiterung). Wir können dies in einem Schritt tun, indem wir Folgendes eingeben:
sudo mv composer.phar /usr/local/bin/composer
Nachdem Sie Composer installiert haben, können wir Laravel damit installieren.
Denken Sie daran, wir möchten Laravel im Verzeichnis/var/www/laravel
installieren. Um die neueste Version von Laravel zu installieren, können Sie Folgendes eingeben:
sudo composer create-project laravel/laravel /var/www/laravel
Zum Zeitpunkt dieses Schreibens ist die neueste Version 4.2. Falls zukünftige Änderungen am Projekt verhindern, dass dieser Installationsvorgang ordnungsgemäß abgeschlossen wird, können Sie die in diesem Handbuch verwendete Version erzwingen, indem Sie Folgendes eingeben:
sudo composer create-project laravel/laravel /var/www/laravel 4.2
Jetzt sind alle Dateien in unserem Verzeichnis/var/www/laravel
installiert, aber sie gehören vollständig unserem Kontoroot
. Der Webbenutzer benötigt teilweise Eigentumsrechte und Berechtigungen, um den Inhalt korrekt bereitzustellen.
Wir können der Webgruppe den Besitz einer Gruppe für unsere Laravel-Verzeichnisstruktur geben, indem wir Folgendes eingeben:
sudo chown -R :www-data /var/www/laravel
Als Nächstes können wir die Berechtigungen des Verzeichnisses/var/www/laravel/app/storage
ändern, um der Webgruppe Schreibberechtigungen zu ermöglichen. Dies ist erforderlich, damit die Anwendung ordnungsgemäß funktioniert:
sudo chmod -R 775 /var/www/laravel/app/storage
Sie haben Laravel jetzt vollständig installiert und können loslegen. Sie können die Standard-Zielseite anzeigen, indem Sie die Domain oder IP-Adresse Ihres Servers in Ihrem Webbrowser aufrufen:
http://server_domain_or_IP
Sie haben jetzt alles, was Sie zum Erstellen von Anwendungen mit dem Laravel-Framework benötigen.
Fazit
Jetzt sollte Laravel auf Ihrem Server laufen. Laravel ist ein recht flexibles Framework und enthält viele Tools, mit denen Sie eine Anwendung strukturiert erstellen können.
Um zu erfahren, wie Sie mit Laravel eine Anwendung erstellen, lesen Sie dieLaravel documentation.