Suche…


Bemerkungen

Weitere Informationen zum Bereitstellen des Laravel-Projekts für Shared Hosting finden Sie in diesem Github-Repo.

Laravel 5 App für Shared Hosting auf Linux Server

Standardmäßig macht der public Ordner des Laravel-Projekts den Inhalt der App verfügbar, der von jedem beliebigen Benutzer angefordert werden kann. Der Rest des App-Codes ist für jeden ohne die entsprechenden Berechtigungen unsichtbar oder unzugänglich.

Nachdem Sie die Anwendung auf Ihrem Entwicklungscomputer entwickelt haben, muss sie auf einen Produktionsserver übertragen werden, damit Sie von überall aus über das Internet darauf zugreifen können.

Für die meisten Apps / Websites ist die erste Wahl die Verwendung eines Shared Hosting-Pakets von Hosting-Dienstleistern wie GoDaddy, HostGator usw., hauptsächlich aufgrund niedriger Kosten.

Hinweis : Sie können Ihren Provider auffordern, document_root manuell zu ändern. Alles, was Sie tun müssen, ist, Ihre Laravel-Anwendung auf den Server hochzuladen (über FTP), die Änderung des Root-Verzeichnisses in {app} / public anzufordern, und Sie sollten zufrieden sein.

Für solche gemeinsam genutzten Hosting-Pakete gelten jedoch Einschränkungen hinsichtlich des Terminalzugriffs und der Dateiberechtigungen. Standardmäßig muss der App / Code in den Ordner public_html des freigegebenen Hosting-Kontos hochgeladen werden.

Wenn Sie also ein Laravel-Projekt auf ein gemeinsam genutztes Hosting-Konto hochladen möchten, wie würden Sie dieses Problem lösen? Sollten Sie die gesamte App (Ordner) in den Ordner public_html Ihres freigegebenen Hosting-Kontos hochladen? - Sicher nein

Weil alles im Ordner public_html "öffentlich, dh von jedermann", zugänglich ist, was ein großes Sicherheitsrisiko darstellt.

Schritte zum Hochladen eines Projekts auf ein Shared-Hosting-Konto - der Laravel-Weg

Schritt 1
Erstellen Sie auf der gleichen Ebene wie der Ordner public_html einen Ordner namens laravel (oder beliebiges anderes).

Eg:  
/
|--var  
    |---www
        |----laravel       //create this folder in your shared hosting account
        |----public_html  
        |----log  

Schritt 2
Kopieren Sie alles außer dem public Ordner aus Ihrem Laravel-Projekt (auf dem Entwicklungscomputer) im laravel Ordner (auf dem Serverhost - Shared Hosting-Konto).
Sie können verwenden:

  • C-Panel: was wäre die langsamste Option
  • FTP-Client: wie FileZilla , um eine Verbindung zu Ihrem freigegebenen Hosting-Konto herzustellen und Ihre Dateien und Ordner per FTP-Upload zu übertragen
  • Netzwerklaufwerk zuordnen: Sie können auf Ihrem Entwicklungscomputer auch ein zugeordnetes Netzwerklaufwerk erstellen, um eine Verbindung zum Stammordner Ihres freigegebenen Hosting-Kontos herzustellen, indem Sie als Netzwerkadresse " ftp: // Ihr-Domänenname " verwenden.

Schritt 3
Öffnen Sie den public Ordner Ihres Laravel-Projekts (auf dem Entwicklungscomputer), kopieren Sie alles und fügen Sie es in den Ordner public_html (auf dem Serverhost - Shared Hosting-Konto) ein.
Schritt 4
Öffnen Sie nun die Datei index.php im Ordner public_html des freigegebenen Hosting-Kontos (im Cpanel-Editor oder einem anderen verbundenen Editor) und:

Veränderung:

require __DIR__.'/../bootstrap/autoload.php';   

Zu:

require __DIR__.'/../laravel/bootstrap/autoload.php';  

Und ändern:

$app = require_once __DIR__.'/../bootstrap/app.php';

Zu:

$app = require_once __DIR__.'/../laravel/bootstrap/app.php';

Speichern und schließen.

Schritt 5
Gehen Sie jetzt zum laravel Ordner (auf dem Shared Hosting-Konto -server) und öffnen server.php Datei server.php
Veränderung

require_once __DIR__.'/public/index.php';

Zu:

require_once __DIR__.'../public_html/index.php';  

Speichern und schließen.

Schritt 6
laravel/storage Dateiberechtigungen für den laravel/storage (rekursiv) und alle Dateien, Unterordner und Dateien auf dem gemeinsam genutzten Hosting-Konto - Server auf 777 .
Hinweis: Seien Sie vorsichtig mit den Dateiberechtigungen in Linux. Sie sind wie ein zweischneidiges Schwert. Wenn sie nicht korrekt verwendet werden, kann Ihre App für Angriffe anfällig werden. Zum Verständnis der Dateiberechtigungen für Linux lesen Sie https://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions

Schritt 7

Da die .env Datei des lokalen / Entwicklungsservers von git ignoriert wird, sollte sie ignoriert werden, da sie alle Umgebungsvariablen einschließlich APP_KEY enthält und nicht für public verfügbar gemacht werden darf, indem sie in die Repositorys verschoben wird. Sie können auch sehen, dass die .gitignore Datei .env erwähnt hat, so dass sie nicht in Repositorys .env wird.

Nachdem Sie alle oben genannten Schritte ausgeführt haben, .env eine .env Datei im laravel-Ordner und fügen Sie alle Umgebungsvariable, die Sie aus der lokalen / Entwicklungsserver- .env Datei verwendet haben, zur .env Datei des Produktionsservers hinzu.

Es gibt sogar Konfigurationsdateien wie app.php , database.php im config-Ordner der laravel-Anwendung, die diese Variablen standardmäßig im zweiten Parameter von env() aber die Werte in diesen Dateien nicht fest app.php , da dies Auswirkungen auf die. Hat Konfigurationsdateien der Benutzer, die Ihr Repository abrufen. Es wird daher empfohlen, die .env Datei manuell zu erstellen!

Auch Laravel gibt die .env-example , die Sie als Referenz verwenden können.

Das ist es.

Wenn Sie nun die URL aufrufen, die Sie als Domäne mit Ihrem Server konfiguriert haben, sollte Ihre Laravel-App genauso funktionieren wie auf Ihrem Localhost-Entwicklungscomputer. Der Anwendungscode ist jedoch immer noch sicher und für niemanden ohne entsprechende Dateiberechtigungen zugänglich.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow